51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 7471|回复: 10
打印 上一主题 下一主题

[原创] CPU使用率与page faults/sec有没有关系?夸张的数值

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-11-18 17:00:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
刚对一个用微软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如此之高,不知道什么缘故,查资料对这个计数器也没有太多的描述,现在不是很肯定瓶颈到底出在什么地方,不知道有无高手来解惑答疑啊?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2008-11-18 17:05:52 | 只看该作者

补充下服务器的配置

CPU4核 Intel Q6600 2.4G *4
内存 2G*2 双通道
硬盘 ST3320620AS(320G,16M,7200转)
带宽10M内网
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2008-11-18 17:43:42 | 只看该作者
我想你是你页面缓存吧,w3wp.exe是你的用户在服务器的cookies缓存,用来记录用户的操作之类的吧,因为第2类是要获取相对路径的图片,看到有path传值。在用户没有得到图片之前这个缓存应该一直存在。至于70%cpu占用不上去了 我想可能是服务器最大用户连接数的缘故,以上是我的个人猜想,还需要您的验证。仅供参考。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2008-11-18 17:51:19 | 只看该作者
谢谢,不过应该与最大用户数无关,才跑到3个用户并发。
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2008-11-18 18:41:49 | 只看该作者
page faults分为硬中断和软中断。顾名思义,前者是硬件产生的,后者是软件产生的。
当你打开任务管理器,查看explorer.exe的中断每秒都会增加1,即使你没执行任何操作;这种情况是explorer.exe显示任务管理器在通知区(Notification Area)的占用率曲线时,会调用软中断从缓存中提取显示。

你的page faults需要结合你目前做的操作来分析。Windows的不少api会产生不小的中断,一般中断是跟CPU上下文切换联系紧密。
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2018-2-28 18:04
  • 签到天数: 40 天

    连续签到: 1 天

    [LV.5]测试团长

    6#
    发表于 2008-11-19 09:50:02 | 只看该作者
    感觉和连接数有关。检查下操作系统的连接数配置看看。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
     楼主| 发表于 2008-11-19 11:28:17 | 只看该作者
    用一台普通测试机器单核CPU Intel Q6600 2.4G 测时,一个用户一直跑就可以导致CPU占用100%,此时page faults/sec为3万5,算是成倍增长,我就是很奇怪为什么4核的CPU只跑到70%,page faults/sec10万就不再增长了,才3个用户并发。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2008-11-19 11:33:00 | 只看该作者

    再补充一点

    page faults/sec是page input/sec+page output/sec的总和;前者是从硬盘读入内存,而后者则是从内存读出到硬盘,因此实际上此时正在占用的是page input/sec。

    比较准确的算法是Page File Bytes Peak即Peak Commit Charge-页面提交峰值,见微软KB 889654。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2008-12-17 18:06:00 | 只看该作者
    可是我的page input/sec+page output/sec都总是为0,而page faults/sec确持继性好几百!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2008-12-17 22:52:17 | 只看该作者
    page input/sec+page output/sec 应该是Pages/sec的总和吧
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2009-3-2 14:00:45 | 只看该作者
    page faults值越大是不是就代表命中率越低呢?
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-22 03:36 , Processed in 0.079746 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表