четверг, 6 декабря 2007 г.

Про своп и новые возможности ядра 2.6

Читал давольно интересную для меня статью про свопинг в Linux и новые возможности ядра 2.6 по управлению свопом. Для себя любимого на будущее заметочка:



…Ключевым остается вопрос “Сколько?”. Старые версииUNIX-подобных операционных систем (Sun OS, Ultrix) официально требовали своп в два или три раза больше чем ОЗУ. Современные системы, например Linux, уже не требуют такого объема, но вы всегда можете сконфигурировать и больше. Со временем выработались некоторые негласные правила:


   1. для настольных ПК: swap = 2 * ОЗУ
   2. для сервера: swap = 1/2 * ОЗУ
   3. для старых машин с малым объемом ОЗУ: можно сделать гигабайт и больше


В ядре Linux версии 2.6 добавился новый параметр свопа - swappiness. Он принимает значения от 0 до 100. Т.е. грубо говоря - это эффективность своппинга, чем выше значение, тем больше страниц приложения стараются выгрузить в своп. Один из главных майнтенеров ядра Andrew Morton сказал, что он на своем домашнем ПК использует swappiness=100. Он считает, что это не правильно, уменьшать возможности ядра к своппингу.


Но как было сказано в начале, если время между выгрузкой и загрузкой страниц больше, чем время которое нужно программе, то это лишнии потери времени. По умолчанию swappiness равен 60. Вы можете временно (до следующей перезагрузки системы) изменить это следующей командой:


echo 50 > /proc/sys/vm/swappiness


Для того что бы изменить значение по умолчанию необходимо изменить параметр vm.swappiness в файле /etc/sysctl.conf…


КонецЪ Связи.

Комментариев нет: