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

24 במאי 2023
שטח אחסון הוא משאב קריטי בכל שרת לינוקס. אופטימיזציה שלו לא רק משפרת את הביצועים, אלא גם יכולה ליצור חסכון משמעותי לטווח ארוך. במאמר זה, נחקור כיצד לזהות מה צורך את מרבית שטח האחסון בשרת שלך ולאחר מכן נסקור טכניקות יעילות לשחרור ואופטימיזציה של האחסון.
1. זיהוי מה צורך את מרבית שטח האחסון
לפני יישום פתרונות, חשוב לזהות אילו קבצים ותיקיות תופסים את מרבית המקום בשרת שלך. הנה כמה פקודות שימושיות למטרה זו:
בדיקת שטח פנוי:
df -h
פקודה זו מציגה את השטח המשומש והפנוי במחיצות השונות. הפרמטר -h מציג את המידע בפורמט קריא לאדם (KB, MB, GB).
זיהוי התיקיות והקבצים הגדולים ביותר:
du -hs * | sort -rh | head -20
פקודה זו מציגה את 20 התיקיות או הקבצים הגדולים ביותר בתיקייה הנוכחית. בואו נפרק את הפקודה:
du: מעריך את השימוש בשטח של קבצים ותיקיות.-h: מציג גדלים בפורמט קריא (K, M, G).-s: מציג רק את הסך הכולל לכל ארגומנט.sort -rh: ממיין את התוצאות מספרית (-n) בסדר הפוך (-r).head -20: מציג רק את 20 השורות הראשונות של התוצאה.
לחיפוש מעמיק יותר, ניתן להשתמש ב:
find / -type f -printf '%s %p\n' | sort -nr | head -20
פקודה זו תחפש בכל מערכת הקבצים את 20 הקבצים הגדולים ביותר, ותציג את גודלם ונתיב הגישה אליהם.
ניתוח השימוש בשטח באופן אינטראקטיבי:
sudo ncdu /
ncdu (NCurses Disk Usage) הוא כלי אינטראקטיבי המאפשר לך לחקור את השימוש בדיסק באופן ויזואלי ומפורט יותר.
2. טכניקות לאופטימיזציה ושחרור שטח
לאחר שזיהית את האזורים הבעייתיים, תוכל ליישם את הטכניקות הבאות כדי לאופטימיזציה את השטח בשרת הלינוקס שלך:
-
ניקוי קבוע של קבצים זמניים:
sudo tmpwatch 168 /tmpמסיר קבצים ב-
/tmpשלא ניגשו אליהם ב-7 הימים האחרונים. -
הסרת תוכנות מיותרות: עבור מערכות Debian/Ubuntu:
sudo apt autoremoveעבור מערכות Red Hat/CentOS:
sudo yum autoremove -
דחיסת קבצים ישנים:
find /var/log -type f -name "*.log" -mtime +30 -exec gzip {} \;דוחס קבצי לוג ישנים מ-30 יום.
-
יישום סיבוב לוגים: ערוך את
/etc/logrotate.confאו צור הגדרות ספציפיות ב-/etc/logrotate.d/. -
שימוש בקישורים סימבוליים:
ln -s /נתיב/לקובץ_מקורי /נתיב/לקישורשימושי לחיסכון בשטח כאשר יש לך מספר עותקים של אותו קובץ.
-
שימוש במערכות קבצים עם דחיסה: עבור Btrfs:
sudo btrfs filesystem defragment -r -v -czstd / -
הגדרת מכסות דיסק:
sudo quotacheck -cugm /home sudo edquota שם_משתמש -
אופטימיזציה של בסיסי נתונים: עבור MySQL/MariaDB:
mysqlcheck -o --all-databases -u root -p -
שימוש בכלי דדופליקציה: עבור מערכות קבצים ZFS:
zfs set dedup=on שם_הבריכה -
ניקוי מטמון חבילות: במערכות Debian/Ubuntu:
sudo apt-get cleanבמערכות Red Hat/CentOS:
sudo yum clean all -
הסרת ליבות ישנות: ב-Ubuntu:
sudo apt-get autoremove --purgeב-CentOS:
package-cleanup --oldkernels --count=2 -
שימוש בכלי ניקוי אוטומטיים: התקן והגדר כלים כמו
bleachbitלניקויים תקופתיים אוטומטיים.
יישום טכניקות אלה לא רק יעזור לך לחסוך שטח בשרת הלינוקס שלך, אלא גם ישפר את היעילות והביצועים הכוללים שלו. זכור תמיד לבצע גיבויים לפני ביצוע שינויים משמעותיים במערכת שלך.
הערה חשובה: חלק מהפקודות האלה דורשות הרשאות סופר-משתמש. וודא שאתה מבין לחלוטין מה כל פקודה עושה לפני הרצתה במערכת הייצור שלך.