Ускорение загрузки Debian (убираем задержки из стартовых скриптов)

Автор vavun, 11 января 2012, 16:55:15

« назад - далее »

0 Пользователи и 2 гостей просматривают эту тему.

vavun

В большинстве случаев скорость загрузки не имеет особого значения, но например в случае ноутбука или нетбука это бывает важно.

Перед изменением какого либо скрипта настоятельно рекомендую узнать о нем как можно больше, и не торопиться сразу же минимизировать все задержки.

Так же рекомендуется сделать бэкап, на случай если система не запуститься


ЦитироватьПри исследовании стартового скрипта вы найдете несколько хитростей и уловок. Из них наиболее распространены «спячки» (sleeps). Да, во время загрузки дистрибутив несколько раз фактически засыпает на пару секунд, чтобы убедиться, что оборудование инициализировано и другие программы определенно заработали.

В скриптах это обозначено в виде вызовов sleep(1), утилиты командной строки, которая ничего не делает, кроме задержки выполнения на указанное время. (Откройте терминал и введите sleep 5 ; ls – список файлов будет выведен после пятисекундной паузы). Например, перед настройкой сети стартовый скрипт должен сначала убедиться, что сетевой адаптер PCMCIA/Cardbus инициализирован, и он засыпает на пару секунд, чтобы не обгонять события.

Многие из этих задержек являются излишней предосторожностью – если ваша система хорошо справляется со стандартным оборудованием, вы можете без опаски убрать их. Чтобы их найти, откройте терминал, войдите как суперпользователь (su или sudo bash) и введите

cd /etc/init.d
grep sleep *


Мы входим в каталог стартовых скриптов (/etc/init.d) перечисляем файлы, содержащие вызовы sleep (вместе с временем задержки).

По именам файлов определите, программы какого типа они запускают, затем откройте их в редакторе, найдите строки с командой sleep и удалите числа. Вряд ли стоит менять все значения на ноль, но вы спокойно можете уменьшить их вдвое (сгодится даже 0.5), перезагрузиться и проверить, что все работает нормально.

Если у вас есть время, я бы рекомендовал делать изменения в пакетном режиме, чтобы облегчить возврат к предыдущим значениям, если что-то стартует некорректно. В больших дистрибутивах, имеющих множество стартовых скриптов, сокращение задержек может привести к уменьшению времени загрузки на 10–15 секунд. И ваш дистрибутив не потребует снотворного взамен!


Сравнение: до    после
Открыть содержимое (спойлер)
[свернуть]

Некоторые скрипты в зависимости от вашего оборудования могут быть вовсе не нужны, например у меня нет bluetooth, соответствующую службу можно отключить.
для этого хорошо подойдет sysv-rc-conf

Лично у меня удалось выиграть 7 секунд, для ноутбука это не мало.

Источник: http://wiki.linuxformat.ru/index.php/LXF80:%D0%A3%D1%81%D0%BA%D0%BE%D1%80%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B

Do you know why we call this beta ? Because it's betta than nothing.©
Have problems with windows, reboot. Have problems with linux, be root.©

Brainey

Лучше ещё проверьте, все ли загружаемые сервисы вам нужны. Для редактирования можно использовать удобную утилитку sysv-rc-conf.
Конференция форума в jabber: debianforum@conference.jabber.ru | Клуб кедоводов: kde@conference.jabber.ru

vavun

Цитата: Brainey от 11 января 2012, 17:09:41
Лучше ещё проверьте, все ли загружаемые сервисы вам нужны. Для редактирования можно использовать удобную утилитку sysv-rc-conf.
Кстати да, вылетело из головы, дополнил.

Do you know why we call this beta ? Because it's betta than nothing.©
Have problems with windows, reboot. Have problems with linux, be root.©

Angel_ok

Неплохо. Интересная тема.

Я бы еще порекомендовал все бэкапить, что бы можно было быстро вернуть все обратно.

grep sleep *
ang@debian:/etc/init.d$ grep sleep *
acpid:    sleep 1
acpi-fakekey: sleep 1
acpi-fakekey: sleep 1 # give acpi_fakekeyd a chance to disappear
alsa-utils: sleep 1
bluetooth: sleep 1
bootlogd: sleep 1
bootlogs: sleep 1
checkfs.sh: sleep 5
checkroot.sh: sleep 5
checkroot.sh: sleep 5
checkroot.sh: sleep 5
exim4:    sleep 2
fancontrol: sleep 3
hdparm:  sleep 2
hdparm:            sleep)
killprocs: sleep 1
loadcpufreq: sleep 1
mountnfs.sh: sleep 0.1
nfs-common: sleep 1
ntp: $0 stop && sleep 2 && $0 start
portmap:   sleep 1 # needs a short pause or pmap_set won't work. :(
portmap:     sleep 1 # needs a short pause or pmap_set won't work. :(
rsync:        sleep 1
rsync: sleep 1
saned: sleep 1
sendsigs: sleep 1
skeleton: # on this one.  As a last resort, sleep for some time.
skeleton: # sleep for some time.
udev:  sleep 60
vboxballoonctrl-service:        sleep .1
vboxdrv:        sleep .2
vboxdrv:        sleep $wait
vboxweb-service:        sleep .1
vnstat: sleep 1
wicd: # on this one.  As a last resort, sleep for some time.
wicd: # sleep for some time.
winbind: $0 stop && sleep 2 && $0 start
[свернуть]
Мой ноутбук загружается чуть больше минуты.
Меня смущает строка udev:  sleep 60. Я так понимаю она срабатывает только при определенной проблеме. Так?
Значит и другие sleep тоже не всегда запускаются. Верно?
Цитата: vavun от 11 января 2012, 16:55:15
Лично у меня удалось выиграть 7 секунд, для ноутбука это не мало.
Это вы высчитали сокращенные sleep или это реальные 7 секунд?
Вы думаете, всё так просто? Да, всё просто. Но совсем не так...
                                                                                                          Альберт Эйнштейн

Brainey

Открыть содержимое (спойлер)
Кстати, спасибо, что напомнили. Раньше пользовался этим способом (sleeps), ещё когда юзал Mandriva 2007.1.  :)
[свернуть]
Конференция форума в jabber: debianforum@conference.jabber.ru | Клуб кедоводов: kde@conference.jabber.ru

vavun

Цитата: Angel_ok от 11 января 2012, 17:18:56
Неплохо. Интересная тема.

Я бы еще порекомендовал все бэкапить, что бы можно было быстро вернуть все обратно.

Спасибо, дополнил.

Открыть содержимое (спойлер)
Цитата: Brainey от 11 января 2012, 17:19:30
Кстати, спасибо, что напомнили. Раньше пользовался этим способом (sleeps), ещё когда юзал Mandriva 2007.1.  :)

Пожалуйста, кстати единственный из опробованных мною способов, который дал такие приличные результаты, в один из запусков, после очередного исправления нескольких скриптов (те которые sleep 5, оставил на последок) я аж испугался, подумал, что что-то сейчас не заработает, но нет )

Будьте так добры, подскажите как еще можно ускорить загрузку ? Статьи может, или личный опыт. То что обычно выдает google не дает ощутимых результатов.

Спасибо
[свернуть]

Сообщение объединено: 11 января 2012, 17:45:37

Цитата: Angel_ok от 11 января 2012, 17:18:56
Мой ноутбук загружается чуть больше минуты.
Меня смущает строка udev:  sleep 60. Я так понимаю она срабатывает только при определенной проблеме. Так?
Значит и другие sleep тоже не всегда запускаются. Верно?
Цитата: vavun от 11 января 2012, 16:55:15
Лично у меня удалось выиграть 7 секунд, для ноутбука это не мало.
Это вы высчитали сокращенные sleep или это реальные 7 секунд?

Про udev пока не читал, потому и не трогал, но судя по времени задержки - да, нужны определенные условия

