修改core文件默认存储路径
分类:
在Linux系统中,程序异常退出时,可以通过core文件来分析它异常的详细原因。
缺省情况下,Linux在程序异常时不产生core文件,要想让程序异常退出时产生core文件,需要使用ulimit命令更改设置:
ulimit -c unlimited
程序再崩溃后,一般在当前目录生成一个core.pid的文件,可用于DEBUG。
现在很多应用运行时内存占用多达几十GB,生成core文件会很慢,也占用大量硬盘空间。
假设一般机械硬盘写入速度为100MB, 一个进程占用20GB内存,那么core文件写入时间就是200秒,
可以通过如下命令修改core文件默认存储路径:
echo "/dev/shm/core.%e.%p" > /proc/sys/kernel/core_pattern
程序再崩溃后,会将core文件存储到/dev/shm下,这是虚拟的文件系统,实际占用系统内存空间,而非磁盘空间,写入速度也比磁盘快很多。
当然,此方式虽然提高了存储速度,也有较大风险,就是一旦/dev/shm/core文件太多,会导致物理内存不足,实际应用需注意!
具体通配符含义:
%% 单个%字符
%p 所dump进程的进程ID
%u 所dump进程的实际用户ID
%g 所dump进程的实际组ID
%s 导致本次core dump的信号
%t core dump的时间 (由1970年1月1日计起的秒数)
%h 主机名
%e 程序文件名
查看评论
暂无评论