Linux - the Best!

Your Explorer by Linux links...

Денис Колисниченко

Linux Советы

http://www.dkws.org.ua/

Совет №7. Повышаем производительность системы

Для повышения производительности системы вам не понадобится перекомпилирование ядра. Данный совет рассчитан только на ядро 2.6. Оптимизацию производительности начнем со установки оптимальных для нас параметров виртуальной памяти. Что такое подкачка (swapping), надеюсь, вы знаете (уже успели прочитать в этой книге), поэтому останавливаться на теории особо не буду. В псевдофайле /proc/sys/vm/swappiness содержится коэффициент подкачки. Что это такое? Предположим, что вы работаете с несколькими (или даже одним) довольно громоздкими приложениями и нечасто переключаетесь между ними. Возможно, вы дизайнер – с утра вы запускаете GIMP и не выходите из него до самого вечера. Также утром вы запускаете xmms – кто это без музыки работает? Изредка, скажем раз 5-7, за день вам нужно переключаться между GIMP и xmms – чтобы выбрать новый каталог или новую песню (возможно, попалась песня, которая вам не нравится). Если вы установите большое значение коэффициента подкачки, скажем, 90 или даже 100 (максимальное), то переключение между этими приложениями будет довольно медленное, но зато производительность вашего основного приложения (то есть GIMP) будет максимальной. Если вы целый день работаете с небольшими программками и часто переключаетесь между ними, вам, возможно, лучше установить коэффициент подкачки в районе 20 или 30. Поэкспериментируйте с различными параметрами и выберите оптимальный для себя. Вывести значение файла /proc/sys/vm/swappiness можно с помощью команды:

# cat /proc/sys/vm/swappiness

Значение по умолчанию – 70. Возможно, вам больше подойдет именно это значение.

Установить значение (в данном случае 20) можно с помощью команды:

# echo "20" > /proc/sys/vm/swappiness

Устанавливать значение можно только суперпользователь (root).

Теперь займемся повышением производительности сети. Если у вас обычный домашний компьютер, подключенный к Интернету по DSL или локальной сети, имеет смысл попробовать выключить некоторые параметры, это можно сделать следующими командами:

# echo "0" > /proc/sys/net/ipv4/tcp_sack

# echo "0" > /proc/sys/net/ipv4/tcp_timestamps

Возможно, сразу вы не заметите никакой разницы, но попробуйте пару дней поработать в таком режиме. Если не понравится, можно опять их включить (1).

А теперь приступим к самому важному. У вас есть отличный шанс существенно повысить производительность вашей системы. Каждой программа, работающая под Linux, время от времени необходим доступ к диску. Ядро Linux, когда именно программа получит доступ к диску. Часть ядра, отвечающая за планирование ввода/вывода, называется планировщиком ввода/вывода. Имеется четыре различных алгоритма работы планировщика:

elevator=as

elevator=cfq

elevator=deadline

У каждого алгоритма есть свои преимущества и недостатки. Но только два алгоритма подходят для обычного домашнего компьютера (то есть рабочей станции) – второй и третий. В Интернете вы можете найти данные о том, что для настольного компьютера более подходит второй алгоритм. Решать вам – все познается в сравнении, тем более, что вы ничем не рискуете. Для применения нового алгоритма достаточно указать определенный параметр ядра и немного поработать с системой – если не понравится, тогда стоит попробовать другой алгоритм. Вам не нужно перекомпилировать ядро – а просто пару раз перезагрузить компьютер. Если вы подберете нужный алгоритм, тогда вам понадобится перезаписать загрузчик (в случае с LILO). Для выбора нужного режима перезагрузите компьютер и при загрузке ядра Linux передайте ему один из указанных выше параметров. Например, для выбора упреждающего планирования нужно передать ядру параметр elevator=as:

linux elevator=as

Предположим, что вам больше всего понравится именно этот параметр. Теперь его нужно «утвердить» в файле конфигурации загрузчика. Если вы используете загрузчик LILO, откройте файл /etc/lilo.conf и найдите в нем строку

append="<параметры ядра>"

Добавьте в эту строку параметр linux elevator=as:

append="elevator=as другие параметры"

Например,

image=/boot/vmlinuz-2.6.9

label=Linux

root=/dev/hda1

append="elevator=as video=vesafb:ywrap,mtrr,1024x768-16@75"

Сохраните файл и перезапишите загрузчик:

lilo

Если у вас загрузчик GRUB, перезапись загрузчика необязательна. Вам нужно только отредактировать файл конфигурации - /boot/grub/grub.conf

...

title My Default Linux

root (hd1,0)

kernel /boot/vmlinuz-2.6.9 ro root=/dev/hda1 elevator=as

...