Периодически я читаю новости =) о том, как быстро загружается компьютер и соответственно смотрю на собственный ноутбук. Я уже не помню какое ПО и в каком объеме у меня стояло пол года назад, остались результаты измерения от bootchart.
По замерам в ноябре прошлого года у меня получалось время загрузки 43 секунды. Сегодня я произвел новый замер и был приятно удивлен 36 секундами =).
Первое, что бросилось в глаза, это время загрузки ядра сократилось с 15 до 7 секунд. Неплохая прибавка =). Думаю, что это следствие его постепенной оптимизации - убирание лишнего, переход на более новые ядра.
Разобрал меня интерес, что делает ядро целых 7 секунд? Его размер копеечный, по сравнению со скоростью передачи данных, процессор достаточно мощный =). Железо заранее известно. В итоге включил я в ядре опцию фиксации времени событий:
Kernel hacking --->
[*] Show timing information on printks
Перезагрузился и анализируя вывод dmesg увидел очень странную вещь:
[ 2.764571] Synaptics Touchpad, model: 1, fw: 6.2, id: 0x1a0b1, caps: 0xa04793/0x302000
[ 2.764699] serio: Synaptics pass-through port at isa0060/serio4/input0
[ 2.802530] input: SynPS/2 Synaptics TouchPad as /class/input/input5
[ 6.910911] input: PS/2 Generic Mouse as /class/input/input6
Получается, что определение моего touchpad-а занимает у ядра практически 4 с лишним секунды!
За работу touchpad-а на ноутбуке в ядре отвечает CONFIG_MOUSE_PS2. Лишаться touchpad-а я не захотел =), по этому попробовал пересобрать поддержку ps2 мышей модулем. И наступило чудо! Скорость загрузки ядра сократилась до 3 секунд, а общее время загрузки с 36 до 31 секунды.
Я в шоке! Всегда считал, что наиболее предпочтительным все устройства собирать в ядре и не заморачиваться модулями. В общем я был беспрецедентно посрамлен =).
Дальнейший анализ результатов bootchart дал еще несколько идей по сокращению времени загрузки. Основной тормоз - fsck.reiserfs. Для проверки, я отключил fsck.reiserfs (создал файл /fastboot) и получил время загрузки 27 секунд! Достаточно.
Главное, что я понял из этих экспериментов - идеала не достичь ни когда.
З.Ы. Для справки - hwclock при старте системы занимает 2 секунды =))).
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий