php子进程频繁报 exited on signal 11 (SIGSEGV - core dumped) ?
最近站点接口频繁502
排查
查看php日志发现很多warning,(child 24801 exited on signal 11 (SIGSEGV - core dumped))
[06-Jan-2021 15:41:19] WARNING: [pool www] child 24801 exited on signal 11 (SIGSEGV - core dumped) after 19140.416792 seconds from start
就这些东东搞的,查资料说这个和内存有关,有很多,
如图
排查1
想定位问题,但是并没有生成core文件,于是ssh执行 ulimit -c
发现是0,得 没开呗,没关系,打开,执行 ulimit -c unlimited
,然后 重启了 php-fpm,等待记录,当那个signal 11
再次出现的时候,core文件还是没有生成。
排查2
上面那个命令仅对当前终端有效,暴力点,来个永久的设置,于是,执行 vim /etc/profile
在尾部加上了 ulimit -c 1073741824
,继续执行 source /etc/profile
这次貌似设置有效,我关闭了终端,重连,执行 ulimit -a
,结果是好的,
core file size (blocks, -c) 1073741824
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 31760
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 65535
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) 31760
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
重启 php-fpm, 等待 signal 11 然而又打脸, core还是没有生成,
问题 怎么让php-fpm 生成 core文件
我现在的一些配置及日志
/proc/sys/kernel/core_pattern
内容
|/usr/share/apport/apport %p %s %c %d %P %E
/usr/share/apport/apport
内容太长了 我放在这里
貌似只有 /var/log/apport.log
里有点内容,如下
ERROR: apport (pid 12454) Wed Jan 6 10:02:55 2021: called for pid 25484, signal 11, core limit 0, dump mode 2
ERROR: apport (pid 12454) Wed Jan 6 10:02:55 2021: not creating core for pid with dump mode of 2
ERROR: apport (pid 12454) Wed Jan 6 10:02:55 2021: executable: /www/server/php/72/sbin/php-fpm (command line "php-fpm:\ pool\ www")
ERROR: apport (pid 12454) Wed Jan 6 10:02:55 2021: executable does not belong to a package, ignoring
ERROR: apport (pid 13003) Wed Jan 6 10:03:08 2021: called for pid 25489, signal 11, core limit 0, dump mode 2
ERROR: apport (pid 13003) Wed Jan 6 10:03:08 2021: not creating core for pid with dump mode of 2
ERROR: apport (pid 13003) Wed Jan 6 10:03:08 2021: executable: /www/server/php/72/sbin/php-fpm (command line "php-fpm:\ pool\ www")
ERROR: apport (pid 13003) Wed Jan 6 10:03:08 2021: executable does not belong to a package, ignoring
ERROR: apport (pid 13007) Wed Jan 6 10:03:24 2021: called for pid 25498, signal 11, core limit 0, dump mode 2
ERROR: apport (pid 13007) Wed Jan 6 10:03:24 2021: not creating core for pid with dump mode of 2
ERROR: apport (pid 13007) Wed Jan 6 10:03:24 2021: executable: /www/server/php/72/sbin/php-fpm (command line "php-fpm:\ pool\ www")
ERROR: apport (pid 13007) Wed Jan 6 10:03:24 2021: executable does not belong to a package, ignoring
看上面的日志内容 貌似core limit并没有设置成功,线上机器,不允许重启,没办法了,没有生成 core 文件。
环境 ubuntu16.04,laravel5.8,php7.2,使用的宝塔面板7.2
求助
现在可以肯定的是 php-fpm子进程被干掉导致的502,急需定位502的具体原因,有碰到的朋友么,给点建议,非常感谢!
推荐文章: