Сразу обозначу с какой целью производится оптимизация. В конторе, где я работаю, Slackware Linux используется на большинстве серверов. Для тестирования решений, разработки новых программ, сборки slackware пакетов я также использую Slackware, но только внутри виртуальной машины. Соответственно вся оптимизация применяется для виртуальной машины. Особенности работы:
- не используется графический режим, устанавливаются и работают только консольные программы. Фреймбуфер тоже не используется.
- доступ только через ssh, как потом на рабочем сервере.
Всё сказанное здесь верно для всех известных версий Slackware, статья тестировалась на Slackware 11. Можно использовать описанные здесь приёмы и для рабочих машин, но делать это с осторожностью.
- Настройка загрузчика lilo. Произвоится редактированием файла /etc/lilo.conf. Задаем параметры:
# графический режим консоли - текстовый
vga = normal
# задержка перед автоматической загрузкой - 5 секунд
timeout = 50
Если не планируется пересобирать ядро или менять параметры его загрузки, можно вообще отключить вывод меню:
# prompt
После изменения /etc/lilo.conf, не забудьте запустить lilo, чтобы изменение настроек вступило в силу.
- Отключение лишних консолей. Редактируем файл /etc/inittab. Оставим одну из шести консолей, остальные комментируем:
c1:1235:respawn:/sbin/agetty 38400 tty1 linux
# c2:1235:respawn:/sbin/agetty 38400 tty2 linux
# c3:1235:respawn:/sbin/agetty 38400 tty3 linux
# c4:1235:respawn:/sbin/agetty 38400 tty4 linux
# c5:1235:respawn:/sbin/agetty 38400 tty5 linux
# c6:12345:respawn:/sbin/agetty 38400 tty6 linux
- Отключение загрузки неиспользуемых модулей ядра. Смотрим файл /etc/rc.d/rc.modules. Здесь можно отключить загрузку модулей agp и эмуляции scsi:
# /sbin/modprobe agpgart
...
# /sbin/modprobe ide-scsi
- Отключение неиспользуемых демонов. С помощью комманды:
chmod -x /etc/rc.d/rc.xxxxx
снимаем атрибут исполняемого файла, со всех файлов в каталоге /etc/rc.d, кроме:
/etc/rc.d/rc.4
/etc/rc.d/rc.6
/etc/rc.d/rc.K
/etc/rc.d/rc.M
/etc/rc.d/rc.S
/etc/rc.d/rc.inet1
/etc/rc.d/rc.inet2
/etc/rc.d/rc.modules-2.4.33.3
/etc/rc.d/rc.netdevice
/etc/rc.d/rc.sshd
/etc/rc.d/rc.syslog
- Отключение неиспользуемых демонов 2. Чтобы отключить демон отсроченного запуска комманд и обновление индекса шрифтов, комментируем следующие строчки в файле /etc/rc.d/rc.M :
# Start atd (manages jobs scheduled with 'at'):
# if [ -x /usr/sbin/atd ]; then
# /usr/sbin/atd -b 15 -l 1
# fi
...
# Update the X font indexes:
# if [ -x /usr/X11R6/bin/fc-cache ]; then
# echo "Updating X font indexes: /usr/X11R6/bin/fc-cache"
# /usr/X11R6/bin/fc-cache
# fi
- Отключение демонов 3. Для экстремалов. Можно (но не рекомендуется) отключить демона журналирования syslog:
chmod -x /etc/rc.d/rc.syslog
Тогда отпадает надобность в демоне запуска заданий по расписанию, используемом для ротации журналов. Комментируем строчки в файле /etc/rc.d/rc.M :
# Start crond (Dillon's crond):
# If you want cron to actually log activity to /var/log/cron, then change
# -l10 to -l8 to increase the logging level.
# if [ -x /usr/sbin/crond ]; then
# /usr/sbin/crond -l10 >>/var/log/cron 2>&1
# fi
Теперь остается перезагрузить виртуальную машину и убедится что всё работает. Самое время сделать снимок состояния виртуальной машины для многократного использования в будущем.