В репозитории CentOS присутствуетпакет ktune, содержащий набор готовых настроек для оптимизации работы ядра
на машинах с большим размером ОЗУ в ситуациях повышенной сетевой и дисковой нагрузки.
Например, ktune увеличивает размер TCP/IP буферов, включает планировщик ввода/вывода deadline,
устанавливает оптимальные значения для pagecache и т.п.
Полный список настроек можно найти в файлах /etc/sysctl.ktune и /etc/sysconfig/ktuneдля активации необходимо выполнить:
yum install ktune
chkconfig ktune on
service ktune startУстанавливаются следующие sysctl:
# Устанавливаем в 256 Кб размер буферов по умолчанию для приема и отправки данных через сокеты
net.core.rmem_default = 262144
net.core.wmem_default = 262144# Устанавливаем в 8Мб максимальный размер буфера сокетов.
net.core.rmem_max = 8388608
net.core.wmem_max = 8388608# Максимальный размер очереди пакетов для 10 гб или объединенных гигабитных линков
net.core.netdev_max_backlog = 10000# Тюнинг буферов для TCP и UDP соединений (для машин с большим объемом ОЗУ)
net.ipv4.tcp_rmem = 8192 87380 8388608
net.ipv4.tcp_wmem = 8192 65536 8388608net.ipv4.udp_rmem_min = 16384
net.ipv4.udp_wmem_min = 16384net.ipv4.tcp_mem = 8388608 12582912 16777216
net.ipv4.udp_mem = 8388608 12582912 16777216# Понижаем приоритет начала своппинга
vm.swappiness = 30# Начинаем принудительно чистить буферы, когда они занимают более 50% размера ОЗУ
vm.dirty_ratio = 50# Ограничиваем размер файлового кеша, предотвращая начало свопинга
vm.pagecache = 90
Включаем deadline планировщик для диска sda:
echo deadline > /sys/block/sda/queue/schedulerURL: http://prefetch.net/blog/index.php/2009/04/26/performance-tu.../
Обсуждается: http://www.opennet.me/tips/info/2048.shtml
насколько мне известно последние ядра автоматически подстраивают параметры net.core net.ipv4 или нет?про последнее дисковый шедулер, тут всё зависит чем нагружен сервер. для кого-то cfq лучше будет,
а для кого-то none
подскажите какой параметр , влияет на размер буфера tcp? дабы не переполнялся? и чтобы не сильно нагружал озу?
net.ipv4.tcp_rmem - чтение
net.ipv4.tcp_wmem - запись
Насколько я понимаю net.core.netdev_max_backlog с NAPI не работает
> # Ограничиваем размер файлового кеша, предотвращая начало свопинга
> vm.pagecache = 90Это в какой ядре?
это элементарно, ватсон,...
судя по этой строчке:
echo deadline > /sys/block/sda/queue/schedulerэто 5й центос, т.к. в 4м (на 2.6.9.х такого не было)
ну а если 5й - то 2.6.18
Ясно, 2.6.30 такого ужо нет
>>на машинах с большим размером ОЗУЭто какой размер имеется ввиду?
не понял, а зачем ktune если и так все руками через sysctl поправил?
>не понял, а зачем ktune если и так все руками через sysctl
>поправил?Затем, чтобы руками не править на 50-ти серверах, скажем.
а выложить на сетевую шару скрипт и запустить не судьба чтоли?
Все это круто.Кроме того что автор показал немного черной магии, но чего, почему и нафига именно так и вот столько - не объяснил.Равно как и забыл указать какой у него конфиг.Мне кажется что лучше бы советы учили осмысленно думать головой - что, куда и насколько подкрутить.Вместо показа черной магии без объяснений - почему оно вот столько и вот туда.
Согласен с последним оратором!
Всё бы ничего, но при 16 гигах ОЗУ vm.dirty_ratio = 50 смотрится странно. А если в ДЦ в это время свет моргнёт или ещё какая хрень(не только отечественные ДЦ этим славятся, увы)? Я бы не стал такие большие значения делать.
>Всё бы ничего, но при 16 гигах ОЗУ vm.dirty_ratio = 50 смотрится
>странно. А если в ДЦ в это время свет моргнёт или
>ещё какая хрень(не только отечественные ДЦ этим славятся, увы)? Я бы
>не стал такие большие значения делать.А чего, сервер с 16Гб ОЗУ у вас без UPS работает? :)
увы, в дц нет такой услуги "ups в аренду".
>увы, в дц нет такой услуги "ups в аренду".Хм... Ну, тогда конечно...
А это точно ДЦ?))