CoreDump开启和Swoole Tracker 3.0配置


  CoreDump又叫核心转储,是一个程序运行时的环境一个集合包,包含崩溃时的堆栈信息,是一个二进制文件,无法使用记事本打开,一般会在指定目录下生成一个core文件。core文件仅仅是一个内存映象,主要用来调试。

一、CoreDump文件的生成和大小限制
  linux系统more默认关闭coredump文件的生成,因为需要占用一部分系统开销。
  检查系统core dump功能是否开启,0为关闭

[root@vsftpd ~]# ulimit -c
0

二、查看详细显示信息

[root@vsftpd ~]# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 7200
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 7200
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

三、临时开启CoreDump功能(重启或者重新登录会失效)

[root@vsftpd ~]# ulimit -c unlimited  #生成文件大小不受限制
[root@vsftpd ~]# ulimit -c
unlimited
[root@vsftpd ~]# ulimit -c 1024   #限制生成coredump文件大小为1024K
[root@vsftpd ~]# ulimit -c
1024

四、永久开启CoreDump功能,需要修改配置文件/etc/security/limits.conf

[root@vsftpd ~]# more  /etc/security/limits.conf
*               soft    core             unlimited 

五、指定CoreDump文件的名称格式
  默认情况下系统生成的CoreDump文件不带其他拓展名,全部命名为core。此时新生成文件会覆盖掉旧的core文件;
  CoreDump文件的参数说明

%% 单个%字符
%p dump进程的进程ID
%u dump进程的用户ID
%g dump进程的组ID
%s 导致core dump的信号
%t core dump 的时间
%h 主机名
%e 程序文件名

  使core文件名称是否带有pid,配置文件/proc/sys/kernel/core_uses_pid的内容为1,添加pid,0为不添加pid;

[root@vsftpd ~]# more /proc/sys/kernel/core_uses_pid 
1

  定义core文件的名称格式为core-%e-%p-%t,配置文件默认文件名为core

[root@vsftpd ~]# more /proc/sys/kernel/core_pattern 
core
[root@vsftpd ~]# echo 'core-%e-%p-%t' > /proc/sys/kernel/core_pattern
[root@vsftpd ~]# more /proc/sys/kernel/core_pattern 
core-%e-%p-%t

  生成路径:系统默认的core文件生成路径是/var/logs,但/var/logs目录并非系统自带的,系统初始安装默认自带的是/var/log,最终导致该系统出现CoreDump后并没能生成core文件。指定CoreDump文件存在/dump/目录下,格式自定义:

[root@vsftpd ~]# mkdir /dump/
[root@vsftpd ~]# echo '/dump/core-%e-%p-%t' > /proc/sys/kernel/core_pattern
[root@vsftpd ~]# more /proc/sys/kernel/core_pattern 
/dump/core-%e-%p-%t

六、临时关闭CoreDump文件的生成功能

[root@vsftpd ~]# ulimit -c 0
[root@vsftpd ~]# ulimit -c
0

七、永久关闭CoreDump功能,需要修改配置文件/etc/security/limits.conf

[root@vsftpd ~]# more  /etc/security/limits.conf
# *               soft    core             0

八、CoreDump未开启导致的问题(Swoole Tracker 3.0)

 在php.ini配置swoole_tracker以下信息后

swoole框架启动报错如下:

解决方法:按以上方法启动CoreDump

原文地址:https://www.cnblogs.com/zgxblog/p/13965409.html