Сокращение времени загрузки ROSA Marathon 2012

Вопросы и обсуждения, касающиеся РОСА Марафон (релиз с долговременной поддержкой)
Закрыто
Аватара пользователя
AL_
Сообщения: 253
Зарегистрирован: 06 фев 2012, 21:59
Откуда: Москва
Контактная информация:

Сокращение времени загрузки ROSA Marathon 2012

Сообщение AL_ » 17 июн 2012, 19:43

Введение

1. Утащено написано на основе:
*Внимание: Все описанные далее действия выполняются от имени пользователя root. Ошибки в некоторых шагах могут привести к различным сбоям в загрузке системы, поэтому рекомендуется делать все очень внимательно, а также запастись live-версией какого-либо дистрибутива.

*Примечение: для удобства был поставлен автоматический вход в систему без ввода пароля, т.к. перезагружаться нужно будет много и часто.

2. Оценка времени загрузки при помощи bootchart
1. Установить bootchart.

Код: Выделить всё

urpmi bootchart
Bootchart - представляет собой собой сборщик данных о загрузке и
времени выполнения отдельных процессов. После загрузки можно
сгененерировать графический файл с разбором полетов.

2 Подготовка к запуску bootchart (Grub)

2.1 Перейти в каталог /boot/grub и открыть файл menu.lst

2.2 В параметры загрузки необходимо добавить init=/sbin/bootchartd

2.3 Сохранить изменения и перезагрузить систему.

3. Перейти в каталог /var/log и открыть файл bootchart.png

4. В файле находится графическое представление процесса загрузки системы.
3. О точности
При оценке времени загрузки стоит учесть, что некоторое время тратится на запуск самого bootchart, а также на сбор результатов. Гораздо удобнее использовать команду systemd-analyze, но в ROSA нет соответствующего пакета.
Сам bootchart часто врет, результаты имеют некоторый разброс. Кроме того иногда подсчет времени ведется неверно и на выходе получаются астрономические цифры (например, 7 минут), несоответствующие действительности. Поэтому данные, получаемые из его графиков, служат относительным показателем времени, но все же позволяют определить наиболее "долгие" процессы.
Вот почему в некоторых случаях для приблизительной оценки использовался обычный секундомер мобильного телефона :)

Сокращение времени загрузки

1. Prelink
Большинство приложений в Linux используют динамически загружаемые библиотеки, которые содержат различные функции, необходимые для их работы. При каждом запуске приложения должны быть также загружены эти библиотеки. В случае тяжелых приложений, имеющих большое количество связей, этот процесс может занять определенное время. При этом выполняемые для связывания библиотек действия одинаковы, если сами библиотеки не меняются. Утилита prelink позволяет прописать связи с библиотеками непосредственно в исполняемый файл, что ускорит запуск приложения. Выполняется это без перекомпиляции приложений.

*Внимание: по непроверенной информации установка prelink в системе, использующей wine может привести к ухудшению или прекращению работы последнего.

1.1. Установить prelink

Код: Выделить всё

urpmi prelink
1.2 Выполнить из консоли:

Код: Выделить всё

prelink -amfR 
*Внимание: это длительный процесс.

1.3 Перезагрузить систему.

*Примечание: Учтите, что запускать prelink необходимо после каждого обновления библиотек и/или приложений. В ROSA запуск prelink будет автоматически добавлен в задания cron.

После установки prelink скорость загрузки системы удалось сократить на 20-30 сек. Результат во многом зависит от количества программ, запускающихся автоматически при старте системы.
2. Дополнительные параметры ядра
2.1 Перейти в каталог /boot/grub и открыть файл menu.lst

2.2 В параметры загрузки необходимо добавить libahci.ignore_sss=1 raid=noautodetect

Опции "raid=noautodetect" и "libahci.ignore_sss=1" позволяют ускорить время
инициализации ядра из-за пропуска дополнительных проверок.

*Внимание: Не рекомендуется выполнять этот шаг на системах, использующих RAID.

2.3 Сохранить изменения и перезагрузить систему.

