Серверная (www.it-simple.ru)

Ускорение работы Ubuntu. Часть 1. Процессы и демоны


Данная статья - вольный перевод англоязычной HowTo: Speed up ubuntu boot process - the way you can feel it (http://ubuntuforums.org/showthread.php?t=89491) с урезаниями, изменениями и добавлениями.

Эта инструкция предназначена для тех, кто считает скорость загрузки Ubuntu недостаточно быстрой, но не хочет устанавливать никакие приложения и утилиты для её ускорения. Метод, который я использую, не является исчерпывающим руководством, но он действительно работает и приводит к ощутимому результату. Всё описанное ниже происходит путём настройки процесса загрузки непосредственно, и из-за отличия разных компьютеров есть небольшой риск, что что-то может вывести вашу систему из строя. Вы берёте на себя всю ответственность за последствия использования данной инструкции. Также было бы неплохо перед изменениями всегда иметь резервную копию каталога /etc.

Эта инструкция предназначена для ноутбуков и рабочих станций, не для серверов.

Советы

  1. Я надеюсь, что вы чему-нибудь здесь научитесь, а не просто повторите действия. Поэтому, пожалуйста, НЕ делайте всё в точности как я. Читайте описания служб и решайте сами, какую из них оставить включённой, а какую выключить. Например, для себя я выключил GDM, чтобы загружаться прямо в консоль. Если вы в консоли работать не умеете или хотите загружаться в графику - оставьте службу GDM (или KDM) включённой.
  2. Если у вас возникли вопросы по загружаемой службе и вы не вполне уверены что она делает - оставьте вопрос в комментариях или найдите информацию в поисковиках. Разбирайтесь в том, что вы делаете, до того, как сделаете это. Если вы не понимаете для чего нужна та или иная служба - оставьте её значение по умолчанию, вместо того, чтобы выключать.
  3. Если у вас в списке есть служба, описания которой нет здесь - оставьте её имя и описание в комментариях, статья будет постоянно обновляться.

Подготовка

I. Устанавливаем утилиту sysv-rc-conf. Она написана на перле и нужна для управления службами при загрузке.

sudo apt-get install sysv-rc-conf

Она упростит настройку процесса загрузки и настройку уровней запуска служб.

II. Это всё, что нам нужно. Теперь запускаем утилиту

sudo sysv-rc-conf

и исследуем службы одну за другой. Некоторых служб, которые есть у меня, у вас может не быть - ну и хорошо. Если наоборот, у вас есть служба, которой нет здесь - разберитесь с ней самостоятельно или спросите в комментариях.

Уровни выполнения процессов

Немножко об уровнях выполнения, прежде чем мы начнём их править.

Скрипты запускаемых служб в Ubuntu Linux располагаются в каталогах /etc/rcN.d/, где N - уровень выполнения. Уровни выполнения - это варианты загрузки или выключения системы, в соответствии со следующей таблицей:

УровеньОписание
1Однопользовательский режим работы. Система инициализирует минимум служб и даёт единственному пользователю (как правило, суперпользователю) без проведения аутентификации командную строку. Как правило, этот режим используется для восстановления системы. Запускаются все процессы из /etc/rc1.d
2Многопользовательский режим. Пользователи могут работать на разных терминалах, вход в систему с процессом аутентификации
3Многопользовательский сетевой режим. В отличие от предыдущего уровня, осуществляется настройка сети и запускаются различные сетевые службы
4Не имеет стандартного толкования и практически не используется
5Запуск графической подсистемы. По сравнению с уровнем 3 производится также старт графической подсистемы X11. Вход в систему осуществляется уже в графическом режиме
6Перезагрузка системы. При включении этого режима останавливаются все запущенные программы и производится перезагрузка
0Остановка системы (halt). Работа системы должна быть прекращена
SПервый уровень в процессе загрузки. Будет запущен скрипт /etc/init.d/rcS и все процессы в /etc/rcS.d.

Ну что же, теперь мы готовы вернуться к использованию утилиты sysv-rc-conf.

Настройка

Цветовая дифференциация: включенные службы; выключенные службы.

  1. acpi-support - Лучше оставить уровень по умолчанию. То есть: 2,3,4,5.
  2. acpid - Демон acpi. Этот и предыдущий процессы отвечают за управление питанием и очень важны и для ноутбуков, и для рабочих станций, так что лучше оставить их включенными. По умолчанию: 2,3,4,5.
  3. adjtimex - Инструмент для тонкой подстройки часов в ядре. Обычно в списке загрузки его нет. В исключительных случаях, если он всё же находится в этом списке, значит тому были веские причины и лучше оставить его включенным.
  4. alsa - Если используется звуковая подсистема alsa, то да, запуск надо оставить. Но если у вас есть служба alsa-utils, то эту можно отключить. По умолчанию: выключена, если включена alsa-utils.
  5. alsa-utils - В моей системе эта служба заменяет alsa, так что я выключил alsa и включил эту на уровне S. -Примечание- Говоря «Выключил» я подразумеваю - снял все «X» со всех уровней выполнения. Если у вас их и не было - замечательно. Продолжаем настройку. По умолчанию: уровень выполнения S.
  6. anacron - Подсистема cron, которая выполняет любую его задачу, которая не была выполнена вовремя. Чаще всего такое случается, если в момент наступления задачи по cron ваш компьютер был выключен. Например, updatedb запланирован каждый день на 2 часа ночи, но в это время компьютер не работал. При запуске компьютера anacron попытается определить пропущенные задачи и выполнит их. Я убрал эту службу, поскольку не так часто выключаю свой ноутбук, но в большинстве случаев она должна быть включена. По умолчанию: 2,3,4,5.
  7. apmd - Эта служба меня немного смутила. У меня уже включен acpid, так зачем мне включать ещё и apmd? Если ваш компьютер не настолько старый, чтоб даже не поддерживать acpi, попробуйте отключить эту службу. Я отключил. По умолчанию: 2,3,4,5.
  8. atd - Планировщик, наподобие cron. Я отключил. По умолчанию: 2,3,4,5.
  9. binfmt-support - Поддержка ядром других форматов бинарников. Я оставил. По умолчанию: 2,3,4,5.
  10. bluez-utiles - Я выключил. У меня нет устройств bluetooth. По умолчанию: 2,3,4,5.
  11. bootlogd - Оставьте запускаться. По умолчанию: S.
  12. cron - Тоже надо оставить. По умолчанию: 2,3,4,5.
  13. cupsys - Подсистема для управления принтером. У меня принтера нет, так что я смело отключил, но вы смотрите по обстоятельствам. По умолчанию: 2,3,4,5.
  14. dbus - Система сообщений (Message bus system). Очень важна, оставьте включённой. По умолчанию: 2,3,4,5.
  15. dirmngr - Утилита управления списками сертификатов. Работает заодно с gnupg. По умолчанию: 2,3,4,5.
  16. dns-clean - В основном служит для очистки DNS при использовании соединений dial-up. У меня нет dial-up, так что я выключил. По умолчанию: S.
  17. evms - (Enterprise Volume Management System) - система управления томами для ОС Linux. EVMS предлагает единые унифицированные механизмы для управления дисками, дисковыми разделами, файловыми системами, физическими томами LVM ит.д. Я выключил. По умолчанию: S.
  18. fetchmail - Демон доставки электронной почты. Я выключил. По умолчанию: 2,3,4,5.
  19. gdm - Менеджер рабочего стола (Gnome Desktop Manager). Я его в любом случае уже выключил, когда решил загружаться в консоль. В данном случае - дело предпочтений, так что решать вам, хотите ли вы загружаться напрямую в GUI. По умолчанию: 2,3,4,5.
  20. gdomap - Я понятия не имею, зачем этот процесс должен запускаться. Я не видел этого демона больше ни в одной системе, так что я его выключил и не чувствую какой-либо утраты. Есть какие-нибудь причины для его использования на ноутбуках или рабочих станциях? По умолчанию: 2,3,4,5.
  21. gpm - Поддержка мыши для консоли. Если вы чувствуете, что не можете обойтись без мыши в консоли - поставьте уровень выполнения 1 и 2. Это всё, что нужно. По умолчанию: 2,3,4,5.
  22. halt - Не менять. По умолчанию: 0.
  23. hdparm - Скрипт для подстройки жёсткого диска. Я отключил уровни 2,3,4,5, но установил уровень S. Я полагаю, что открытие DMA, 32-битного ввода-вывода и т.д. принесёт пользу остальным процессам. Также я сменил родной скрипт на очень простой, который сделал самостоятельно. Я думаю, не стоит производить все эти избыточные проверки, если я сам знаю, что делаю. Файл конфигурации - /etc/hdparm.conf. По умолчанию: 2,3,4,5.
  24. hibernate - Если ваша система поддерживает спящий режим - оставьте службу работать. В противном случае она бесполезна. По умолчанию: S.
  25. hotkey-setup - Этот демон включает некоторые специфические горячие клавиши в ноутбуках. Есть заводская поддержка: HP, Acer, ASUS, Sony, Dell, и IBM. Если у вас ноутбук этих производителей, можно оставить службу запускаться, в противном случае её запуск будет бесполезен. По умолчанию: 2,3,4,5.
  26. hotplug и hotplug-net - Включение подсистем hotplug занимает время. Я бы задумался, включать ли их вообще. Я сделал несколько изменений в своём файле /etc/network/interfaces. Вместо того, чтобы адресовать свою беспроводную карту в процессе hotplug, я включил её в автоматический режим. Таким образом, я могу отключить эти процессы. Я удостоверился, что даже при их отключении, ubuntu находит драйверы usb, цифровой камеры и так далее. Так что, думаю, отключение этих процессов достаточно безопасно. -Примечание- Если после отключения hotplug ваша звуковая карта перестала работать, можно включить его обратно. Или можно отредактировать файл /etc/modules, чтобы добавить модуль драйвера звуковой карты. Более поздние работают быстрее, проверено. По умолчанию: S.
  27. hplip - Подсистема печати и обработки изображений HP. Я отключил. По умолчанию: S.
  28. hwtools - Утилита для оптимизации irq.
  29. ifrename - Скрипт по именованию сетевых интерфейсов. Звучит красиво, но я отключил. Нужен, в основном, для управления именами нескольких сетевых интерфейсов. С тех пор, как у меня две сетевые карты - беспроводная и проводная - они обозначены ядром как eth0 и ath0, так что процесс для меня бесполезен. По умолчанию: S.
  30. ifupdown и ifupdown-clean - Не отключайте. Это скрипты для включения сетевых интерфейсов при загрузке. По умолчанию: ifupdown - 0,6,S и ifupdown-clean - S.
  31. inetd или inetd.real - Посмотрите в файл /etc/inetd.conf и закомментируйте все службы, которые вам не нужны. Если активных служб после этого не осталось - демон можно смело убирать из запуска. По умолчанию: 2,3,4,5.
  32. klogd - Не выключать. По умолчанию: 2,3,4,5.
  33. laptop-mode - Служба для проверки в ноутбуке: не пора ли выкинуть батарею. Бесполезна для стационарного компьютера. По умолчанию: 2,3,4,5.
  34. libpam-devperm - Демон для восстановления прав доступа к файлам-устройствам после сбоя системы.
  35. linux-restricted-modules-common - Нужно посмотреть, не загружены ли несвободные модули в систему. Эти модули можно найти в /lib/linux-restricted-modules. Если такие модули не используются - можно смело отключать демона. По умолчанию: 0,6,S.
  36. lm-sensors - Если материнская плата поддерживает сенсорные чипы, можно посмотреть их состояние.
  37. lvm - Я не использую, потому отключил. Оставьте, если у вас есть lvm. По умолчанию: S.
  38. makedev - Не отключать. По умолчанию: 2,3,4,5.
  39. mdamd - Инструмент для управления устройствами RAID. В большинстве случаев можно отключить. По умолчанию: 2,3,4,5.
  40. mdamd-raid - Инструмент RAID. По умолчанию: S.
  41. module-init-tools - Загружает дополнительные модули из файла /etc/modules. Можно посмотреть его содержимое на наличие ненужных модулей. Обычно включен. По умолчанию: S.
  42. mountvirtfs - Монтирование виртуальных файловых систем. Не отключать. По умолчанию: S.
  43. networking - Поднимает сетевые интерфейсы и конфигурирует DNS при загрузке, путём сканирования файла /etc/network/interfaces. Отключать не стоит. По умолчанию: 0,6,S.
  44. ntpdate - Синхронизирует время с сервером времени ubuntu (или заданным другим). По умолчанию: S. -Примечание- Если второй системой стоит Windows, лучше оставить процесс включённым. Windows хранит в биосе не универсальное (по гринвичу), а локальное время и при перезагрузке из одной системы в другую они будут пытаться корректировать друг друга. В последних версиях эта проблема вроде бы исправлена.
  45. nvidia-kernel - Я собирал драйвер nvidia самостоятельно, поэтому мне служба не нужна. Если используете несвободный драйвер nvidia - оставьте службу включённой. По умолчанию: 1,2,3,4,5.
  46. pcmcia - Активирует устройство PCMCIA. Я поставил уровень выполнения в 0,6,S вместо умолчательных 2,3,4,5, поскольку, по моему мнению, оборудование надо подключать в первую очередь. С другой стороны, если устройства PCMCIA не используются, то и службу можно отключать.
  47. portmap - Демон для управления такими службами, как nis, nfs, и т.д. По умолчанию: 2,3,4,5,0,6,S.
  48. powernowd - Клиент для управления cpufreq. Нужен в основном для ноутбуков с поддержкой технологиии изменения частоты процессора. Полезен для ноутбуков и наоборот для стационарных компьютеров. По умолчанию: 2,3,4,5.
  49. ppp и ppp-dns - Мне не нужно. У меня нет dial-up. По умолчанию: ppp - 2,3,4,5 и pppd-dns - S.
  50. readahead - Похоже, readahead это разновидность «предзагрузчика». Загружает при старте несколько библиотек в оперативную память, что позволяет некоторым программам быстрее стартовать. Но увеличивает время загрузки системы на 3-4 секунды. По умолчанию: S.
  51. reboot - Не менять. По умолчанию: 6.
  52. resolvconf - Автоматически настраивает DNS в соответствии со статусом сети. По умолчанию: S.
  53. rmnologin - Убирает nologin, если находит. У меня такого не будет, я убрал. По умолчанию: 2,3,4,5.
  54. rsync - Демон rsync. Можно убрать, если не уверены, что он вам нужен. По умолчанию: 2,3,4,5.
  55. screen-cleanup - Скрипт для очистки экрана при загрузке. По умолчанию: S.
  56. sendsigs - Посылает сигналы в процессе перезагрузки и выключения. Оставьте как есть. По умолчанию: 0,6.
  57. single - Активирует однопользовательский режим. Не отключать. По умолчанию: 1.
  58. ssh - Демон ssh. Лучше выключить, если не уверены в обратном. По умолчанию: 2,3,4,5.
  59. stop-bootlogd - Останавливает bootlogd с уровней выполнения 2,3,4,5. Оставьте как есть. По умолчанию: 2,3,4,5.
  60. sudo - Проверяет состояние sudo. Я не вижу причин этому демону быть запущенным ни на ноутбуке, ни на стационарной машине. По умолчанию: S.
  61. sysklogd - Оставьте как есть. По умолчанию: 2,3,4,5.
  62. udev и udev-mab - Пользовательская файловая система. По умолчанию: S.
  63. umountfs - Оставьте как есть. По умолчанию: 0,6.
  64. urandom - Генератор случайных чисел. Нельзя угадать какому приложению, особенно в графике, может понадобиться. По умолчанию: 0,6,S.
  65. usplash - Картинка при загрузке системы, с индикатором загрузки. Для полного отключения надо редактировать файл /boot/grub/menu.lst: закомментировать строку splashimage и убрать опцию splash из строки загрузки ядра. По умолчанию: 2,3,4,5.
  66. vbesave - Утилита для настройки BIOS видеокарты. По умолчанию: 2,3,4,5.
  67. xinetd - Сверхдемон inetd для управления другими демонами. Включать имеет смысл только в том случае, если есть демоны под его управлением.
  68. xorg-common - Устанавливает сокет ICE для графического сервера. По умолчанию: 2,3,4,5.
Описания процессов практически полностью взяты из англоязычной статьи, которая писалась для другой версии Ubuntu, но большая часть информация верна и для Ubuntu 9.04. Со временем я постараюсь избавиться от манеры изложения оригинала и дополню описания.

Дополнительно

Как уже было сказано, процессы, а вернее ссылки на них, лежат в папках вида /etc/rcN.d, где N может принимать значения от 0 до 6 или может быть равно S. Названия ссылок, лежащих в этих папках, имеют следующий формат: символ «S» или «K», две цифры, образующие число, и в конце - название процесса.

Ссылка, начинающаяся с «S» соответствует запуску системы, а с «K» - её остановке.

Число соответствует порядку запуска при старте (или остановке) системы. В классическом варианте, если процесс требует как процедуры запуска, так и остановки, то числа, следующие после «S» и «K» дадут для него в сумме 100. Например, ссылке S03имя_процесса для запуска будет соответствовать ссылка K97имя_процесса для остановки. Это делается для того, чтобы процессы останавливались в порядке, обратном запуску.

Парные ссылки «S» и «K» указывают на один и тот же скрипт в /etc/init.d/, который должен быть написан в определённом формате. Об этом - как-нибудь в следующий раз.

Ссылки

http://ubuntuforums.org/showthread.php?t=89491 (http://ubuntuforums.org/showthread.php?t=89491)
Хитрости запуска служб в Linux (http://www.opennet.ru/base/sys/run_services_tips.txt.html)