CPU使用率与page faults/sec有没有关系?夸张的数值
刚对一个用微软Silveright做的地图服务端做性能测试,功能基本都在客户端完成,对服务端压力只有两类图片请求,一个是如http://192.168.1.45/DynamicTileServer/pic/alllayers/L04/R0A/C05.png样的直接图片请求,
一个是如http://192.168.1.45/DynamicTileServer/TranparentPicHandler.ashx?path=Data/hjwrzt/L05/R017/C0D.png样的,需要服务端进行处理识别后的图片请求,
第一类的很正常,吞吐量非常高,对服务端的压力全在网络带宽上,CPU和内存基本无任何消耗;
第二类就比较奇怪了,CPU时间随用户增加而增加,都是进程w3wp.exe在占用,但是到70%的时候就长不上去了,图片请求响应时间显著增加,内存基本无使用,2G多的空闲,硬盘也很正常,带宽也正常,吞吐量不到1M/Sec,比第一类低的多。唯一比较奇怪的数值就是page faults/sec,在CPU占用70%的时候数值稳定在约10万/sec,其曲线走势和CPU使用率保持一致。
本来初步估计的是由于第二类图片请求太多,导致w3wp.exe进程需要花费大量CPU时间处理网络传输,但奇怪在于CPU使用率只到了70%就上不去了,而这个page faults/sec如此之高,不知道什么缘故,查资料对这个计数器也没有太多的描述,现在不是很肯定瓶颈到底出在什么地方,不知道有无高手来解惑答疑啊?
补充下服务器的配置
CPU4核 Intel Q6600 2.4G *4内存 2G*2 双通道
硬盘 ST3320620AS(320G,16M,7200转)
带宽10M内网 我想你是你页面缓存吧,w3wp.exe是你的用户在服务器的cookies缓存,用来记录用户的操作之类的吧,因为第2类是要获取相对路径的图片,看到有path传值。在用户没有得到图片之前这个缓存应该一直存在。至于70%cpu占用不上去了 我想可能是服务器最大用户连接数的缘故,以上是我的个人猜想,还需要您的验证。仅供参考。 谢谢,不过应该与最大用户数无关,才跑到3个用户并发。 page faults分为硬中断和软中断。顾名思义,前者是硬件产生的,后者是软件产生的。
当你打开任务管理器,查看explorer.exe的中断每秒都会增加1,即使你没执行任何操作;这种情况是explorer.exe显示任务管理器在通知区(Notification Area)的占用率曲线时,会调用软中断从缓存中提取显示。
你的page faults需要结合你目前做的操作来分析。Windows的不少api会产生不小的中断,一般中断是跟CPU上下文切换联系紧密。 感觉和连接数有关。检查下操作系统的连接数配置看看。 用一台普通测试机器单核CPU Intel Q6600 2.4G 测时,一个用户一直跑就可以导致CPU占用100%,此时page faults/sec为3万5,算是成倍增长,我就是很奇怪为什么4核的CPU只跑到70%,page faults/sec10万就不再增长了,才3个用户并发。
再补充一点
page faults/sec是page input/sec+page output/sec的总和;前者是从硬盘读入内存,而后者则是从内存读出到硬盘,因此实际上此时正在占用的是page input/sec。比较准确的算法是Page File Bytes Peak即Peak Commit Charge-页面提交峰值,见微软KB 889654。 可是我的page input/sec+page output/sec都总是为0,而page faults/sec确持继性好几百! page input/sec+page output/sec 应该是Pages/sec的总和吧 page faults值越大是不是就代表命中率越低呢?
页:
[1]