内核参数命令
内核参数命令
查看内核参数
cat /proc/cmdline
查看已加载的内核参数

修改内核参数
vi /etc/default/grub

cat /proc/sys/vm/nr_hugepages // 查看大页数量
内核core dump信息
ulimit是用来修改shell资源的包括其创建的进程
# 查看当前限制(单位为 blocks,0 表示禁用)
ulimit -c
ulimit -c 1 # 开启core dump记录
# 查看所有 ulimit 参数
ulimit -a
# 更详细的系统配置
cat /proc/sys/kernel/core_pattern
echo core > /proc/sys/kernel/core_pattern # 写入到core文件中
gdb test_exec core # 基于core调试
rsyslogd内核日志保存
以前内核信息的落盘是通过syslogd和klogd进程保存的,rsyslogd是更优的保存方式
默认的配置如下

内核信息输出级别控制
/proc/sys/kernel/printk 是 Linux 内核中用于控制内核消息输出级别的接口文件。它包含 4 个数字,分别对应不同的日志级别阈值,决定哪些内核消息(通过 printk() 输出)可以显示在控制台(终端)上,以及消息的默认严重程度。
cat /proc/sys/kernel/printk
默认输出为7417
四个数字分别表示(从左到右):
-
控制台日志级别(console_loglevel)
只有优先级高于此值(即数值更小)的消息才会被输出到控制台。
例如:值为 7(KERN_DEBUG)表示所有级别(0~7)的消息都显示;值为 4(KERN_WARNING)则只显示 0~3 级的紧急、警报、严重、错误消息,忽略更低的 4~7 级。 -
默认消息日志级别(default_message_loglevel)
当 printk() 没有显式指定日志级别时,使用该值作为默认级别。通常为 4(KERN_WARNING)。 -
最低控制台日志级别(minimum_console_loglevel)
控制台日志级别可以被用户空间程序修改(如通过 dmesg -n),但不能低于此值。用于防止用户完全屏蔽关键内核消息。通常为 1(KERN_ALERT)。 -
默认控制台日志级别(default_console_loglevel)
系统启动时的初始控制台日志级别(即第一个值的初始值)。通常在启动完成后保持与第一个值相同。
日志级别定义(数值越小越严重)
| 级别 | 宏名 | 描述 |
|---|---|---|
| 0 | KERN_EMERG | 系统不可用 |
| 1 | KERN_ALERT | 立即处理 |
| 2 | KERN_CRIT | 临界条件 |
| 3 | KERN_ERR | 错误条件 |
| 4 | KERN_WARNING | 警告条件 |
| 5 | KERN_NOTICE | 普通但重要 |
| 6 | KERN_INFO | 信息 |
| 7 | KERN_DEBUG | 调试消息 |

浙公网安备 33010602011771号