• 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

  • 相关阅读:
    TCP建立连接和断开连接
    城市三级联动Springmvc+mysql
    JS页面间数据传递的各种方法
    点击Button弹出登陆注册框
    一个多表联合查询引发的思考
    Linq扩展方法获取单个元素
    Visual Studio 常见问题
    格式化asp.net mvc视图页面
    2014上半年度挑战回顾
    2014年上半度年度挑战
  • 原文地址:https://www.cnblogs.com/zgxblog/p/13965409.html
Copyright © 2020-2023  润新知