起因是有个进程在某点开始跑,没跑完就gg了,查日志打印了killed的关键词
查了一番才知道,原来在机器各方面资源过高的情况下,系统会killed掉一些占用资源过高的进程,通过下面命令可以查看系统killed掉的日志
dmesg | egrep -i -B100 'killed process'
接下来好好分析下这个进程如果能减少占用资源,优化下脚本过程
另外了解下dmesg命令的用法及应用场景
dmesg 是一个在 Unix 和类 Unix 操作系统(如 Linux)中常用的命令,用于显示或控制内核环缓冲区(kernel ring buffer)的内容。内核环缓冲区存储了系统启动和运行过程中内核产生的消息,包括硬件检测、驱动加载、系统错误等信息。
用法
dmesg 命令的基本用法如下:
dmesg
这个命令会输出内核环缓冲区中的所有消息。为了方便阅读,可以使用以下选项:
-H或--human:以人类可读的格式显示消息。-T或--ctime:显示带有时间戳的消息。-x或--decode:解码消息中的符号。-k或--kernel:仅显示内核消息。-l或--level:按级别过滤消息(如emerg,alert,crit,err,warn,notice,info,debug)。-c或--clear:清除内核环缓冲区中的消息。-r或--raw:显示原始消息(未解码)。-S或--size:设置内核环缓冲区的大小。
例如,显示带有时间戳的消息并过滤出错误级别的消息:
dmesg -T -l err
应用场景
dmesg 命令在以下场景中非常有用:
-
系统启动问题排查:当系统无法正常启动时,可以使用
dmesg查看启动过程中的内核消息,帮助定位问题。 -
硬件检测和驱动加载:在系统启动或插入新硬件时,
dmesg可以显示硬件检测和驱动加载的信息,帮助确认硬件是否被正确识别。 -
系统错误和警告:当系统出现错误或警告时,
dmesg可以显示相关的内核消息,帮助诊断问题。 -
性能监控:通过查看
dmesg输出的消息,可以了解系统的性能状况,如内存使用、磁盘 I/O 等。 -
调试和开发:开发人员可以使用
dmesg查看内核模块或驱动程序的调试信息,帮助调试和开发工作。 -
安全审计:
dmesg可以记录系统中的一些关键事件,如内核模块加载、系统调用等,有助于安全审计和入侵检测。
示例
以下是一些常见的 dmesg 命令示例:
-
显示所有内核消息:
dmesg -
显示带有时间戳的内核消息:
dmesg -T -
仅显示错误级别的消息:
dmesg -l err -
清除内核环缓冲区中的消息:
dmesg -c
通过这些用法和应用场景,dmesg 命令可以帮助用户和系统管理员更好地了解和维护系统的运行状态。