🐧 Как добавить метки времени в логи ядра dmesg в CentOS / RHEL

by itisgood

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

Одним из факторов, способствующих возникновению этой трудности, является вывод следующей команды:

# dmesg
NET: Registered protocol family 10
ip6_tables: (C) 2000-2006 Netfilter Core Team
nf_conntrack version 0.5.0 (16384 buckets, 65536 max)
ip_tables: (C) 2000-2006 Netfilter Core Team
type=1305 audit(1445931490.439:4): audit_pid=1333 old=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:auditd_t:s0 res=1
SELinux: initialized (dev autofs, type autofs), uses genfs_contexts
SELinux: initialized (dev autofs, type autofs), uses genfs_contexts

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

Фактически доступно относительное время каждой записи, но по умолчанию оно не отображается.

Отредактируйте /boot/grub/grub.conf и добавьте предложение printk.time в командную строку ядра:

[...]
root (hd0,0)
kernel /vmlinuz-3.8.13-68.3.4.el6uek.x86_64 ro root=/dev/mapper/vg_ol67-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=vg_ol67/lv_swap rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=vg_ol67/lv_root KEYBOARDTYPE=pc KEYTABLE=be-latin1 rd_NO_DM rhgb quiet printk.time
[...]

Этот параметр ядра включает функцию времени модуля ядра printk, который затем извлекает как запись буфера кольца сообщений, так и метку времени для этого сообщения.

Повторение нашего предыдущего примера загрузки показывает записи логов которым предшествует относительная временная метка.

[...]
[ 12.376443] NET: Registered protocol family 10
[ 12.381220] ip6_tables: (C) 2000-2006 Netfilter Core Team
[ 12.476857] nf_conntrack version 0.5.0 (16384 buckets, 65536 max)
[ 12.574589] ip_tables: (C) 2000-2006 Netfilter Core Team
[ 16.414883] type=1305 audit(1445931490.439:4): audit_pid=1333 old=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:auditd_t:s0 res=1
[ 20.797095] SELinux: initialized (dev autofs, type autofs), uses genfs_contexts
[ 20.950517] SELinux: initialized (dev autofs, type autofs), uses genfs_contexts
[...]

Отметка времени выражается как количество секунд с момента загрузки системы.

Другие формы меток времени, такие как время дня, недоступны, поскольку сложные манипуляции с датой, такие как NTP, еще не инициализированы на этой ранней стадии загрузки.

 

You may also like

Leave a Comment