51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3944|回复: 5
打印 上一主题 下一主题

[原创] linux服务器,测试后的部分数据的分析有困难

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-4-26 16:36:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
之前在论坛上下了一份关于unix计数器指标分析的文档,我对着自己测完的结论,想问几个问题(图贴不出来,我把数据写出来吧)。

1. 我测出来的paging rate值:
最小                 平均                      最大
0                     205.755                  362.094


Page-in rate

每秒钟读入到物理内存中的页数

当处理器向内存指定的位置请

求一页(可能是数据或代码)出现错误时,这就构成一个Page Fault。如果该页在内存的其他位置,该错误被称为软错误(用Transition Fault/sec 计数器衡量);如果该页必须从硬盘上重新读取时,被称为硬错误。许多处理器可以在有大量软错误的情况下继续操作。但是,硬错误

可以导致明显的拖延。

Paging rate
推荐00-20(如果

服务器没有足够的内存处理其工作负荷,此数值

将一直很高。如果大于80,表示有问题)。

这些计数器的值比较低,说明服

务器响应请求比较快,否则可能是服务器系统内

存短缺引起( 也可能是缓存太大,导致系统内存太少)

Page-out rate

每秒钟写入页面文件和从物理内存中删除的页数

Paging rate

每秒钟读入物理内存或写入页文件的页数


这个表格是那份文档里的,他说大于80就说明有问题,那我这个数据也太高了吧?还是这个数据是要根据自己的硬件配置来计算的?


2. Context switches rate的值(一个3.40GHz的CPU)
最小           平均              最大
3674.979    4692.052       5803.413

Context switches rate

每秒钟在进程或线程之间的切换率。当正在运行的线程

自动放弃处理器时出现上下文转换,由一个有更高优先就绪的线程占先或在用户模式和特权(内核)模式之间转换以

使用执行或分系统服务。它是在计算机上的所有处理器上运行的所有线程的Thread: Context Switches的总数并且用转换数量衡量。在系统和线程对象上有上下文转换计数器。

如果切换次

数在5000*CPU个数和10000*CPU

个数之间,说明

它忙于切换线程而不是处理。



虽然数据没有到他说的5000*CPU个数,但是也差不多了,而且最大数据达到了,这样算不算有问题呢?


3.  interrupt rate的值每秒内的设备中断数。该指标代表了本地向CPU引起的本地中断,例如IO端口引起的中断;同样的,运行的系统时钟同样会引起中断(100HZ,但因为很小,因此可以忽略),一个巨大的中断值,同时伴随着缓慢的系统性能表现,可能是指示了存在硬件问题,比如说持续中断设备(continuously interrupting device)。):
最小                平均                       最大
1423.896        1637.893                1729.158

我测出来的这个值算不算大呢?该怎么计算?


4.  Disk rate:磁盘传输速率。如果只有 Disk rate 比较大,另外指标都比较适中,硬盘可能会是瓶颈。
请问磁盘传输速率怎么计算?
我的数值:
最小             平均                最大
0                7.753               21.339



5.  User mode CPU utilization 在用户模式下使用 CPU
的时间百分比

最小               平均                   最大
28.036             46.431                 57.263
用户模式下占用的CPU一般有什么标准吗?


