一、nmon测试结果分析
可以使用nmon工具对linux系统进行资源监控,怎么形成图表,请看以前性能测试的一般步骤。以下链接,解释了nmon生成的图表中每张图表每个字段到底啥意思
只不过撒,怎么判断监控的服务器的相关资源是否有问题,是没有的。关于那个指标有很多种说法
下面写了我主要看的方面:
(1)cpu
80%以上其实cpu就算满了,并发的时候,不要看平均使用率,还是看并发的时候占用率把
(2)mem
有问人,看swap内存,没有使用就没有问题
(3)net
write+read(绝对值相加) 乘以8除以1024,与100Mbit/s(根据自己局域网)比较,少于100Mbit/s的一半,就说明网络良好
测试高并发的时候,响应时间很长,除了网络,其实跟自己发送的数据包大小有关,如果一个请求,一个包10k,测试1000并发,也就是一次就有10k*1000=10000k=10M,扥估80Mbit/s,在100Mbit/s局域网测试这种场景的并发,网络就会是一个大的影响,测试出来的结果意义可能不是很大。
(4)disk
$iostat -x 1
Linux 2.6.33-fukai (fukai-laptop) i686 (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
5.47 0.50 8.96 48.26 0.00 36.82
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
sda 6.00 273.00 99.00 7.00 2240.00 2240.00 42.26 1.12 10.57 7.96 84.40
sdb 0.00 4.00 0.00 350.00 0.00 2068.00 5.91 0.55 1.58 0.54 18.80
rrqm/s: 每秒进行 merge 的读操作数目。即 delta(rmerge)/s
wrqm/s: 每秒进行 merge 的写操作数目。即 delta(wmerge)/s
r/s: 每秒完成的读 I/O 设备次数。即 delta(rio)/s
w/s: 每秒完成的写 I/O 设备次数。即 delta(wio)/s
rsec/s: 每秒读扇区数。即 delta(rsect)/s
wsec/s: 每秒写扇区数。即 delta(wsect)/s
rkB/s: 每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。(需要计算)
wkB/s: 每秒写K字节数。是 wsect/s 的一半。(需要计算)
avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区)。delta(rsect+wsect)/delta(rio+wio)
avgqu-sz: 平均I/O队列长度。即 delta(aveq)/s/1000 (因为aveq的单位为毫秒)。
await: 平均每次设备I/O操作的等待时间 (毫秒)。即 delta(ruse+wuse)/delta(rio+wio)
svctm: 平均每次设备I/O操作的服务时间 (毫秒)。即 delta(use)/delta(rio+wio)
%util: 一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的。即 delta(use)/s/1000 (因为use的单位为毫秒)
如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。
二、windows资源监控
(1)Processor time
80%以上,cpu满了
(2)Processor queue length
等待处理的线程(或者进程)
如果大于n+1(n为cpu的核数),怀疑cpu瓶颈
(3)available Byte(M)
小于屋里总内存的1%,内存可能是瓶颈
(4)pages/sec
硬错误,2g物理内存,硬错误不应该超过20
(5)context switches/sec
上下文切换水平在15000以上,说明系统很多时候在做跟业务无关的事情
(6)disk reads/writes
如果该值超过几十m,甚至上百m,则怀疑磁盘的瓶颈。
(7)Bytes total/sec:
该值*8后除以1024再与带宽(Mbit/s)的一半进行比较,如果小于带宽的一半,则一般认为网络没有瓶颈。1Byte=8bits。而带宽的单位为bits。
以上只是做一下参考。