−25%

על Windows בתשלום שנתי, עד 31.10. לחבילות

EQVPS

איך להוסיף קובץ swap ב-VPS עם Linux

צרו קובץ swap בחמש פקודות, דאגו שישרוד אתחולים וכווננו את swappiness, וגם כמה swap להוסיף ומתי הפתרון האמיתי הוא יותר RAM.

שרתים קטנים נשארים בלי זיכרון ברגעים הגרועים ביותר: ‏apt upgrade, בילד של Docker, גיבוי לילי. בלי swap, ה-OOM killer של הקרנל בוחר תהליך והורג אותו, ולעתים קרובות זה מסד הנתונים שלכם. קובץ swap הוא חגורת בטיחות זולה שנותנת לקפיצות האלה לאן ללכת. זה לוקח חמש פקודות.

1. בדקו מה יש לכם

swapon --show
free -h

אם swapon --show לא מדפיס כלום, עדיין אין swap.

2. צרו את קובץ ה-swap

fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile

‏chmod 600 חשוב: ‏swap יכול להכיל שברים של כל דבר שהיה בזיכרון, כולל סודות, אז רק root רשאי לקרוא אותו. אם fallocate נכשל עם «operation not supported», השתמשו ב-dd במקום:

dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress

3. הפכו אותו לקבוע

בלי השלב הזה, ה-swap נעלם אחרי אתחול:

echo '/swapfile none swap sw 0 0' >> /etc/fstab

4. כווננו את swappiness

אמרו לקרנל להעדיף RAM ולהשתמש ב-swap בעיקר תחת לחץ:

echo 'vm.swappiness=10' > /etc/sysctl.d/99-swap.conf
sysctl --system

5. אמתו

swapon --show
free -h

אתם אמורים לראות התקן swap של 2 GB, ו-cat /proc/sys/vm/swappiness אמור להדפיס 10.

כמה גדול?

אל תקבעו swap בגודל «פי שניים מה-RAM». בשרת, swap קיים כדי לספוג קפיצות קצרות, לא כדי להריץ עומסים שלא נכנסים לזיכרון.

כש-swap הוא לא התשובה

עקבו אחריו כמה ימים:

vmstat 5

העמודות si ו-so מראות דפים שנכנסים ויוצאים מה-swap בכל שנייה. פעילות מדי פעם זה בסדר. ערכים קבועים שאינם אפס אומרים שלשרת חסר זיכרון והכול מחכה לדיסק. בשלב הזה הפתרון הוא יותר RAM; ראו כמה RAM צריך VPS. ב-EQVPS אפשר לעבור לתוכנית גדולה יותר בלי התקנה מחדש; הנתונים שלכם נשארים.

קשור

שאלות נפוצות

כמה swap להוסיף?

בשרתים עם 1–2 GB RAM, קובץ swap של 1–2 GB הוא ברירת מחדל טובה. גם בשרתים גדולים יותר, 1–2 GB מספיקים כרשת ביטחון; העצה «פי שניים מה-RAM» היא מימי המכונות של 256 MB.

האם swap יאיץ את השרת?

לא. ‏swap רק מונע קריסות כשהזיכרון נגמר לרגע: שדרוג חבילה, בילד של Docker, גיבוי. דפי זיכרון בדיסק איטיים פי אלפים מ-RAM. אם השרת מחליף ל-swap כל הזמן, הוא צריך יותר RAM.

מה swappiness עושה?

הוא קובע באיזו להיטות הקרנל מעביר זיכרון לא פעיל ל-swap. ברירת המחדל 60 מחליפה די מוקדם; הערך 10 אומר לקרנל להשאיר דברים ב-RAM ולהשתמש ב-swap בעיקר תחת לחץ אמיתי, מה שמתאים לרוב השרתים.

למה קובץ swap ולא מחיצת swap?

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

איך מסירים swap בהמשך?

הריצו 'swapoff /swapfile', מחקו את השורה של /swapfile מ-/etc/fstab, ואז 'rm /swapfile'.

תגובות

אין עדיין תגובות. היו הראשונים.

השאירו תגובה

התגובות עוברות מודרציה לפני שהן מופיעות.