[Devel] Fwd: AltLinux'

Dmitrij Maslennikov master armory.ru
15 15:07:02 MSK 2008


---------- Forwarded message ----------
From: Dmitrij Maslennikov <master  armory.ru>
Date: 15.01.2008 14:56
Subject: Re: Ускорение загрузки AltLinux'а
To: Vitaly Lipatov <lav  etersoft.ru>

Это связано с тем, что там обязательно свои скрипты для запуска
> служб?


Там даже не скрипты, а некоторые файлы настройки.
Вот один из примеров

daemon daemon/httpd {
need = system/bootmisc virtual/net;
use = daemon/sshd daemon/mysql daemon/postgres system/mountfs;
respawn;
pid_file = /var/run/httpd.pid;
forks;
exec daemon = @/usr/sbin/httpd@;
}


>
> > gentoo-way
> > У них вполне симпатичная система инициализации (самая логичная
> > из все, что я видел). Плавный переезд вполне возможен. Но
> А что именно хорошего? Плавный - это значит поддерживаются старые
> скрипт?


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

Ну вряд ли. Конечно эта связка может быть медленнее в десятки
> раз, чем С++, но все задержки всё-же на вводе-выводе, а не на
> загрузке процессора.


Дело в том, что init скрипты на bash запускают большое количество
разных бинарников, которые подгружают большое количество скриптов.
Винт не справляется. Один бинарник и минимум скриптов ИМХО быстрее.


Основное правило - всё же не изобретать велосипед по возможности.
> Наверное если выбран gentoo-way (и хорошо раскритикован init-ng),
> то стоит его и попробовать (возможно что-то есть и в rpm-based
> системах?)
> Написание своей системы (на C++, как понимаю), будет обосновано,
> если будет доказано, и если будет прототип. Вообще испокон веков
> такие вещи пишут на шелле таки...


Вообще испокон веков линукс медленно грузится. На шелле очень сложно
писать  многопоточные
засинхронизированные программы. Обычно они блокируют друг друга создавая
какие-то файлы. Все это к тому же не читаемо и громоздко.

Кстати, пару лет назад icesik@ вбрасывал что-то в Дедал для
> облегчения жизни init-ng...
> http://lists.altlinux.org/pipermail/devel/2006-February/041387.html
>
> Вот кстати древний, но интересный документ на тему:
> http://samba.org/~ab/initscripts-replacement-proposal.txt


Ознакомлюсь

В общем хотелось бы обоснованного выбора - возможно ли
> опубликовать за и против для каждого варианта?
>
> Я сделал копию в рассылку, предлагаю обсуждать в ней.
>
> Так же можно записывать выводы в баги по каждому заданию:
> http://bugs.etersoft.ru/show_bug.cgi?id=1054
>
>
Рассылка devel  lists.etersoft.ru?

Теперь о новых результатах.

Написал небольшую программу, которая позволила мне получить график загрузки
системы (во вложении).
На графике все значения указаны в секундах. Получить такой же у себя
можно сделав следующее:

   1. Скомпилировать С++ программу из вложения $ g++ -O2 rinit.cpp -o
rinit -lboost_filesystem

   2. Закинуть ее в /bin/rinit
   3. У всех скриптов запускающихся при старте системы поменять /bin/sh
   или /bin/bash на /bin/rinit
   4. Перезагружаемся.
   5. Скрипт analise.py строит нам график. (требует PyQT4)

Недостаток этой системы в том, что не учитывается время, прошедшее от
запуска первого приложения (/bin/init) до запуска первого скрипта из
/etc/init.d. Оно по моим наблюдения чуть больше, чем время запуска остальных
скриптов (секунд 30). Тем не менее сразу видно, что очень долго происходит
запуск hotplug. Я так полагаю, что его вполне можно запускать после dm, что
позволит раньше увидеть приглашение ко входу в систему.

Еще много времени занимает процесс обновления chroot-среды, вопрос: а оно
надо на десктопе? Сегодня углублюсь в сами скрипты и найду способ замерить
время от запуска /bin/init до запуска первого скрипта.

P. S. Насчет init-ng и gentoo скриптов и прочего, есть еще соображения, но
сейчас не могу сформулировать.
-----------   -----------
Вложение в формате HTML было удалено...
URL: http://lists.etersoft.ru/pipermail/devel/attachments/20080115/caed281b/attachment-0001.html 
-----------   -----------
Было удалено вложение не в текстовом формате...
Имя     : rinit.cpp
Тип     : application/octet-stream
Размер  : 695 байтов
Описание: отсутствует
Url     : http://lists.etersoft.ru/pipermail/devel/attachments/20080115/caed281b/attachment-0002.obj 
-----------   -----------
Было удалено вложение не в текстовом формате...
Имя     : analise.py
Тип     : application/octet-stream
Размер  : 5284 байтов
Описание: отсутствует
Url     : http://lists.etersoft.ru/pipermail/devel/attachments/20080115/caed281b/attachment-0003.obj 
-----------   -----------
Было удалено вложение не в текстовом формате...
Имя     : 001.png
Тип     : image/png
Размер  : 62592 байтов
Описание: отсутствует
Url     : http://lists.etersoft.ru/pipermail/devel/attachments/20080115/caed281b/attachment-0001.png 


devel