放大Linux内核日志缓冲区超过2M

时间:2014-12-24 17:10:34

标签: logging linux-kernel kernel linux-device-driver printk

我正在收集某种Linux内核活动。我在内核源代码中放置了多个printk语句,并希望在常规内核活动期间监视这些语句。不幸的是,我已经意识到内核日志缓冲区大小(CONFIG_LOG_BUF_SHIFT)不能超过2 ^ 21,这基本上等于2M条目。

还有其他方法可以录制超过2M的内核消息吗?

1 个答案:

答案 0 :(得分:10)

您可以在log_buf_len=4M中将内核日志缓冲区设置为/boot/grub/grub.conf。这应该将日志缓冲区大小增加到4 MiB。请注意,您也可以在启动过程中修改grub,并在log_buf_len=4M开头的行尾添加kernel ...

CONFIG_LOG_BUF_SHIFT显示内核日志缓冲区的默认大小而不是最大大小,您可以将其设置为更大的值,但需要重新编译内核。

ex:
2 ^ 19 = 512 KiB
2 ^ 20 = 1 MiB
2 ^ 21 = 2 MiB
2 ^ 22 = 4 MiB

你使用的是linux的哪个版本或内核版本,这在SuSE和RHEL上运行良好。