דפי החבילות שמים את ה-RAM בראש, אבל דיסק מלא מפיל שרת באותה ודאות. עם "No space left on device", מסדי נתונים מפסיקים לכתוב ואתרים מפסיקים להגיב, לא משנה כמה זיכרון פנוי. קל לצפות את צריכת הדיסק כשיודעים מה גדל. הרמנו שרתים חדשים מהאימג'ים שלנו ומדדנו כל אחד מהחשודים הרגילים.
כמה תופס שרת חדש
נמדד מיד אחרי האתחול הראשון:
| מערכת | מקום תפוס |
|---|---|
| Alpine Linux 3.21 | 153 MB |
| Debian 12 | 1.2 GB |
| Ubuntu 24.04 | 2.7 GB |
| Windows Server 2022 | 14.0 GB |
ב-Linux, כמעט כל Nano של 15 GB שלכם מהיום הראשון. Windows תופס יותר מרבע מ-50 ה-GB שלו לפני שהתקנתם משהו, וכמו שתראו בהמשך, עדכונים לוקחים יותר.
חלק מ-2.7 ה-GB של Ubuntu היה קל להחזיר. 440 MB היו מטמון החבילות מהעדכונים של האתחול הראשון, והיו מותקנים שלושה קרנלים למרות שרק אחד בשימוש. שתי פקודות הורידו את התפוסה ל-2.16 GB:
sudo apt clean
sudo apt autoremove --purge
Docker: אימג'ים מצטברים מהר
ההתקנה של Docker עצמו הוסיפה בערך 300 MB. מה שקובע הם האימג'ים. משכנו שמונה אימג'ים נפוצים, אחד אחרי השני, ומדדנו בכל פעם בכמה גדל הדיסק:
| אימג' | מקום שנוסף |
|---|---|
nginx:alpine | 91 MB |
nginx:latest | 232 MB |
postgres:16 | 501 MB |
python:3.12-slim | 59 MB |
node:22 | 1,564 MB |
mariadb:11 | 437 MB |
wordpress:latest | 960 MB |
redis:7-alpine | 55 MB |
| סך הכול | 3.9 GB |
אימג'ים עם בסיס משותף משתמשים מחדש בשכבות שלו, ולכן python:3.12-slim הוסיף רק 59 MB: את אותו בסיס Debian כבר הביאו nginx:latest ו-postgres:16. אימג'ים מבוססי Alpine קטנים פי כמה מהמלאים. node:22 לבדו שוקל 1.5 GB, אז כשאפשר, בנו על node:22-slim או node:22-alpine.
אימג'ים נערמים עם העדכונים: כל docker compose pull משאיר מאחור את הגרסה הישנה. בשרת הבדיקה שלנו פקודה אחת הסירה את כולם:
docker system df
docker system prune -a
היא דיווחה על 4.1 GB שהתפנו. prune -a מוחק כל אימג' שאף קונטיינר לא משתמש בו, אז הריצו אותו כשהסטאק שלכם פועל. הווליומים לא נפגעים, אלא אם תוסיפו --volumes.
יומנים: מה שממלא דיסק בלילה אחד
Docker שומר כל מה שקונטיינר מדפיס, וכברירת מחדל בלי הגבלת גודל. הרצנו קונטיינר שהדפיס שורה קצרה בלולאה, סוג הפלט שבדיקת תקינות או מצב דיבאג מייצרים. אחרי 30 שניות קובץ היומן שלו היה 6 MB. בקצב הזה הוא היה כותב בערך 17 GB ביום, יותר מכל הדיסק של חבילת Micro.
הגדירו מגבלה לכל הקונטיינרים החדשים ב-/etc/docker/daemon.json:
{
"log-driver": "local",
"log-opts": { "max-size": "10m", "max-file": "3" }
}
אחר כך הריצו sudo systemctl restart docker וצרו מחדש את הקונטיינרים (docker compose up -d --force-recreate). קונטיינרים קיימים שומרים על ההגדרות שאיתן נוצרו. עם המגבלה, היומן של אותו קונטיינר בדיקה היה 4 MB אחרי 30 שניות ולעולם לא יעבור 30 MB.
יומן המערכת כבר מוגבל: בשרת ה-Ubuntu שלנו עם 25 GB, ה-journald מגביל את עצמו ל-2.3 GB, עשירית ממערכת הקבצים. הוא השתמש ב-15 MB.
Windows: עדכונים צריכים מקום
האימג' שלנו של Windows Server 2022 היה מ-2022, אז עדכנו אותו. בזמן שהעדכון המצטבר הראשון הותקן, התפוסה עלתה מ-12.6 ל-20.8 GB, ואחרי השני הגיעה ל-24.5 GB. Windows שומר את הגרסה הישנה של כל קובץ מערכת שעדכון מחליף. הניקוי החזיר אותה ל-14.6 GB, ושרת חדש מהאימג' המעודכן מתחיל עכשיו ב-14 GB. השאירו לפחות 10 GB פנויים לעדכון הבא. פקודות הניקוי נמצאות במדריך עדכוני Windows.
מה לבחור
| מה אתם מריצים | דיסק נוח | חבילה |
|---|---|---|
| בוט, VPN, אתר סטטי קטן | 15 GB | Nano, $3 לחודש |
| סטאק Docker עם כמה אימג'ים | 25 GB | Micro, $5 לחודש |
| WordPress עם מסד נתונים והעלאות, כמה סטאקים | 35 GB | Small, $8 לחודש |
| מסדי נתונים גדולים, הרבה אימג'ים, גיבויים מקומיים | 45 GB | Medium, $12 לחודש |
| Windows Server 2022 | 50–60 GB | Windows-Small, $11 לחודש |
שני כללים גורמים לכל אחת מהן להחזיק יותר: הגבילו את יומני הקונטיינרים לפני הפריסה, והעתיקו גיבויים אל מחוץ לשרת במקום להשאיר אותם על הדיסק שלו. אם שרת כבר מלא, המדריך שלנו לפינוי מקום בדיסק מוביל צעד אחר צעד. לצד הזיכרון בבחירת הגודל, ראו כמה RAM צריך VPS. כל החבילות נמצאות בדף VPS, והתשלום הוא ב-USDT, USDC או ETH ברשתות Base, Ethereum או Polygon.
תגובות
אין עדיין תגובות. היו הראשונים.