我们有一台Windows 7 Pro机器运行Apache/php/postgres在恒定负载下处理Ajax请求(每秒几次)。它还运行其他各种应用程序,这些应用程序执行大量磁盘写操作。
通常,Ajax响应在一秒钟内接收,但偶尔(在24小时内有一次)在15秒内不发送响应,然后所有响应都在结束时发送,也就是说,服务器似乎被阻塞了15秒。这会导致Ajax在客户端超时。
Apache和其他应用程序的日志支持这一点。Perfmon显示各种计数器下降到零/近零HD活动、CPU活动、网络活动等。httpd#1似乎是唯一有一些CPU活动的进程,尽管减少了。
我怎样才能确定吊死的原因?perfmon或其他工具能告诉我什么资源被阻塞了吗?(“”或“Process”对此有好处吗?)
NB Apache有充足的线程,postgres充足的连接,CPU和RAM没有最大限度,我们已经尝试了电源选项,驱动程序,证监会/scannow,chkdsk /r,memtest等。
谢谢你到目前为止的回复。更多信息:
硬件:
操作系统:
高级绩效选项:
(系统属性>高级>性能>设置>高级)
来自perfmon的截图:
http://i46.tinypic.com/fndyit.png (我没有足够的声誉把它嵌入到文章中)
服务器没有响应的时间是07:44:15 - 07:44:22 -而CPU下降到20%以下。(注意,这是来自另一台CPU较弱的服务器和较老的未经优化的软件--通常CPU不是这么高!)
我们找到了罪魁祸首-人类发展中心。只花了一个月!
我们是怎么到那里的
Process确认,在事件发生期间,磁盘阻塞了所有写操作。我们首先尝试更新RAID驱动程序。这改善了一些东西-- CPU等不会完全降到零,但是磁盘仍然阻塞。然后我们尝试禁用RAID --这没有效果。我们试图通过禁用各种日志记录来减少磁盘使用,这很有帮助。然后,我们尝试将HDD换成另一个(较低规格的),使用第一个映像,这个问题就完全消失了。
我们的硬盘怎么了?
我们使用的磁盘是“日立TravelStar 7k500 (增强可用性变体)”。该占空比似乎受到限制,以确保这种模式的“增强可用性”,这可能不适用于特别繁重的磁盘使用。根据资源监视器( Resource )的说法,我们的磁盘使用量约为每秒400 to。
发布于 2013-03-21 13:40:13
是的,Perfmon可以监控几乎所有东西的性能。问题是你需要知道去哪里找。缺省值是一个很好的起点,但是对于真正的问题,您需要投入一些工作来解决它。
假设本地存储,检查PhysicalDisk\Avg。PerfMon中的磁盘队列长度。如果它高于您的纺锤数,则您的存储系统是一个(或)瓶颈。也为我们描述一下你的硬件。
/edit给你。您的磁盘队列长度经常会超过"2“(所拥有的慢纺锤数),并且在您指定的时间段内处于该级别。CPU使用率随之下降,可能是因为它在等待IO,不能做任何事情,所以等待。
可能的改进:
发布于 2013-03-21 13:31:31
这听起来真的像是存储问题。您用什么样的存储库来存储分页文件?
否则,我所知道的诊断这类问题的最好工具是sysinternals (MS now)中的普鲁蒙。它也具有执行长会话的能力,但当您遇到问题时,您必须有一种方法来确定确切的时间框架,特别是当您要进行完整的系统监视器时。如果这不是一个页面文件问题,那么它很可能会让你找到罪魁祸首。
https://serverfault.com/questions/489992
复制相似问题