logging - 将 Linux 内核日志缓冲区扩大到 2M 以上

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

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

有没有其他方法可以记录超过 2M 的内核消息?

最佳答案

您可以将内核日志缓冲区设置为 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 上运行良好。

关于logging - 将 Linux 内核日志缓冲区扩大到 2M 以上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27640173/

相关文章:

c - eBPF:理解验证器代码中的两个宏

c - 错误: implicit declaration of function 'rdtscl' [-Werror=implicit-function-declaration] (but no error when running on older kernel version)

c++ - 我怎样才能完全理解操作系统的工作原理?

android - 输出一个对象到 Logcat 控制台

java - Log4J 每 x 秒记录一次消息?

c - 如何接受来自标准输入的路径名以进行 open() 系统调用?

c - 为什么 extern 声明应该在 .c 文件之外(根据 linux 编码风格)

ruby-on-rails - 通过 Web 界面 rails 提供日志

java - 为 MongoDB Java 驱动程序配置日志记录

c - 来自 copy_to_user 的“错误地址”错误