Calculate Forum

А сколько времени ТЫ ждешь загрузки системы...

#1

… а может хочешь ее ускорить?, а как определить что дольше загружается, а вот сделать это поможет интересная утилитка - bootchart

настройка ядра

прежде чем установить ее, я рекомендую пересобрать с двумя некоторыми изменениями, а именно, включить следующие ключи:

 # zcat /proc/config.gz |grep -E 'CONFIG_PRINTK_TIME|CONFIG_BSD_PROCESS_ACCT'
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_BSD_PROCESS_ACCT_V3=y
CONFIG_PRINTK_TIME=y

для этого выполняем:

cl-kernel -mo --no-clean 

и ищем расположение этих ключей нажав /, описание можно почитать там же

Теперь устанавливаем программу

для начала указываем пару USE ключей с которыми соберем пакет

echo "app-benchmarks/bootchart acct" >>/etc/portage/package.use/using
## этот ключ вместе с ключем CONFIG_BSD_PROCESS_ACCT_V3 в ядре позволяет, если верить документации,
## ... получить расширенную информацию о пакете
echo "app-benchmarks/bootchart java" >>/etc/portage/package.use/using
## этот ключ устанавливает java апликуху рисующую из лога - график.
## Графики рисовать совcем не обязательно,
## можно файлы лога сливать на единый сервак, и там уже рисовать картинки
emerge -avt app-benchmarks/bootchart

дело за малым - убедиться, что конфиг сгенерен корректно, файл /etc/bootchartd.conf должен содержать следующие строки:

PROCESS_ACCOUNTING="yes"
BOOTLOG_DEST=/var/log/bootchart.tgz
AUTO_RENDER="yes"
AUTO_RENDER_FORMAT="svg"
AUTO_RENDER_DIR="/var/log"

теперь прописываем bootchartd в параметры ядру.
Еслиб initrd не использовался, в параметры ядра надо было бы дописать init=/sbin/bootchartd, но поскольку в calculate используется initrd, дописываем real_init=/sbin/bootchartd

Благодаря этой утилите, я смог ускорить загрузку системы на ЦЕЛЫХ 2 секунды :-), обратив внимание на драйвер usb, и пересобрав его модулем.
Конечно совершенству нет предела, но я думаю и этих показателей мне пока хватает.
для примера прицепляю картинки

PS
Когдато, когда я еще использовал baselayout-1*, эта утилита имела больший смысл, ибо система грузилась порой по полторы минуты, сейчас же ее можно использовать, к примеру чтоб наглядно смотреть - что за чем грузится.

PPS я совсем забыл разьяснить смысл ключа CONFIG_PRINTK_TIME=y - этот ключ добавляет штамп времени в dmesg, что порой очень помогает при отладке. пример:

 # dmesg |tail -n3
[   19.092620] it87: in3 is VCC (+5V)
[   32.198632] tun: Universal TUN/TAP device driver, 1.6
[   32.198634] tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
Mastodon Mastodon