环境:
PHP 5.5.38
nginx version: nginx/1.10.2
配置
[php-fpm]
pm = static
pm.max_children = 50
pm.max_requests = 1024
...
;request_terminate_timeout = 0
[nginx.conf]
worker_processes auto;
events {
    worker_connections  1024;
}
http{
    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;
}
间歇性的出现这个问题, 也不重复, 请问大家碰到这种情况应如何排查呢?谢谢.
|      1BOYPT      2017-04-26 17:17:08 +08:00  1 一般跟配置关系不大,是 php 进程的段错误;用 gdb 打开 coredump ,看具体涉及哪一块的错误(一般是外部模块),更新一下代码之类的。 也有人遇到是日志文件太大导致 php 的 SIGSEGV | 
|  |      2justyy      2017-04-26 17:23:46 +08:00  1 我的配置,仅供参考, pm = ondemand pm.max_children = 5000 pm.process_idle_timeout = 10s; pm.max_requests = 500 | 
|  |      3momocraft      2017-04-26 17:29:43 +08:00  1 可以试试控制条件做压力测试: 不同 php build ,不同 dist ,不同机器 等 | 
|      4eecjimmy OP | 
|  |      5kungfuchicken      2017-04-26 17:52:43 +08:00 把服务器 coredump 打开,然后 gdb 跟下 dump 文件看看 | 
|      6eecjimmy OP @kungfuchicken 嗯, 要重新编译个, 里面还不少扩展. | 
|      7eecjimmy OP @kungfuchicken 就怕到时候重新编译了, 又复现不到了, 就尴尬了. | 
|  |      8kungfuchicken      2017-04-26 17:58:31 +08:00 @eecjimmy 在 --disable-debug 的条件下, coredump 文件一样会生成, gdb bt 一下能看到最后的栈追踪,基本上就能确定是哪的问题了 | 
|      9eecjimmy OP @kungfuchicken 哦哦,我试了下没生成,晚上回去再试试 | 
|  |      10ericFork      2017-04-26 22:52:43 +08:00 你用 APCu 了没?如果用了的话禁用试试 | 
|      11eecjimmy OP @kungfuchicken 但是我看文档里面有这样的说法 ```To get a backtrace with correct information you must have PHP configured with --enable-debug!``` | 
|      12eecjimmy OP | 
|  |      14kungfuchicken      2017-04-27 17:08:30 +08:00 @eecjimmy 说了,coredump 文件的生成,是 Linux 系统的配置项目,跟 PHP 的编译参数无关 | 
|      15eecjimmy OP @kungfuchicken  gdb 的相关信息如下, 但是真的看不懂呢 gist: https://gist.github.com/eecjimmy/66f79ca747bac2fa63ddf5fca0f7ef62 | 
|  |      16kungfuchicken      2017-05-05 19:39:40 +08:00 @eecjimmy 内核 bug, 试试升级到 php5.6 吧 | 
|      17eecjimmy OP @kungfuchicken 开发环境就是这个版本,项目马上上线,不敢乱调环境呀,尴尬了! |