Про "другие sleep"
тут нужно изучить сам скрипт, есть ли в нем условия выполнения sleep, или же sleep будет выполняться в любом случае.
видимо стоит искать
if
then
else

Количество "кастрированных" секунд я вовсе не считал, это можно сделать только ради любопытства.
Увеличение скорости запуска определил - секундомером в мобильном, разница получилась в 6.6 .... секунд, округлилдо семи  :D так, что это реальные 7 секунд.

Do you know why we call this beta ? Because it's betta than nothing.©
Have problems with windows, reboot. Have problems with linux, be root.©

Sterios

Советую использовать программу bootchart(http://www.bootchart.org/), для анализа хода загрузки системы. Пакет для Debian доступен в репозитории sid'a.
- Harder, Better, Faster, Stronger

Brainey

Цитата: vavun от 11 января 2012, 17:36:38подскажите как еще можно ускорить загрузку ?
Ну, вспомнилась эта статья, но сам не пробовал. Система и так грузится быстро (секунд 15-20). Меня вполне устраивает.
Конференция форума в jabber: debianforum@conference.jabber.ru | Клуб кедоводов: kde@conference.jabber.ru

Malaheenee

Самый лучший путь - это "неустановка" ненужного. Зачем ставить метапакет gnome-core, когда можно ставить все по частям: aptitude -R gnome-panel metacity nautilus и т.д. Тогда и ненужного в загрузке не будет.
Все мы где-то, когда-то и в чем-то были новичками.

vavun

Цитата: Malaheenee от 11 января 2012, 18:46:53
Самый лучший путь - это "неустановка" ненужного. Зачем ставить метапакет gnome-core, когда можно ставить все по частям: aptitude -R gnome-panel metacity nautilus и т.д. Тогда и ненужного в загрузке не будет.

Помню для меня когда-то
apt-get install gnome-core
вместо
apt-get install gnome
было большим открытием  ;D

А вообще с вами согласен, но для меня пока сложновато будет )

Сообщение объединено: 11 января 2012, 19:02:35

Хотя, что я теряю, сегодня попробую  :D

Do you know why we call this beta ? Because it's betta than nothing.©
Have problems with windows, reboot. Have problems with linux, be root.©

Malaheenee

#10
Пробуйте, вот вам в помощь (что мы используем):
Открыть содержимое (спойлер)
   aptitude install bash-completion htop xfonts-base xfonts-100dpi xfonts-75dpi xfonts-scalable xserver-common xserver-xorg-video-fbdev xserver-xorg-video-vesa xserver-xorg-input-evdev xauth screen bzip2 p7zip-full zip unzip unrar ntfs-3g ntfsprogs dosfstools mtools alsa-base alsa-utils dbus policykit-1 consolekit lsb-release locate notification-daemon gnome-settings-daemon gnome-keyring gnome-screensaver gnome-screenshot gnome-system-monitor policykit-1-gnome xdg-user-dirs xdg-user-dirs-gtk gvfs gvfs-backends gvfs-fuse gnome-themes gnome-backgrounds gnome-icon-theme dmz-cursor-theme gnome-search-tool ttf-dejavu-extra ttf-dejavu-core ttf-freefont ttf-liberation eog evince totem-mozilla gnome-media freedesktop-sound-theme gucharmap gcalctool hunspell-en-us myspell-ru gnome-theme-gilouche gnome-brave-icon-theme
   aptitude install -R mc samba winbind smbfs smbclient samba-common-bin krb5-user ntp openssh-server cups-client xinit acpi-support upower udisks nautilus metacity gnome-power-manager gnome-menus gnome-session gnome-panel gdm3 gnome-terminal gnome-applets iceweasel iceweasel-l10n-ru icedove icedove-l10n-ru gedit file-roller totem gnome-user-guide
   aptitude install libreoffice-gnome libreoffice-l10n-ru libreoffice-help-ru
   aptitude install -R libreoffice
[свернуть]
Это необходимый минимум для нас. Всяческие кодеки и прочее - по необходимости для каждой машины отдельно (см. подпись).