После добавления параметров загрузки время развертывания системы составило 66 секунд.
3. Отключение сервисов
Для отключения следует использовать команду "systemctl mask", достоинство которой в том, что %post скрипт RPM в дальнейшем не включит сервис автоматически.
Cервисы отключенные через "systemctl mask" при необходимости можно в любой момент вернуть командой "systemctl unmask".

3.1 Перейти в каталог /lib/systemd/system

3.2 Cписок сервисов:

3.2.1 lvm2
Если на компьютере не используются LVM, то можно отключить все соответствующие сервисы.
systemctl mask lvm2-monitor.*

3.2.2. bluetoothd
Если на компьютере не используется bluetooth, отключаем его.
systemctl mask bluetoothd.*

3.2.3 avahi-daemon
Avahi - это система, которая обеспечивает возможность обнаружения сервисов в локальной сети. Это означает, что после подключения вашего компьютера к локальной сети вы сможете мгновенно обнаружить доступные принтеры, увидеть, какие разделяемые ресурсы имеются в сети, узнать, с кем из других пользователей сети вы можете поговорить через chat и так далее.
Если в локальной сети нет совместно используемых принтеров и прочего, отключаем.
systemctl mask avahi-daemon.*

3.2.4 cups
Это демон общей службы печати UNIX (the "Common UNIX Printing Solution"). Как следует уже из названия, это система печати, которая обеспечивает работу с различными форматами файлов и различными типами принтеров. Если вы хотите печатать, пусть этот демон работает в вашей системе, если нет, то:
systemctl mask cups*

3.3 Прочие демоны, для которых не нашел способ отключения

3.3.1 mandi
Демон мониторинга сети. В большинстве случаев не нужен.

3.3.2 nscd
Это демон кэширования для службы имен. Он поддерживает таблицу групп и паролей для запущенных программ, а затем выдает запомненный результат по следующему запросу тех служб, которые иначе работают слишком медленно, например, NIS или LDAP.

Результаты выполнения этого шага зависят от конфигурации системы и часто их влияние на скорость загрузки минимально, но хотя бы оперативную память чуточку разгрузим.
4. Манипуляции с монтированием разделов.
4.1 Монтировать раздел /tmp с использованием tmpfs для сокращения нагрузки на диск в процессе загрузки.

4.2 Добавить опции монтирования noatime,nodiratime.

В результате /etc/fstab будет выглядеть следующим образом:

Код: Выделить всё

# Entry for /dev/sda5 :
UUID=5434a306-2216-4dfc-ad67-dd512986a805 / ext4 defaults,noatime,nodiratime 1 1

# Entry for /dev/sda7 :
UUID=f8db9aa0-26ca-4705-a45b-b92a1f8b5abb /home ext4 defaults,noatime,nodiratime 1 2

none /proc proc defaults 0 0

# Entry for /dev/sda6 :
UUID=975dc49c-b065-41e1-b92d-7f664fcf8178 swap swap defaults 0 0

# Entry for tmpfs
tmpfs  /tmp  tmpfs  defaults  0 0
4.3 Если в системе есть раздел /boot , то его можно перевести в режим "монтирование по требованию", добавив опции noauto,comment=systemd.automount

Выигрыш от описанных операции обычно минимален, порядка 200-500 мск.
Заключение
Не забыть убрать запуск bootchart из /boot/grub/menu.lst
Последний раз редактировалось AL_ 17 июн 2012, 19:49, всего редактировалось 1 раз.
— А я? Я вам нравлюсь? Я нравлюсь всем. Рыцарям.
— Видите ли, мне никогда не нравилось то, что нравится всем. Рыцарям.

Аватара пользователя
AL_
Сообщения: 253
Зарегистрирован: 06 фев 2012, 21:59
Откуда: Москва
Контактная информация:

Re: Сокращение времени загрузки ROSA Marathon 2012

Сообщение AL_ » 17 июн 2012, 19:46

В моем случае удалось уменьшить время загрузки примерно на 25 секунд. Мелочь, а приятно :)