这5个数值都是一次测试里的。同时,CPU的值最高只到63.936%,而且比较平稳,浮动不超过10%,avarage load 最大只到2.199,collision rate的值是0,其它系统计数器的值也都是0(斑竹能不能告诉我为什么我贴不了图,这样说我看着都晕~~~sdlkfj9

说一下系统配置,CPU3.40GHz,内存2G,系统GNU/Linux。主要测试的是查询功能,40人并发(刚才给的数据),速度不慢,3秒内都能完成。但是人数加到80时速度突然变的很忙,看过吞吐量,觉得网络没问题,CPU的值也不高。就是刚才那几个值比较异常。各位能不能帮我分析一下这是什么原因,相关的性能指标应该怎么看。

[ 本帖最后由 ireneyao 于 2007-4-28 15:06 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2007-4-26 16:51:59 | 只看该作者
如果系统由于应用程序代码效率低下或者系统结构设计有缺陷而导致大量的上下文切换(Context switches rate 显示的上下文切换次数比较大),那么就会占用大量的系统资源。如果系统的吞吐量降低并且CPU 的使用率很高,并且此现象发生时切换水平在15000 以上,那么意味着上下文切换次数过高
还可以比较Context switches rate 和 System mode CPU utilization 来判断上下文切换是否过量。如果后者的值超过40%,且上下文切换的速率也很高,那么应该检查为什么会产生这样高的上下文切换。


我的数据不符合上面的情况,不知道怎么办sdlkfj7
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2007-4-26 17:07:48 | 只看该作者
继续提问:
如果我加60个并发,CPU达到85%以上,用户模式下占用CPU平均69.254%,最高76.858%,系统模式下占用的内存最高也不到20%,这是不是说明他们用到比较复杂的算法?我怎么判断是程序问题还是CPU成为瓶颈了?象刚才说的服务器配置正常来说应该支持到多少用户并发查询呢?被查询的数据量有10万左右。

[ 本帖最后由 ireneyao 于 2007-4-27 15:37 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2007-4-26 17:40:13 | 只看该作者
还要提问:
连接到linux的系统下观察性能,发现MEM只剩130M,buffer3.8M,cache738M,这样正常吗?
每个mysql进程占了173M的内存,而且每次测完(大概持续1分多钟),mysql占的内存基本就会增加1M,刚开始的时候是34M的,现在涨了这么多,可是我问开发人员,他们说mysql就是这样的,给多少内存用多少,上网搜了,有人说linux的内存管理机制决定的,内存在需要使用的时候才释放。可是我比较过两种情况(mysql占60M以下内存和占100M以上内存),速度会有差别,这样到底算有问题还算没问题,大家进来帮我看一下吧,我现在理不出思路了。
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2007-4-27 08:36:07 | 只看该作者
各位,帮个忙吧~~~~~sdlkfj9


2007-4-27 14:10 编辑
快沉下去了~~~不行,自己支持一下~~~


各位~~同行们~~~sdlkfj9

[ 本帖最后由 ireneyao 于 2007-4-27 15:38 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2007-4-27 15:11:17 | 只看该作者
我在chinaunix里发现的帖子里的内容,下面是用vmstat命令看到的数值:
其中(我觉得,如果不对各位指出来)cs对应LR中的Context switches rate,in对应interrupt rate,说明一下,这个数据是今天测的40个并发用户的结果,和1楼发的数据不是同一次的。

procs -----------memory----------            ---swap--    -----io----     --system--       ----cpu----
r b    swpd   free   buff   cache          si      so    bi    bo      in       cs      us  sy   id     wa
5 0        0 237124 44724 728516      0       0  124   625    558    339    14  6    75     5
2 0        0 228508 44756 736804      0       0    8     382    1586  3585  74  17   8      0
1 0        0 183004 44840 781180      0       0  88     88      1522  1943  54  10  34     1
5 0        0 233860 44872 729928      0       0   22   14704  2130  6171  62   27  7      4
6 0        0 226460 44896 735884      0       0  18       4      1478  3268  65  17  17     1
1 1        0 185244 45052 775768      0       0 980   12516  2192  2487  59   16   0     25
7 0        0 217172 45188 740792      0       0 4274  262    1527  2997   44   21  8      28
0 2        0 217300 45228 742052      0       0 682      4      1621  3939  58  19   3      20
1 2        0 212452 45280 745120      0       0 1448 14764 2034  2155   13    7    24   55
3 1        0 209124 45280 747460      0       0 936      58    1676  3353  52  10  10     28
1 1        0 205668 45292 750308      0       0 1216    72    1641  2682  47  19   5      28


以下是那个帖子里一段回复:
原文:http://linux.chinaunix.net/bbs/v ... 88150&extra=&page=1
r: 等待运行的进程数
in: 每秒的中断数,包括时钟中断
cs: 每秒的环境(上下文)切换次数

你 CPU 的 id -> 0 , r 平均大于 20+,cs 大于 3000+, 几乎所有的CPU时间都用来做切换调度了
不知道你这台服务器是用来跑什么的,如果不是有死锁的话,那就该换CPU了


照这么说我现在应该可以肯定程序是有问题的了?为什么这里说的是cs>3000,那3000和5000我应该以哪个为准呢?还有io里的bo,这个数值是什么?为什么变化这么大?从4变到14764???

[ 本帖最后由 ireneyao 于 2007-4-27 15:13 编辑 ]
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-26 19:32 , Processed in 0.081062 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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