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

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

חמימות

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

ברירת המחדל של 60 פירושו החלפת ישתמשו פחות, ומטמון I / O ישוחרר יותר עבור reallocating RAM. פינוי מטמונים נחשב "זול יותר" (פחות משאבים), ואילו החלפת דפים כולל את הדיסק קורא וכותב, מה שהופך אותם יותר "יקר". לפי ערך של '60, 'שימוש ב- swap יהיה נמוך במעט מאשר שימוש חוזר במטמון. אם הערך של swappiness הוא גדל ל 100, החלפה ופינוי הקובץ המטמון ישמש עם משקל שווה. משמעות הדבר היא להחליף יותר מהר I / O מאשר ברירת המחדל. ערכים נמוכים יותר כמו "10" פירושו כי החלפה ישמש הרבה פחות, ו I / O מטמון יכול להיות הרבה יותר מוקדם פונו לטובת תהליכים. זה עשוי להגביר את האינטראקטיביות אבל יכול גם לפגוע I / O מהירות.

הפחתת החמימות

לעתים קרובות אתה רואה את העצה על אתרי אינטרנט ופורומים כדי להפחית swappiness סביב "10." זה אמור להאיץ את הדברים באמצעות החלפת פחות ושמירה על תהליכים פיזיים RAM. לוגיקה זו עשויה להיות קצת פשוטה מדי ולא יכול להיות "גודל אחד מתאים לכל פתרון."

הקטנת הערך של swappiness עשויה להיות טובה בתרחישים הבאים:

  • עבור מערכות מסדי נתונים, או אם אתה משתמש הרבה יישומים עתירי מסדי נתונים: מאגרי מידע בדרך כלל לטפל במטמון הקובץ הקובץ טוב יותר מאשר מערכת ההפעלה. אם אתה מפחית swappiness, תוכל להגביל את הקובץ במטמון של הקובץ, ובכך נותן הזדמנות למסד הנתונים כדי להתמודד עם המטמון שלו.
  • עבור אינטראקטיביות : אם אתה multitask הרבה אבל לטפל כמה קבצים או לא לפתוח מסמכים גדולים, זה יכול לשפר כמה חלקה המערכת שלך ירגיש. פחות תהליכים יכתבו לדיסק, וכניסת RAM תהיה הרבה יותר מהירה, המחשב שלך יכול להרגיש מהר יותר. כמו כן, עליך לזכור כי זה יכול להפחית את הביצועים I / O. אם יש לך דיסקים איטיים או לעשות משהו I / O אינטנסיבי, זה עלול אפילו לפגוע בביצועים.
  • עבור פלסבו : רבים מאמינים כי swappiness נמוך יהיה להאיץ את המערכת, . ברצינות, F אתה חושב כי המערכת שלך היא מהירה יותר, זה יכול להיות אפקט של לתפוס את זה להיות מהיר יותר, יותר מדי.

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

הגדלת swappiness

הגדלת swappiness יכול לקבל את היתרון הכללי של האצת I / O. אמנם לא מומלץ לעתים קרובות, הגדלת swappiness עשוי להיות שימושי אם:

  • אתה מבצע כמה I / O פעולות אינטנסיבית, ויש לך HDDs איטי, ישנים . לדוגמה: ביצוע גיבויים או עריכת תמונות אצווה יכול להיות אני / O אינטנסיבית (למעט יוצא מן הכלל הוא מסדי נתונים אשר באופן טבעי אני / O אינטנסיבית אבל יכול להפיק תועלת ערך swappiness נמוך כפי שנראה לעיל.).
  • יש לך זיכרון נמוך אבל יש דיסקים מהירים יחסית. בתרחיש זה סביר, ערך גבוה יותר של swappiness עשוי לעזור לטפל בזיכרון ביעילות רבה יותר (אם כי הגדרת גבוה מדי עלול לפגוע שוב בביצועים.).

כיצד לנהל swappiness

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

לאחר מכן, כמה כבד הוא השימוש ב- Swap שלך? אתה יכול למצוא את זה עם כל כלי ניטור ביצועים על פי בחירתך או עם הפקודה free . free -m ייתן לך תמונה של השימוש בזיכרון במגה-בתים. לניטור רציף, מומלץ להשתמש watch.

 watch-1 חינם -m 

פעולה זו תפעיל את הפקודה- free -m כל שנייה ולהדפיס את הפלט שלה עד שתלחץ על "Ctrl + C."

כפי שאתה רואה לעיל, להחליף מעט מאוד נמצא בשימוש על ידי המערכת מאמר זה נכתב ב.

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

 vmstat 1 

אתה צריך לבדוק את עמודה swap איפה si פירושו "להחליף", so "להחליף". אם המספרים הם גבוהים, זה אומר הרבה פעילות החלפת אשר מהווה אינדיקטור של בעיות בזיכרון נמוך. אם אתה רואה שימוש להחלפה על ידי החלפת free אך פעילה קטנה, sweiness tweaking עשוי להיות בשל.

זה גם רעיון טוב כדי לקבוע ביצועים אחרים benchmarks כמו דיסק I / O, ממוצעים לטעון, וכו ', אז כאשר אתה בודק את ערכי swappiness החדש שלך, יש לך משהו להשוות נגד.

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

 sudo sysctl vm.swappiness = 10 

כמובן, אתה יכול לשים כל ערך במקום "10" (בין "0" ו "100").

לאחר שתמצא את הערך המועדף עליך, תוכל לשנות לצמיתות את תצורת המערכת על-ידי עריכת "/etc/sysctl.conf"

 sudo nano /etc/sysctl.conf 

והוספת השורות

 #Set swappiness ערך vm.swappiness = 10 

עד סוף הקובץ, עם הערך שנקבע להעדפותיך שוב, כמובן.

סיכום

הפחתת החמימות ל "10" מומלצת לעתים קרובות כפתרון בגודל אחד, אבל השימוש בפועל בטכניקה עשוי להיות קצת יותר מסובך. על ידי יצירת benchmarks, לדעת את המערכת שלך, איך אתה משתמש בו, ומה שאתה צריך ממנו, אתה יכול בסדר לכוונן את השימוש ב- swap ולהשיג ביצועים מסוימים (או אינטראקטיביות או I / O) להגדיל.