码迷,mamicode.com
首页 > 其他好文 > 详细

云计算之路-阿里云上:神奇的“黑色30秒”再次出现,究竟是谁的错?

时间:2014-05-07 18:28:46      阅读:425      评论:0      收藏:0      [点我收藏+]

标签:style   blog   class   code   java   tar   

自从4月28日我们从ASP.NET线程的角度对“黑色30秒”问题进行分析之后,我们采用了新的线程设置,然后观察“黑色30秒”是否再次出现。

bubuko.com,布布扣
<processModel enable="true"  requestQueueLimit="5000" maxWorkerThreads="100" maxIoThreads="100" minWorkerThreads="50" minIoThreads="50"/>
bubuko.com,布布扣

采用以上设置之后,Requests Queued出现的频率的确少了。之后的几天,也没出现“黑色30秒”。

于是,ASP.NET线程设置问题引起“黑色30秒”的可能性已经提升到了99.9%,对阿里云的怀疑只剩下0.1%。

但是:

1. 上次的总结中提到“如果把‘黑色30秒‘问题归因于ASP.NET线程问题,除了30秒左右的这个时间,其他问题表现都得到了更合理的解释。”,评论中也有朋友提到“不像是这个问题。为什么是30秒而不是20秒,或者50秒?”,这个最显著的特征却一直找不到合理的解释,让人无法划上圆满的句号。

2. 之前观察的阶段处于五一假期前夕,流量有所下降,没有出现真正的访问高峰,所以需要通过这周的访问高峰进行验证。当阿里云客服想结束工单时,我们说还需要这周的观察。

。。。

结果,今天下午神奇的“黑色30秒”再次降临,而这次“黑色30秒”期间没有出现Requests Queued,请看以下的Windows性能监视器的监视情况。

这次只看4个数据:Requests Executing,Processor Time,Request Execution Time,Current Connections。

1. Requests Executing如过山车

bubuko.com,布布扣

这是这次“黑色30秒”期间最最显著的表现。

2. CPU先抑后扬

bubuko.com,布布扣

3. Request Execution Time在玩蹦极

bubuko.com,布布扣

4. Current Connections有点像撑杆跳

bubuko.com,布布扣

从上面的表现来看,很明显,“黑色30秒”期间正在执行的请求卡住了,或者更准确地说正在执行请求的线程卡住了。

与之前的表现(如下图Requests Queued的上升)相比,这次似乎是新的情况。

bubuko.com,布布扣

根本不是!这只是同一个问题在不同条件下的表现——

之前由于线程设置的少,所以当当前处理请求的线程卡住后,后续的请求只能排队。

而这次当当前处理请求的线程卡住后,后续的请求过来时,ASP.NET可以有更多空闲线程处理这些请求,而在请求处理过程中这些线程也卡住了,所以表现为Requests Executing飙升。

现在我们猜测“黑色30秒”的触发条件是在高并发下线程突然卡住了。

为什么线程会卡住?为什么会是30秒?应用程序的原因,Windows的原因,还是阿里云的原因?大家可以投投票。

如果您对Xen有研究,期待您从dom0 CPU调度策略角度分析可能的原因。

云计算之路-阿里云上:神奇的“黑色30秒”再次出现,究竟是谁的错?,布布扣,bubuko.com

云计算之路-阿里云上:神奇的“黑色30秒”再次出现,究竟是谁的错?

标签:style   blog   class   code   java   tar   

原文地址:http://www.cnblogs.com/cmt/p/3709851.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!