云计算之路-阿里云上:Web服务器遭遇奇怪的“黑色30秒”问题

今天下午访问高峰的时候,主站的Web服务器出现奇怪的问题,开始是2台8核8G的云服务器(ECS),后来又加了1台8核8G的云服务器,问题依旧。html

并且3台服务器特意使用了不一样的配置:1台是禁用了虚拟内存的临时磁盘云服务器,1台是启用了虚拟内存的临时磁盘云服务器,1台是禁用了虚拟内存的云盘云服务器。这样排除了磁盘IO与虚拟内存的缘由。服务器

问题的表现是这样的(如下监视截图来自Windows性能监控器Performance Monitor):性能

1. ASP.NET请求执行时间(Request Execution Time)变慢阿里云

Request Execution Time

一般请求执行时间在100ms如下,而出问题时居然达到了近1.5s,发生时间为15:18:09。云计算

2. IIS当前链接数(Current Connections)突增3d

IIS当前链接数一般在10左右,出现问题时先跳高至67,后跳高至270多,说明IIS处理请求的能力降低,开始发生的时间点是15:18:06。orm

可见IIS当前链接数突增早于ASP.NET请求执行时间变慢。htm

3. CPU占用降低blog

 

CPU在15:18:07到达高点以后,一直往下掉,在15:18:14掉至最低点。内存

CPU降低发生于IIS当前链接数突增以后。

4. 请求出现排队现象(Requests Queued)

Requests Queued正常状况下是0,只有在请求处理不过来的时候才会出现排队现象。请求排队开始于15:18:05,早于IIS当前链接数突增。

5. ASP.NET请求处理能力降低(Requests/Sec)

15:18:05开始,ASP.NET的请求处理能力降低,与请求排队开始于同一时间。

咱们给上面的5个现象排个序:请求处理能力降低(Requests/Sec)-> 请求排队(Requests Queued)-> 当前链接数突增(Current Connections)-> CPU占用降低 -> 请求执行时间变慢(Request Execution Time)

而后再来看另一次问题发生时的现象:

1. Requests/Sec降低(棕色)与Requests Queued出现(蓝色)

Requests Queued在高点达1007。

2. Request Execution Time变慢(紫色)与Current Connections突增(绿色)

Current Connections在高点达1586。

3. 加上CPU占用率,5个指标叠在一块儿

【分析】

Requests/Sec降低、Requests Queued上升、Request Execution Time变慢、Current Connections突增,这些说明在什么地方卡住了;而CPU占用降低说明不是由于负载高CPU处理不过来,而是卡在了其余环节,好比IO。

以前遇到比这还奇怪的“黑色10秒钟”(详见云计算之路-阿里云上:超级奇怪的“黑色10秒钟”),现象有点相似,但有2个地方不一样:

1. 此次持续时间是30秒(因此把此次问题命名为“黑色30秒”)。

2. “黑色10秒钟”期间Requests/Sec会降低为0;而“黑色30秒”期间Requests/Sec只是降低,没有为0,也就是说还在处理请求,只是由于某些资源出现瓶颈,请求处理能力降低。

以前的“黑色10秒钟”是由于虚拟化对spinlock的支持问题引发的,改用Windows Server 2012解决了问题。

此次呢?应用的问题,Windows的问题,仍是阿里云的问题?这是个问题!目前还不知道从何处下手。

期待您的宝贵建议!

相关文章
相关标签/搜索