我们的网络服务器出现问题,越来越多的 Apache 进程卡住等待文件锁定(由 PHPflock() 引起)以某种方式解决,但从未解决。最终站点变得越来越慢,最后完全停止,直到 Apache 重新启动。
我正在研究某种错误代码背后的理论,也许是在我们自己开发的磁盘缓存机制中。但我无法追踪它。(我们在 Ubuntu 上运行。)
我的问题是,我怎样才能知道它卡在了哪个文件或哪些文件上?如果我能看到挂断在哪里,我就可以更容易地找出错误代码在哪里。当我执行此命令时:
ps -o pid,tt,user,fname,wchan -C apache2
我明白了:
730 ? www-data apache2 flock_lock_file_wait
3085 ? www-data apache2 flock_lock_file_wait
5393 ? www-data apache2 flock_lock_file_wait
5397 ? www-data apache2 flock_lock_file_wait
11181 ? www-data apache2 flock_lock_file_wait
30280 ? www-data apache2 flock_lock_file_wait
我有什么办法可以从这里查看 Apache 锁定/等待的确切文件吗?