אופטימיזציה של שטח אחסון בשרתי לינוקס: זיהוי ופתרונות

אופטימיזציה של שטח אחסון בשרתי לינוקס: זיהוי ופתרונות

24 במאי 2023

שטח אחסון הוא משאב קריטי בכל שרת לינוקס. אופטימיזציה שלו לא רק משפרת את הביצועים, אלא גם יכולה ליצור חסכון משמעותי לטווח ארוך. במאמר זה, נחקור כיצד לזהות מה צורך את מרבית שטח האחסון בשרת שלך ולאחר מכן נסקור טכניקות יעילות לשחרור ואופטימיזציה של האחסון.

1. זיהוי מה צורך את מרבית שטח האחסון

לפני יישום פתרונות, חשוב לזהות אילו קבצים ותיקיות תופסים את מרבית המקום בשרת שלך. הנה כמה פקודות שימושיות למטרה זו:

בדיקת שטח פנוי:

df -h

פקודה זו מציגה את השטח המשומש והפנוי במחיצות השונות. הפרמטר -h מציג את המידע בפורמט קריא לאדם (KB, MB, GB).

זיהוי התיקיות והקבצים הגדולים ביותר:

du -hs * | sort -rh | head -20

פקודה זו מציגה את 20 התיקיות או הקבצים הגדולים ביותר בתיקייה הנוכחית. בואו נפרק את הפקודה:

לחיפוש מעמיק יותר, ניתן להשתמש ב:

find / -type f -printf '%s %p\n' | sort -nr | head -20

פקודה זו תחפש בכל מערכת הקבצים את 20 הקבצים הגדולים ביותר, ותציג את גודלם ונתיב הגישה אליהם.

ניתוח השימוש בשטח באופן אינטראקטיבי:

sudo ncdu /

ncdu (NCurses Disk Usage) הוא כלי אינטראקטיבי המאפשר לך לחקור את השימוש בדיסק באופן ויזואלי ומפורט יותר.

2. טכניקות לאופטימיזציה ושחרור שטח

לאחר שזיהית את האזורים הבעייתיים, תוכל ליישם את הטכניקות הבאות כדי לאופטימיזציה את השטח בשרת הלינוקס שלך:

  1. ניקוי קבוע של קבצים זמניים:

    sudo tmpwatch 168 /tmp
    

    מסיר קבצים ב-/tmp שלא ניגשו אליהם ב-7 הימים האחרונים.

  2. הסרת תוכנות מיותרות: עבור מערכות Debian/Ubuntu:

    sudo apt autoremove
    

    עבור מערכות Red Hat/CentOS:

    sudo yum autoremove
    
  3. דחיסת קבצים ישנים:

    find /var/log -type f -name "*.log" -mtime +30 -exec gzip {} \;
    

    דוחס קבצי לוג ישנים מ-30 יום.

  4. יישום סיבוב לוגים: ערוך את /etc/logrotate.conf או צור הגדרות ספציפיות ב-/etc/logrotate.d/.

  5. שימוש בקישורים סימבוליים:

    ln -s /נתיב/לקובץ_מקורי /נתיב/לקישור
    

    שימושי לחיסכון בשטח כאשר יש לך מספר עותקים של אותו קובץ.

  6. שימוש במערכות קבצים עם דחיסה: עבור Btrfs:

    sudo btrfs filesystem defragment -r -v -czstd /
    
  7. הגדרת מכסות דיסק:

    sudo quotacheck -cugm /home
    sudo edquota שם_משתמש
    
  8. אופטימיזציה של בסיסי נתונים: עבור MySQL/MariaDB:

    mysqlcheck -o --all-databases -u root -p
    
  9. שימוש בכלי דדופליקציה: עבור מערכות קבצים ZFS:

    zfs set dedup=on שם_הבריכה
    
  10. ניקוי מטמון חבילות: במערכות Debian/Ubuntu:

    sudo apt-get clean
    

    במערכות Red Hat/CentOS:

    sudo yum clean all
    
  11. הסרת ליבות ישנות: ב-Ubuntu:

    sudo apt-get autoremove --purge
    

    ב-CentOS:

    package-cleanup --oldkernels --count=2
    
  12. שימוש בכלי ניקוי אוטומטיים: התקן והגדר כלים כמו bleachbit לניקויים תקופתיים אוטומטיים.

יישום טכניקות אלה לא רק יעזור לך לחסוך שטח בשרת הלינוקס שלך, אלא גם ישפר את היעילות והביצועים הכוללים שלו. זכור תמיד לבצע גיבויים לפני ביצוע שינויים משמעותיים במערכת שלך.

הערה חשובה: חלק מהפקודות האלה דורשות הרשאות סופר-משתמש. וודא שאתה מבין לחלוטין מה כל פקודה עושה לפני הרצתה במערכת הייצור שלך.