[Comm] Re:
Denis Smirnov
=?iso-8859-1?q?mithraen_=CE=C1_freesource=2Einfo?=
Сб Май 10 01:10:59 MSD 2003
On Fri, May 09, 2003 at 11:39:59AM +0500, ASA wrote:
> DS> В SyV она тольно последовательная. Я имею в виду что-то вроде "почтовый
> DS> сервер должен запускать после антивирусного сервиса, если таковой
> DS> имеется".
> Как мы отметили ниже, такое можно реализовать без потери
> совместимости с SysV.
В какой момент должен запускаться скрипт, если для него ничего не указано?
Считать его зависимых от всех предыдущих по номеру?
> DS> Соответственно последовательность работы загрузчика следующая -- берётся
> DS> список поднимаемый сервисов, строится дерево зависимостей, дальше
> DS> запускаем скрипты инициализации для N сервисов, из тех, которые можно
> DS> инициализировать сразу. После завершения каждого из скриптов смотрим что
> DS> следующее можно инициализировать.
> Я протестую против "все враз". Если запустить слишком много
> программ, то они в сумме отработают медленее, чем в сумме каждая
> по отдельности, из-за слишком большого количества
> разноупорядоченных обращений к диску (что-то типа hard drive
> seek test ;). Пример - в той же вынде выделите побольше иконок
> на рабочем столе и нажмите Enter ;) Поэтому можно ввести
> ограничение на одновременную работу не более 4*CPU скриптов враз.
Это конфигурируемо должно быть. По-умолчанию 4*CPU -- оптимум.
> DS> > отдельно от других подобных ему. И тут может возникнуть
> DS> > нетривиальная задача развязки обязательных и необязательных
> DS> > зависимостей.
> DS> А в чём собственно её нетривиальность? Автор пакета должен суметь чётко
> DS> сформулировать что необходимо его сервису для работы.
> Нетривиальность вообще в создании такого дерева.
В смысле в создании дерева по меткам, или в проставлении меток
зависимости?
> DS> Насчёт завязки на диск -- что это, например? Сервер БД на что больше
> DS> завязан? IMHO сервер БД можно запускать как только смонтированы все
> DS> разделы и подняты интерфейсы (если он не локальный).
> то же самое можно сказать про большиснтво других сервисов.
> Итак, fsck :), squid, smb
> А в целом, да, ты прав, нужно какое-то другое деление.
squid часть времени своего запуска почти не насилует хард. Кроме того кэш
сквида может случайно быть на другом харде. А smb при запуске вообще вроде
почти ничего не делает (разве что конфиги читает).
> DS> Для многопроцессорных систем польза от многопоточного запуска, IMHO,
> DS> очевидна.
> Но не для hdd.
Ну на многопроцессных системах вполне может оказаться что данные разных
процессов на разных разделах. Тестировать это всё надо.
> DS> Ещё можно вспонмить известный факт с многопроцессной компиляцией (make
> DS> -jN), которая увеличивает скорость компиляции даже на однопроцессорных
> DS> машинах.
> Потому что тут постоянно запускаются одни и те же программы
> (gcc, make, ...), которые уже лежат в кэше.
Это да. Но, IMHO, основные задержки при запуске системы сейчас это
DNS-запросы (и прочая сетевая активность) во время поднятия сервисов, и
таки загрузка процессора теми же скриптами.
> DS> > В сам S-скрипт (те, которые лежат в init.d) добавляем еще одно
> DS> > поле типа как это сделано для chkconfig. В этом поле указываем
> DS> > класс скрипта - дисковый или нет.
> DS> Тоже вариант. Только вот с классом скрипта непонятно -- как их делить?
> DS> Какой у Bind'а? А если он обслуживают тучу зон? А у иксов?
> Думать надо...
Мне кажется, что не удастся это разделить.
> DS> > Можно пойти дальше и ввести еще одно поле в S-скрипте -
> DS> > зависимость от уже стартовавшего сервиса. Реализация именно
> DS> > такого способа задания зависимостей не представляет вообще
> DS> > никакого труда.
> DS> Собственно этим и можно в результате сделать точно ту схему, о которой я
> DS> писал выше. Только тогда придётся шерстить все скрипты.
> И?
Нужно чтобы всё работало даже для тех программ, которые об этой фиче не
знают. Если действительно сделать зависимостями по-умолчанию "все
предыдущие скрипты в списке", то действительно будет всё работать.
--
С уважением, Денис
http://freesource.info
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип : application/pgp-signature
Размер : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url : <http://lists.altlinux.org/pipermail/community/attachments/20030510/83c0e992/attachment-0004.bin>
Подробная информация о списке рассылки community