有用户使用《lnmp一键安装包》在CentOS6.6 64bit上安装php(php5.4、Opcache、ZendGuardLoader)、hhvm,用vhost.sh添加虚拟主机选择php,使用某主题(主题加密,需要使用ZendGuardLoader),启用改主题直接报502错误。束手无策,于是找我来排错,如下:
通过查看php日志/usr/local/php/var/log/php-fpm.log,有如下警告信息:
[16-Mar-2015 16:03:09] WARNING: [pool www] child 9453 exited on signal 11 (SIGSEGV) after 9.601040 seconds from start日志中的信息表明,进程号为9453的进程由于收到SIGSEGV信号而退出了。收到这个信号的时候,程序是可以生成core文件的。不过通过日志我们可以知道进程9453退出时没有生成core文件。因为在php-fpm的日志中,如果退出时生成了core文件,日志中会有“SIGSEGV – core dumped”字样。如:
[16-Mar-2015 16:04:29] WARNING: [pool www] child 9581 exited on signal 11 (SIGSEGV - core dumped) after 15.921916 seconds from startcore dump文件对于诊断Linux中程序的问题非常有用。当程序异常退出的时候,可能会生成core文件。如,程序写一个不属于他的内存,操作系统出于保护,会发信号给程序,程序可能会因此而退出,退出的时候可能会生成core文件。我们可以通过分析core文件,找出程序中那里有内存问题。这篇文章主要是阐述生成core文件需要做的一些设置。
如何生成core文件
默认Linux操作系统是不允许生成core文件的。如下:
[root@linuxeye ~]# 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) 5762 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) 10240 cpu time (seconds, -t) unlimited max user processes (-u) 65535 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited可以通过如下命令解除限制:
[root@linuxeye ~]# ulimit -c unlimited [root@linuxeye ~]# ulimit -a core file size (blocks, -c) unlimited data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 5762 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) 10240 cpu time (seconds, -t) unlimited max user processes (-u) 65535 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited

闽公网安备 35020602001684号