Почему для некоторых сценариев нужно постоянное выделение ресурсов во время debian init?

Носатый популярный монитор стиля виджета GUI, сродни gkrellm, оба из которых должны быть доступными как пакет песней (они находятся в мягкой фетровой шляпе). Google и Вы найдете изображения и т.д.

Лично мне нравится gkrellm, но любой мог быть настроен так же, как индикатор ЦП, или "составной объект" или на ядро.

6
24.01.2014, 17:43
2 ответа

Много вопросов...

Основной ответ на Ваш вопрос - да, каждый скрипт запущен в его собственной оболочке, или скорее каждый процесс, который получает exec'd, содержит копию основной среды + эти переменные, которые включены этим определением источника + любые переменные новой среды, которые включены, когда сервис запускает.

Перемещение их включает, как vars.sh, к runlevel уровню была бы плохая идея, потому что затем каждая оболочка будет иметь их в этом runlevel. Большая часть инфраструктуры, которую создают эти сценарии, ультрахарактерна для сервисов, которые работают в получающейся оболочке, которая является побочным продуктом этих получаемых файлов.

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

$ free -m
             total       used       free     shared    buffers     cached
Mem:          7782       7086        696          0        218        883
-/+ buffers/cache:       5984       1797
Swap:         7823       1550       6273

-/+ buffers/cache строка является кэшированием этих типов блоков, связанных с диском ввод-вывод.

Будущие направления

Большая часть init's происходит из System V (см. статью Wikipedia о init для полной истории). По сегодняшним стандартам это вытеснено, но это служило хорошо в течение примерно 20 лет. Но существуют определенно области, где это является несовершенным.

Таким образом, чтобы попытаться обратиться они, 2 вновь прибывших, Systemd & Upstart были разработаны и начинают приниматься различными дистрибутивами Linux.

    ss #1

Принятие выскочки было чем-то вроде американских горок. Это разрабатывается Каноническим, таким образом, это было в Ubuntu в течение достаточно долгого времени и было частью Fedora, а также RHEL, CentOS и openSUSE какое-то время, прежде чем они переключились на systemd. Это находится на самом деле все еще в RHEL & CentOS в известной степени.

Обе этих системы делают отмеченные улучшения по сравнению с SysV init, особенно в области способности запустить сервисы параллельно. Один из главных дефицитов init. Но с этими системами, которые уводят, простота открытия нескольких сценариев в vim и тонкая настройка Ваших стандартных программ запуска. Это и полноценные технологии, которые требуют времени к grok и полностью понимают.

10
27.01.2020, 20:23
  • 1
    То, что существует много шаблона, восстановленного со сценариями оболочки, является точно одной из больших причин, почему дистрибутивы Linux избавляются от этой целой путаницы. –  vonbrand 24.01.2014, 19:34
  • 2
    Все верные; тем не менее порождение новых оболочек имеет стоимость, которая является, почему Debian (IIRC) использует вниз сокращенный dash в целях запуска вместо более тяжелого bash, например. –  Ulrich Schwarz 24.01.2014, 20:26
  • 3
    Хорошо спасибо, который отвечает на вопрос относительно того, как вещи, тем не менее можно было пожелать чего-то немного менее трудоемкого, как создание журнала функционирует так или иначе универсально доступный. Однако, я вижу, что существующий метод, по крайней мере, устойчив. Мы будем видеть, какое будущее init методы приносят к этому. Еще раз спасибо. –  Ray Andrews 25.01.2014, 00:19

Насколько я видел, только сценарии в /etc/init.d/ и /etc/network определение источника файлов в /lib/lsb/init-functions, они не получены снова и снова, только однажды для каждого сценария, и каждый сценарий должен получить его однажды, потому что каждый сценарий может быть запущен отдельно.

[Редактирование № 1]

Важный для знания, когда файл был считан однажды, он будет кэшируемым системой. Таким образом, это не занимает время, если файл должен быть считан снова. Плюс, файлы в /etc/lsb/init-functions содержите только определение подпрограмм, они привычка быть выполненными при определении источника.

[Редактирование № 2]

Я проверил это еще раз и хотел знать, сколько времени занимает получить некоторый сценарий. Таким образом, я переключился на init 1, чтобы быть уверенным, что никакой другой процесс не нарушает измерение. Вот результаты:

find /lib/lsb -type f -ls
9951842    4 -rw-r--r--   1 root     root         1088 Jun  5  2013 /lib/lsb/init-functions.d/20-left-info-blocks  
9952149    4 -rw-r--r--   1 root     root         2408 Dec 31 19:24 /lib/lsb/init-functions.d/40-systemd  
9951841   12 -rw-r--r--   1 root     root        11506 May 15  2013 /lib/lsb/init-functions 

Таким образом, это 3 сценария и о 15k устройства хранения данных

Тест является простым циклом удара

time bash -c 'for i in {1..10000}; do source /lib/lsb/init-functions; done'
real   0m27.342s
user   0m17.756s
sys    0m1.328s

Это означает 27.342/10000/3 = среднее число 0,0009 секунд получать один сценарий на Core 2 Duo на 3.4 ГГц.

1
27.01.2020, 20:23
  • 1
    Несомненно, только однажды на сценарий, но даже который кажется расточительным, но если каждый процесс имеет свою собственную оболочку, то я предполагаю, этому нельзя помочь. –  Ray Andrews 25.01.2014, 00:15
  • 2
    Также каждый исполняемый файл ELF загружается, это - библиотеки ondemand во времени выполнения, сегмент текста библиотек является hovewer, отображенным эффективно однажды. Защищенный режим был до изобретения Intel i386 желаемая функция. Таким образом, Вы правы в случае, если это это расточительно. Так или иначе выполнение сценария оболочки также расточительно, потому что это слишком медленно по сравнению с исполняемым файлом. Во всяком случае это очень мощно, и это стало привычкой. У Вас есть альтернативы? –   25.01.2014, 00:31
  • 3
    Никакая альтернатива здесь! Я просто пытаюсь понять вещи. –  Ray Andrews 25.01.2014, 04:07
  • 4
    Ха! Спасибо за тесты скорости, который очень информативен. Попытка –  Ray Andrews 25.01.2014, 17:41

Теги

Похожие вопросы