ПС:
К сожалению некоторые вещи из указанных в приведенных выше ссылках еще не пробовал, некоторые не получились совсем, поэтому тему можно и нужно будет дополнить со временем.
— А я? Я вам нравлюсь? Я нравлюсь всем. Рыцарям.
— Видите ли, мне никогда не нравилось то, что нравится всем. Рыцарям.

notauser
Сообщения: 1254
Зарегистрирован: 06 май 2012, 21:00

Re: Сокращение времени загрузки ROSA Marathon 2012

Сообщение notauser » 17 июн 2012, 22:44

http://www.xakep.ru/post/54476/?print=true :)
> /boot/grub/menu.lst
В ROSA какой grub?

Аватара пользователя
AL_
Сообщения: 253
Зарегистрирован: 06 фев 2012, 21:59
Откуда: Москва
Контактная информация:

Re: Сокращение времени загрузки ROSA Marathon 2012

Сообщение AL_ » 17 июн 2012, 23:30

notauser писал(а): В ROSA какой grub?
По умолчанию первый (точнее 0.97),в репозитариях есть второй (1.99).

По ссылке:
http://www.xakep.ru/post/54476/?print=true

1. Prelink описан.
2. Preload установлен в системе по умолчанию и запущен, потому и не стал о нем писать.
3. Readahead по идее есть сразу, но надо опять же попробовать, может его даже лучше выключить.
4. CryoPID нет в репозитариях РОСЫ.
5. Отключение ipv6 - не уверен, что это нужно, хотя упомянуть об этом стоит.
6. Добавление опции noresume пожалуй стоит сделать.
7. initframs я бы не трогал.

В течении недели добавлю новую информацию, спасибо :)
— А я? Я вам нравлюсь? Я нравлюсь всем. Рыцарям.
— Видите ли, мне никогда не нравилось то, что нравится всем. Рыцарям.

notauser
Сообщения: 1254
Зарегистрирован: 06 май 2012, 21:00

Re: Сокращение времени загрузки ROSA Marathon 2012

Сообщение notauser » 17 июн 2012, 23:49

> По умолчанию первый (точнее 0.97),в репозитариях есть второй (1.99).
>> Не забыть убрать запуск bootchart из /boot/grub/menu.lst
Там есть menu.lst?

Аватара пользователя
AL_
Сообщения: 253
Зарегистрирован: 06 фев 2012, 21:59
Откуда: Москва
Контактная информация:

Re: Сокращение времени загрузки ROSA Marathon 2012

Сообщение AL_ » 17 июн 2012, 23:53

Да, есть. Почему вас это так удивляет?)
— А я? Я вам нравлюсь? Я нравлюсь всем. Рыцарям.
— Видите ли, мне никогда не нравилось то, что нравится всем. Рыцарям.

notauser
Сообщения: 1254
Зарегистрирован: 06 май 2012, 21:00

Re: Сокращение времени загрузки ROSA Marathon 2012

Сообщение notauser » 17 июн 2012, 23:54

2012

Аватара пользователя
AL_
Сообщения: 253
Зарегистрирован: 06 фев 2012, 21:59
Откуда: Москва
Контактная информация:

Re: Сокращение времени загрузки ROSA Marathon 2012

Сообщение AL_ » 17 июн 2012, 23:56

lts же)
Но никто не мешает поставить grub2 из репозитариев :)
— А я? Я вам нравлюсь? Я нравлюсь всем. Рыцарям.
— Видите ли, мне никогда не нравилось то, что нравится всем. Рыцарям.

notauser
Сообщения: 1254
Зарегистрирован: 06 май 2012, 21:00

Re: Сокращение времени загрузки ROSA Marathon 2012

Сообщение notauser » 18 июн 2012, 00:04

Понял. Но 0.97 год где-то 2008
> Но никто не мешает поставить grub2 из репозитариев
Да, оно так.
ipv6 лучше оставить. Эта штука при правильном приготовлении уже сейчас напрочь отбивает необходимость во всяких TeamViewer (даже у localhost-админов).

Закрыто

Вернуться в «РОСА Марафон (LTS)»