我们一直在努力解决我们的服务器的问题大约一个星期。 只是在这几天才真正发现问题所在。
只需提供一些信息:我们使用第三方虚拟主机运行虚拟机。 我知道他们使用VMWare,但不知道具体的版本。 他们刚刚将我们的VMWare工具更新到了昨晚的最新版本。 服务器操作系统是Windows Server 2008 R2,并且应该具有最新的Windows更新。 我们使用这个作为Web服务器,所以它运行IIS 7.5,我们运行ColdFusion 9.0.1。 Coldfusion 9应该使用最新版本的JDK 6(我认为Java 7存在兼容性问题)。
我们所看到的是很短的时间,从30秒到2.5分钟的地方,服务器基本上处于“停顿”状态。 它并没有真正locking,但是CPU的使用率几乎降低到了0,并且没有处理web请求。
使用Windows性能监视器,我们发现当发生这种情况时,磁盘IO似乎完全丢失。 附件是从性能监视器中提取的graphics图像。
第一个图表显示何时发生。 请注意,磁盘空闲%(绿线)下降到0.我认为这意味着磁盘访问是满负荷。 CPU下降到接近0%,偶尔会出现尖峰。 紫色线是磁盘队列长度,我假设显示有多less磁盘IO操作挂起在系统上。 这通常是非常低的,大约是1或2,通常是0。当这种现象发生时,这会显着增加(如果磁盘访问有问题,这是有意义的)。
第二张图显示事情何时回来。 当CPU开始在Web请求队列中匆匆忙忙时,CPU被挂住了,而其他的东西却积压了,但是磁盘统计数据又回到了“正常”状态。
不是每一次,但是当这种情况发生,中断时间很长(几分钟),我们也看到一些警告logging在Windows系统事件日志中。 源是“LSI_SCSI”,事件ID是“129”,一般消息“Reset to device,\ Device \ RaidPort0,was issued。”
当第一次开始的时候,我们认为这是我们的代码,但看到这一切发生后,我们觉得这是OS或VM / VMWare方面的东西。 我不认为这是负载相关的,因为如果是我认为我们会看到高磁盘使用率和高CPU使用率。 事实上,CPU是低types的,导致我相信进程只是阻止等待IO请求返回。 我们正在与我们的托pipe服务提供商合作,我写这个来解决这个问题,但我想我会在这里尝试的想法。 提前感谢任何帮助!
第一张图 
第二张图 
您的提供商可能正在超负荷的主机上运行您的虚拟机。 如果别人的虚拟磁盘绑定了磁盘,你只会被困住,直到他们的VM释放。 没有什么可以做的,除了做很多噪音。
我知道这个比较老,我们在很久以前就修好了,但是在我的个人资料里看到了,并且想要发布答案。
事实certificate,我们的托pipe服务提供商不小心磨损了我们订购的升级。 他们提供两层磁盘,一个较慢,另一个性能更好。 我不知道技术差异是什么。
我们一直有更高性能的东西,但是当我们上次升级我们的磁盘空间时,技术意外地将我们降到了较低的层次。
在我们这个行业,十二月下旬通常对我们来说比较慢,所以这些错误直到一月份才开始出现,因为stream量(也就是磁盘IO)回升了。
无论如何,经过大约两个星期的调查和浪费了无数个小时的时间之后,我们和主持人中的一位技术人员打了电话,发现这个小问题。 结束了由于头痛导致我们得到两个免费的托pipe月。