עבור לתוכן

איך לקבוע סוואפ עבור תוכנה ספציפית

Featured Replies

פורסם

איך לקבוע סוואפ עבור תוכנה ספציפית

יש לי בעיה שתוכנות מסויימוץ הולכות לסוואפ וזה עושה לי צרות.

יש דרך לגרום לתוכנה ספציפית לא ללכת לסוואפ לעולם, ולתוכנות אחרות ללכת לשם תמיד?

ענבר.

פורסם

תני לי לנחש, disk thrashing בשרת DB ? :)

קודם כל, יש אפשרות להגדיר עד כמה הקרנל ישתדל לדחוף דברים ל swap,זה נקרא swappiness:

[vitali]:~/Work/tmp >> sysctl vm.swappiness
vm.swappiness = 40
[vitali]:~/Work/tmp >> sudo sysctl -w vm.swappiness=0
vm.swappiness = 0

הערכים הם מ 0 - 100. 0 אומר תעשה swap רק כשאתה חייב.

יש syscall בשם mlockall שמונע swapping עבור כל הדפים של אותו תהליך. אבל זה overkill אם את שואלת אותי.

תזכרי שאין גישה ישירה לדפים ב swap, כלומר אם אני ניגש לכתובת (ווירטואלית) מתוך דף שכרגע נמצא ב swap (כלומר page fault)

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

בגלל זה אני מציע שתעשי nice לתהליך + ערך swappiness מתאים. ב 99% מהמקרים זה אמור לעבוד.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים