<br><br>---------- Forwarded message ----------<br><span class="gmail_quote">From: <b class="gmail_sendername">Dmitrij Maslennikov</b> <<a href="mailto:master@armory.ru">master@armory.ru</a>><br>Date: 15.01.2008 14:56
<br>Subject: Re: Ускорение загрузки AltLinux'а<br>To: Vitaly Lipatov <<a href="mailto:lav@etersoft.ru">lav@etersoft.ru</a>><br><br></span><div><span class="q"><blockquote class="gmail_quote" style="margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; margin-left: 0.80ex; border-left-color: #cccccc; border-left-width: 1px; border-left-style: solid; padding-left: 1ex">
Это связано с тем, что там обязательно свои скрипты для запуска<br>служб?</blockquote></span><div><br>Там даже не скрипты, а некоторые файлы настройки.<br>Вот один из примеров<br><br>daemon daemon/httpd {<br>need = system/bootmisc virtual/net;
<br>use = daemon/sshd daemon/mysql daemon/postgres system/mountfs;<br>respawn;<br>pid_file = /var/run/httpd.pid;<br>forks;<br>exec daemon = @/usr/sbin/httpd@;<br>}<br></div><span class="q"><br><br><blockquote class="gmail_quote" style="margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; margin-left: 0.80ex; border-left-color: #cccccc; border-left-width: 1px; border-left-style: solid; padding-left: 1ex">
><br>> gentoo-way<br>> У них вполне симпатичная система инициализации (самая логичная<br>> из все, что я видел). Плавный переезд вполне возможен. Но<br>А что именно хорошего? Плавный - это значит поддерживаются старые
<br>скрипт?</blockquote></span><div><br>Плавный -- это означает, что никто ничего не должен заметить, кроме того, что грузиться быстрее стало. </div><span class="q"><br><blockquote class="gmail_quote" style="margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; margin-left: 0.80ex; border-left-color: #cccccc; border-left-width: 1px; border-left-style: solid; padding-left: 1ex">
Ну вряд ли. Конечно эта связка может быть медленнее в десятки<br>раз, чем С++, но все задержки всё-же на вводе-выводе, а не на<br>загрузке процессора.</blockquote></span><div><br>Дело в том, что init скрипты на bash запускают большое количество разных бинарников, которые подгружают большое количество скриптов. Винт не справляется. Один бинарник и минимум скриптов ИМХО быстрее.
</div><span class="q"><br><blockquote class="gmail_quote" style="margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; margin-left: 0.80ex; border-left-color: #cccccc; border-left-width: 1px; border-left-style: solid; padding-left: 1ex">
Основное правило - всё же не изобретать велосипед по возможности.<br>Наверное если выбран gentoo-way (и хорошо раскритикован init-ng),<br>то стоит его и попробовать (возможно что-то есть и в rpm-based<br>системах?)<br>Написание своей системы (на C++, как понимаю), будет обосновано,
<br>если будет доказано, и если будет прототип. Вообще испокон веков<br>такие вещи пишут на шелле таки...</blockquote></span><div><br>Вообще испокон веков линукс медленно грузится. На шелле очень сложно писать многопоточные засинхронизированные программы. Обычно они блокируют друг друга создавая какие-то файлы. Все это к тому же не читаемо и громоздко.
</div><span class="q"><br><blockquote class="gmail_quote" style="margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; margin-left: 0.80ex; border-left-color: #cccccc; border-left-width: 1px; border-left-style: solid; padding-left: 1ex">
Кстати, пару лет назад icesik@ вбрасывал что-то в Дедал для<br>облегчения жизни init-ng...<br><a href="http://lists.altlinux.org/pipermail/devel/2006-February/041387.html" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
http://lists.altlinux.org/pipermail/devel/2006-February/041387.html </a><br><br>Вот кстати древний, но интересный документ на тему:<br><a href="http://samba.org/~ab/initscripts-replacement-proposal.txt" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
http://samba.org/~ab/initscripts-replacement-proposal.txt</a></blockquote></span><div><br>Ознакомлюсь </div><span class="q"><br><blockquote class="gmail_quote" style="margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; margin-left: 0.80ex; border-left-color: #cccccc; border-left-width: 1px; border-left-style: solid; padding-left: 1ex">
В общем хотелось бы обоснованного выбора - возможно ли<br>опубликовать за и против для каждого варианта?<br><br>Я сделал копию в рассылку, предлагаю обсуждать в ней.<br><br>Так же можно записывать выводы в баги по каждому заданию:
<br><a href="http://bugs.etersoft.ru/show_bug.cgi?id=1054" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://bugs.etersoft.ru/show_bug.cgi?id=1054</a><br><br></blockquote></span></div><br>Рассылка
<a href="mailto:devel@lists.etersoft.ru" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"> devel@lists.etersoft.ru</a>?<br><br>Теперь о новых результатах.<br><br>Написал небольшую программу, которая позволила мне получить график загрузки системы (во вложении).
<br>На графике все значения указаны в секундах. Получить такой же у себя можно сделав следующее: <br><ol><li> Скомпилировать С++ программу из вложения $ g++ -O2 rinit.cpp -o rinit -lboost_filesystem <br></li><li>Закинуть ее в /bin/rinit
</li><li>У всех скриптов запускающихся при старте системы поменять /bin/sh или /bin/bash на /bin/rinit <br></li><li>Перезагружаемся.</li><li>Скрипт analise.py строит нам график. (требует PyQT4)</li></ol>Недостаток этой системы в том, что не учитывается время, прошедшее от запуска первого приложения (/bin/init) до запуска первого скрипта из /etc/init.d. Оно по моим наблюдения чуть больше, чем время запуска остальных скриптов (секунд 30). Тем не менее сразу видно, что очень долго происходит запуск hotplug. Я так полагаю, что его вполне можно запускать после dm, что позволит раньше увидеть приглашение ко входу в систему.
<br><br>Еще много времени занимает процесс обновления chroot-среды, вопрос: а оно надо на десктопе? Сегодня углублюсь в сами скрипты и найду способ замерить время от запуска /bin/init до запуска первого скрипта.<br><br>
P. S. Насчет init-ng и gentoo скриптов и прочего, есть еще соображения, но сейчас не могу сформулировать.<br><br clear="all">