[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