![如何找出Linux内核环形缓冲区的大小?](https://linux22.com/image/101546/%E5%A6%82%E4%BD%95%E6%89%BE%E5%87%BALinux%E5%86%85%E6%A0%B8%E7%8E%AF%E5%BD%A2%E7%BC%93%E5%86%B2%E5%8C%BA%E7%9A%84%E5%A4%A7%E5%B0%8F%EF%BC%9F.png)
对内核环形缓冲区的大小、它可以容纳多少信息以及什么数据类型非常感兴趣?
答案1
关于大小,它记录在内核的配置文件中。例如,在此处的 Amazon EC2 上,它是 256基布。
# grep CONFIG_LOG_BUF_SHIFT /boot/config-`uname -r`
CONFIG_LOG_BUF_SHIFT=18
# perl -e 'printf "%d KiB\n",(1<<18)/1024'
256 KiB
#
#define __LOG_BUF_LEN (1 << CONFIG_LOG_BUF_SHIFT)
更多信息请参见/kernel/trace/ring_buffer.c
请注意,如果您传递了内核启动参数“log_buf_len=N”(使用检查cat /proc/cmdline
),那么覆盖配置文件中的值。