Speed it up!


speedometer

Поставил bootchart, чтобы посмотреть как быстро загружается система. В итоге все закончилось как обычно: просидел весь вечер, копаясь во внутренностях оси… @_@

Итак,

01: Default

1. Default:  0:23
Неплохой результат, если не учитывать, что система свежая и в ней не установлено ничего ненужного. В убунте сколько было — не помню, старых бутчартов не сохранилось. По-моему, где-то в районе 25-28 сек. на относительно чистой системе. Хотя со временем скорость, конечно, упала — на глаз, примерно секунд до 40-45. Тут я вдруг вспомнил, что по дефолту в дебиане всевозможные системы оптимизации не установлены, и что их можно бы и поставить. Предполагаю, что ненужные сервисы уже отключены (либо их вообще нет), а всякие мелкие гайки (типа таймаута в грабе) закручены. Руководствовался я вот этим мануалом:
http://forums.debian.net/viewtopic.php?t=31275

02: Readahead

2. Readahead: 0:21 (-2s)
В ходе загрузки процессор используется не слишком-то активно, а диск сильно загружен (см. диаграмму 1), что не есть хорошо. Readahead, как можно догадаться из названия, заранее загружает необходимые для загрузки файлы в память, и потом они берутся по мере надобности оттуда, а не с винчестера, что ускоряет загрузку. Вы можете увидеть эффект на диаграмме 2: сперва идет кеширование файлов (сильная загрузка винчестера), затем существенно возрастает нагрузка на процессор. В мануале говорится, что это помогает не всем, и иногда это может даже замедлить загрузку на пару секунд, а может и вообще не дать никакого результата. Мне же это дало 2 секунды.

03: Parallel starting

3. Parallel starting: 0:17 (-4s)
Вместо последовательной загрузки сервисов можно включить параллельную, что позволит некоторым сервисам стартовать не дожидаясь друг друга. Говорят, это хорошо для двухъядерных процессоров, но и с одноядерным это явно пойдет на пользу. Обратите внимание, что сперва нужно использовать программу insserv: sudo update-bootsystem-insserv. Это переупорядочит скрипты, чтобы они могли стартовать параллельно, иначе толку не будет. Поскольку речь идет об init скриптах, тут нужно быть аккуратным, иначе могут быть проблемы. CONCURRENCY=shell сработал, но вывод вообщений при загрузке весь сбился и перепутался, поэтому пришлось включить CONCURRENCY=startpar, который у меня работает на 1 секунду дольше, чем shell. Итого еще 4 секунды.

В итоге имеем ускорение в 6 секунд. Возможно, не так уж и много, но в сравнении с общей скоростью загрузки — очень существенно, все-таки 17 секунд — имхо, довольно быстро. Я не ожидал такого результата. Жаль, что этим процесс загрузки не ограничивается: еще долго стартует гном после логина. Но способа ускорить и его я, увы, не знаю.

Включение dash вместо bash ничего не изменило. Некоторые другие штуки тоже не дали результатов:

4. Hwclock
После применения insserv я заметил, что часы устанавливаются дважды. Оказалось, что это удивляет не меня одного, почему так — никто не знает. Говорят, что один из этих скриптов можно безболезненно выключить. В принципе, у меня включен ntp, так что я попробовал так и сделать: sudo insserv -r hwclockfirst.sh Загружаться скрипт перестал совсем, но прироста скорости это не дало, а часы отстали на пару минут (чего происходить не должно было). Поэтому вернул скрипт на место: sudo chkconfig —add hwclockfirst.sh

5. Readahead+gnome
Вот тут нашел ман про ускорение запуска гнома посредством того же readahead. При его запуске с иксами результат я на глаз особо не заметил, а при запуске еще с системой гном действительно стал запускаться быстрее, но при этом скорость загрузки самой системы упала до 29 секунд. Так что, пожалуй, это не то…

Помимо прочего, я включил prelink, но не стал использовать preload.

  • Trackback are closed
  • Комментарии (5)
  1. Вот как-то не понимаю я такого… Т. е. вроде и прикольно как бы, но смысла ИМХО мало — многие редко вырубают свои компы или юзают всякие хибернейты.

  2. А у меня шумит громко, я его каждый день выключаю. А хибернейт недолюбливаю — как-то он всегда плохо работал, я его в дебиане даже не пробовал.

    К тому же, интерес чисто академический тут тоже присутствует: если можно сделать лучше — сделай. Я читал, что на заре эпохи компьютеров в MIT тогдашние гики соревновались между собой: кто сумеет оптимизировать код программы настолько, что дальше уже будет некуда. Вот и тут то же самое ^_^
    Just for fun ^_~

  3. В том-то и дело, что реальной пользы от этого не так уж и много — тут больше именно интерес идёт типа «а сделаю-ко я ещё быстрее» =)

  4. Про InitNG забыли🙂

  5. В итоге все закончилось как обычно: просидел весь вечер, копаясь во внутренностях оси
    ——————😉 Как мне это знакомо )) Тоже как увлекусь чем-нить, так с головой =)

    С новым годом Вас😉

Обсуждение закрыто.
%d такие блоггеры, как: