我们在FreeBSD系统上运行Apache,它有多个Web应用程序(Wordpress,Magento,自定义PHP)。 随着stream量的增加,我们看到越来越多的状态为“lockf”的httpd进程(使用“top”)。 服务器负载增加,直到我们必须重新启动Apache。
据我所知,这个状态Apache等待文件locking。 但是,我们如何才能找出哪些文件被locking/造成瓶颈呢? 没有这些信息,似乎很难解决这个问题。
这是一个古老的问题,但我会尝试;)
这种情况听起来像“你有一个缓慢的驱动力” – 但这只是一种不知情的感觉。
要回答直接问题(查找使用的文件),请执行以下操作:检查是否安装which lsof ,如果未安装,请通过pkg(_install)安装(不知道您拥有哪个FreeBSD版本)。
然后通过top或者pssearch你的http进程,并使用lsof来查看哪些文件与lsof -p PROCNUMBER一起使用。这给出了这个进程使用的所有文件/目录/pipe道等的表格。
这现在可以检查。 看看man lsof ,这是非常长的,有很多权力。
不知道你发现的结果,试着减less甚至禁用日志logging,看看是否有帮助。 使用错误的日志logging设置和大量的stream量可能会杀死大型机器。 最后一点:如果你有一台运行这样的设备的好机器,在很多情况下,最大的问题就是驱动I / O。 双Xeon Superbig-CPU没有意义,如果你还有一个IDE驱动器;)
最后一个资源可能很有趣: http : //httpd.apache.org/docs/2.2/caching.html