Linux coredump学习笔记,coredump学习笔记


初学者笔记:
linux的程序在发生异常情况下,会导致进程down,多数服务器会设置生成core文件,本人在实际运营过程中发生过进程不断core,被自动监控拉起,过段时间有core的情况,进而导致磁盘被撑满,影响服务

这里对core稍作了解后

core文件的大小限制:

ulimit -c是可以改变core的文件大小,但遗憾的是他是针对当前终端有效,简单说当退出当前登录时,再次使用ulimit -c时又变成了默认值

彻底改变需要修改配置文件,不同的服务器指向的配置文件可能不能,这里先记录实际接触到的:

/etc/profile:

# if test "$is" != "ash" -a ! -r /etc/initscript; then
     ulimit -Sc 10255           # don't create core files
#     ulimit -Sd $(ulimit -Hd)
#     ulimit -Ss $(ulimit -Hs)
#     ulimit -Sm $(ulimit -Hm)
# fi

/etc/security/limits.conf:

前面的*代表所有用户,实际也可根据具体用户配置,如root等,

*         soft    core            10240
*         hard    core            102400
#*               hard    rss             10000
#@student        hard    nproc           20
#@faculty        soft    nproc           20
#@faculty        hard    nproc           50
#ftp             hard    nproc           0
#@student        -       maxlogins       4

修改该配置文件需注意,要使 limits.conf 文件配置生效,前提必须确保 pam_limits.so 文件被加入到启动文件中。查看 /etc/pam.d/login 文件中有:session required /lib/security/pam_limits.so 

limits.conf是 pam_limits.so的 配置文件,然后/etc/pam.d/下的应用程序调用pam_***.so模块。当用户访问服务器,程序将请求发送到PAM模块,PAM模块根据服务名称在/etc/pam.d目 录下选择一个对应的服务文件,然后根据服务文件的内容选择具体的PAM模块进行处理,上面soft,hard 和 -,其中soft 指的是当前系统生效的设置值。hard 表明系统中所能设定的最大值。soft 的限制不能比har 限制高。用 - 就表明同时设置了soft 和hard的值

另外core的存放路径:

root@huang:/data/coredump# cat /proc/sys/kernel/core_pattern
core
root@huang:/data/coredump# echo '/data/coredump/core_%e_%t' > /proc/sys/kernel/core_pattern 
root@huang:/data/coredump# cat /proc/sys/kernel/core_pattern
/data/coredump/core_%e_%t

  

相关内容

    暂无相关文章