Еще по теме: desktop-base, добавляющий православные обои и пр. от Debian, в GRUB и gdm дает очень сильную задержку (пока эти обои подгрузятся), так что можно его и не ставить...
Все мы где-то, когда-то и в чем-то были новичками.

vavun

Открыть содержимое (спойлер)
Цитата: Malaheenee от 12 января 2012, 05:51:10
Пробуйте, вот вам в помощь (что мы используем):
Открыть содержимое (спойлер)
   aptitude install bash-completion htop xfonts-base xfonts-100dpi xfonts-75dpi xfonts-scalable xserver-common xserver-xorg-video-fbdev xserver-xorg-video-vesa xserver-xorg-input-evdev xauth screen bzip2 p7zip-full zip unzip unrar ntfs-3g ntfsprogs dosfstools mtools alsa-base alsa-utils dbus policykit-1 consolekit lsb-release locate notification-daemon gnome-settings-daemon gnome-keyring gnome-screensaver gnome-screenshot gnome-system-monitor policykit-1-gnome xdg-user-dirs xdg-user-dirs-gtk gvfs gvfs-backends gvfs-fuse gnome-themes gnome-backgrounds gnome-icon-theme dmz-cursor-theme gnome-search-tool ttf-dejavu-extra ttf-dejavu-core ttf-freefont ttf-liberation eog evince totem-mozilla gnome-media freedesktop-sound-theme gucharmap gcalctool hunspell-en-us myspell-ru gnome-theme-gilouche gnome-brave-icon-theme
   aptitude install -R mc samba winbind smbfs smbclient samba-common-bin krb5-user ntp openssh-server cups-client xinit acpi-support upower udisks nautilus metacity gnome-power-manager gnome-menus gnome-session gnome-panel gdm3 gnome-terminal gnome-applets iceweasel iceweasel-l10n-ru icedove icedove-l10n-ru gedit file-roller totem gnome-user-guide
   aptitude install libreoffice-gnome libreoffice-l10n-ru libreoffice-help-ru
   aptitude install -R libreoffice
[свернуть]
Это необходимый минимум для нас. Всяческие кодеки и прочее - по необходимости для каждой машины отдельно (см. подпись).

Еще по теме: desktop-base, добавляющий православные обои и пр. от Debian, в GRUB и gdm дает очень сильную задержку (пока эти обои подгрузятся), так что можно его и не ставить...
Первый блин комом, как говориться  :D, скажите, а вы устанавливаете "базовые системные утилиты" и стоит ли мне ставить галочку "для ноутбука" или же лучше вручную ?
[свернуть]

Do you know why we call this beta ? Because it's betta than nothing.©
Have problems with windows, reboot. Have problems with linux, be root.©

Malaheenee

Открыть содержимое (спойлер)
vavun, устанавливаем базовые утилиты. Лэптоп - как хотите, где-то в вики был список пакетов для этой задачи. Можно также просмотреть при помощи tasksel (та самая галочка):
tasksel --task-packages laptop
tasksel --task-desc laptop
tasksel --list-tasks
[свернуть]
Все мы где-то, когда-то и в чем-то были новичками.

Angel_ok

#13
Выставил везде 0.5
Не помогло, даже на пару секунд дольше.
Вернул все обратно.
Видимо дело не в слипах. А жаль.
Вы думаете, всё так просто? Да, всё просто. Но совсем не так...
                                                                                                          Альберт Эйнштейн

vavun

Цитата: Angel_ok от 13 января 2012, 21:09:04
Выставил везде 0.5
Не помогло, даже на пару секунд дольше.
Вернул все обратно.
Видимо дело не в слипах. А жаль.
везде не надо, если из за слишком маленькой задержки что то не успело произойти (смотря что скрипт делает) то скрипт попробует снова это сделать, что скорости никак не прибавит.

Сообщение объединено: 13 января 2012, 22:58:01

Могу, конечно, и ошибаться ..

Do you know why we call this beta ? Because it's betta than nothing.©
Have problems with windows, reboot. Have problems with linux, be root.©