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

מה זה להחליף?

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

האם יש צורך להחליף שטח?

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

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

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

לשם שלמות, ראוי להזכיר שללינוקס יש גם תת-מערכת הנקראת Out-Of-Memory Killer (OOM), אשר במקום לעצור את הקרנל כאשר הוא אוזל הזיכרון, יתחילו להרוג תהליכים כדי לשחרר משאבים. פעולותיו ניתנות להגדרה.

כמה שטח swap אני צריך להקצות?

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

הוספת swap מבלי להרחיב את מחיצת ה- swap

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

כדי להשתמש בכונן קשיח אחר, צור מחיצה מסוג "Linux swap" (קוד 82) ולאחר מכן הפעל את הפקודה " mkswap " כדי להכין את שטח ההחלפה:

 msswap / dev / sdb2 

איפה /dev/sdb2 הוא שם המחיצה שיצרת. כדי להשתמש במרחב החלפה, השתמש מיד בפקודה " swapon ":

 swapon / dev / sdb2 

השתמש " swapon -s " כדי לקבל רשימה של שטחי החלפה המשמשים כיום. כדי להוסיף לצמיתות את שטח ההחלפה למערכת, יהיה עליך לערוך את הקובץ /etc/fstab ולהוסיף שורה דומה לזו:

 / dev / sdb2 אין החלפה sw 0 0 

אם המערכת משתמשת במזהים ייחודיים כדי לנקוב בשמות הדיסקים, השתמש בפקודה blkid כדי לקבל רשימה של מזהים עבור ההתקנים. השורה כדי לטעון את שטח החלפה ב- /etc/fstab תיראה כך:

 UUID = 036da155-1ea1-4392-b8d4-700f65aa1ead none swap sw 0 0 

כדי להשתמש בקובץ להחלפה, צור קובץ ריק גדול (באמצעות dd ) במערכת הקבצים שבה ברצונך להשתמש להחלפה. לדוגמה, כדי ליצור קובץ 1GB, הקלד:

 dd אם = / dev / אפס של = / store / swapfile bs = 1024 count = 1048576 

איפה /store/swapfile הוא הנתיב לקובץ swap על מערכת הקבצים הרצויה.

כמו עם מחיצת החלפה נוספת, הקובץ עכשיו צריך להיות מוכן עם mkswap ולאחר מכן להשתמש עם swapon . כמו כן, יש להוסיף את הקובץ /etc/fstab . ההליך הוא בדיוק כמו לעיל, אבל אתה צריך להשתמש /store/swapfile במקום /dev/sdb2 כמו פרמטר שטח החלפה.

חמימות

הקרנל של לינוקס יכול להיות tweaked להגדיר כיצד אגרסיבי זה צריך לנסות להחליף תהליכים מתוך הזיכרון. נטייה זו נשלטת על ידי משתנה הקרנל שנקרא swappiness . A swappiness של 0 פירושו כי הקרנל ימנע להחליף ככל האפשר, בעוד 100 פירושו הקרנל יהיה אגרסיבי איך זה משתמש בחלל החלפה. הגדרת ברירת המחדל עבור הפצות לינוקס רבות היא 60. ניתן לשנות את המספר באופן דינמי באמצעות פקודה זו:

 sudo sysctl vm.swappiness = 10 

כדי להגדיר ערך לצמיתות, עליך לשנות (או להוסיף, אם אינו קיים) את המשתנה /etc/sysctl.conf בקובץ /etc/sysctl.conf .

תן לנו לדעת אם יש לך שאלות לגבי החלפה ב- Linux.