Операционная система ЗОСРВ «Нейтрино» > Руководство пользователя > Настройка и управление > Загрузочные образы > Профилирование процедуры запуска системы (boot sequence)



Профилирование процедуры запуска системы (boot sequence)

Способы профилирования систем с загрузочными образами различных видов

Профилирование образов с diskboot
Профилирование образов, не использующих diskboot
Анализ результатов профилирования с помощью утилит bootlog и sloginfo
Автоматизация сценария построения загрузки системы (ключ -b)

Профилирование образов с diskboot

В образах, основанных на diskboot профилирование с использованием системного журанала включено по умолчанию. Функция профилирования в diskboot реализована с использованием библиотеки bprofiler. Если установить опцию -T, то вывод будет в системный журнал и на консоль во время загрузки системы. При установке опции -t и выбора режима 2, будет выводиться время старта процессов и опции с которыми они запускаются, в режиме 1 имя и время старта процесса, а режим 0 отключает профилирование. Если не использовать опцию -t, то профилирование будет включено в режиме 1 (включение профилирования), так как данный режим используется по умолчанию.

Примеры:

Запуск diskboot с включенным профилированием, вывод в системный журнал и на консоль во время загрузки системы.

diskboot -t2 -T

Запуск diskboot с отключением опции профилирования.

diskboot -t0

Профилирование образов, не использующих diskboot

Для профилирования образов, не использующих diskboot используется утилита btime, т.к. в них нет реализации библиотеки bprofiler. Системные скрипты такие как /etc/system/sysinit, /etc/rc.d/rc.sysinit и другие используют переменные окружения PROFILE_BOOT и PROFILE_BOOT_PRINT для профилирования с использованием утилиты btime. Эти переменные окружения выставляет diskboot.

Если планируется использовать системные скрипты в образах, не использующих diskboot, для включения профилирования для них, можно определить переменные PROFILE_BOOT и PROFILE_BOOT_PRINT в их начале.

Пример:

export PROFILE_BOOT=2 export PROFILE_BOOT_PRINT=1

Если необходимо профилировать пользовательские скрипты можно также использовать утилиту btime. Выводить сообщение с временной меткой в stdout и в системный журнал.

Пример:

#!/bin/sh btime -p -s "Starting slogger -s256" slogger -s256

Анализ результатов профилирования с помощью утилит bootlog и sloginfo

Утилита bootlog используется для вывода сведений о загрузке системы. Далее приводится пример вывода утилиты bootlog с включенным профилированием во втором режиме.

[0.004 с.] Starting slogger -s256 [0.004 с.] Starting seedres [0.005 с.] Starting pci-bios [0.107 с.] Starting /proc/boot/io-usb -duhci -dohci -dehci -dxhci [2.318 с.] Starting /proc/boot/devc-con-hid [8.554 с.] Starting devb-ahci blk auto=partition dos exe=all qnx6 sync=optional cam quiet ...

Например, если проанализировать представленный вывод, то видно, что разница между запуском devc-con-hid и devb-ahci сильно отличается от остальных. Это логично, поскольку в этот промежуток появляется возможность для diskboot задать дополнительные параметры загрузки и включается ожидание для возможности нажатия клавиши пробел.

Как альтернативу утилиты bootlog, можно использовать системный журнал, где также есть временные метки старта процессов при загрузке, но они идут вместе с другими сообщениями, которые попадают в системный журнал.

May 29 13:46:18 5 1 1 Starting slogger -s256 May 29 13:46:18 5 1 1 Starting seedres May 29 13:46:18 5 1 1 Starting pci-bios May 29 13:46:18 5 1 1 Starting /proc/boot/io-usb -duhci -dohci -dehci -dxhci May 29 13:46:20 5 1 1 Starting /proc/boot/devc-con-hid May 29 13:46:26 5 1 1 Starting devb-ahci blk auto=partition dos exe=all qnx6 sync=optional cam quiet ...

Автоматизация сценария построения загрузки системы (ключ -b)

У утилиты bootlog имеется ключ -b, с помощью которого можно получить примерный сценарий загрузки системы для файла построения. Это позволяет формировать загрузочные образы без использования diskboot, что повысит скорость загрузки системы.

slogger -s256 pci-bios -dbios-v2 mptable io-usb -duhci -dohci -dehci -dxhci io-hid -d ps2ser kbd:kbddev:vmmouse:mousedev -d usb /dev/io-usb/io-usb devc-con-hid -n4 devb-eide blk auto=partition dos exe=all qnx6 sync=optional cam quiet qnx6 zero,dzero qnx4 zero,dzero pipe mount -tqnx6 /dev/hd0t179 / /bin/sh /etc/system/sysinit

Тематические ссылки:

bootlog, btime, diskboot, enum-devices, bprofiler

Файл построения образа ФС




Предыдущий раздел: Загрузочные образы