apache php使用线程,调试生产服务器上的apache / php线程

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-22 15:18   11   0

以下说明以Linux为中心:

>识别故障/卡住的过程

在你的情况下,进程处于状态S,意思是来自man ps:

S可中断睡眠(等待事件完成)

所以是的,它可能正在等待一些网络或文件系统操作完成.

>使用strace跟踪系统调用和信号

通过运行以下命令将strace程序附加到挂起线程:

# strace -p

这将实时显示操作或更准确地显示程序运行的系统调用,例如,您可能会看到一个循环,其中open()返回错误,例如ENOENT意味着特定文件不存在.

你的ps输出表明进程没有消耗CPU(第3列),所以这里的问题可能与循环无关,而只是等待操作,如锁定文件,等待套接字或外部操作.

>杀死和coredumps

kill程序用于将特定信号发送到正在运行的程序,它远非与java相关,它可以用来发送信号3(SIGQUIT),它将关闭程序并生成核心文件.

只有在具有正确的ulimit权限的情况下才允许生成核心文件,请使用ulimit -c命令进行检查.如果它显示0,那么你应该修改它,例如,无限制:

ulimit -c unlimited

只有这样你才能重新启动应用程序并通过发送kill -3来激发coredump.

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP