[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