AIX系统性能管理
- 格式:doc
- 大小:320.00 KB
- 文档页数:26
AIX 5.3主机性能评估
对于主机的性能评估,我们从下面的4个方面来逐一介绍:CPU、MEMORY、I/O系统和网络这4个方面来描述。
一、CPU性能评估
首先,我们还是先来看一下CPU的性能评估。下面主要介绍几个看CPU性能的命令。
1、vmstat
使用vmstat来进行性能评估,该命令可获得关于系统各种资源之间的相关性能的简要信息。当然我们也主要用它来看CPU的一个负载情况。
下面是我们调用vmstat命令的一个输出结果:
$vmstat 1 2
System configuration: lcpu=16 mem=23552MB
kthr memory page faults cpu
----- ----------- ------------------------ ----------------- -----------
r b avm fre re pi po fr sr cy in sy cs us sy id wa
0 0 3091988 2741152 0 0 0 0 0 0 1849 26129 4907 8 1 88 3
0 0 3091989 2741151 0 0 0 0 0 0 2527 32013 6561 15 2 77 6
对上面的命令解释如下:
Kthr段显示内容
r列表示可运行的内核线程平均数目,包括正在运行的线程和等待 CPU 的线程。如果这个数字大于 CPU 的数目,则表明有线程需要等待CPU。
b列表示处在非中断睡眠状态的进程数。包括正在等待文件系统 I/O 的线程,或由于内存装入控制而被挂起的线程。
Memory段显示内容
avm列表示活动虚拟内存的页面数,每页一般4KB
fre空闲的页面数,每页一般4KB
Page段显示内容
re –该列无效
pi 从磁盘交换到内存的交换页(调页空间)数量,4KB/页。调页空间是驻留在硬盘上的虚拟内存的一部分。当内存使用过量时,会将溢出的工作组页面存储到调页空间中(窃取页)。当进程访问一个窃取页时,就产生了一个缺页故障,而这一页页必须从调页空间中读入到内存中。
po 从内存交换到磁盘的交换页数量,4KB/页。如果窃取的工作也在调页空间中不存在或者已经作了修改,则写入调页空间中。如果不被再次访问,它会留在调度空间中直到进程终止或者放弃空间。
fr 根据页面替换算法每秒释放的页数。当VMM页面替换例程扫描页面帧表(Page
Frame Table,PFT)时,它会根据一些条件选取需要窃取的页面以补充空闲列表。该条件中包含工作页面和计算页面,释放的页面中,计算页面不产生I/O,工作页面如果数据没有发生修改,也不需要写回磁盘,也不会产生I/O。 sr 根据页面替换算法每秒所检查的页数。sr值比fr值高的越多,说明替换算法要查找可以替换的页面就越困难
cy 每秒页面替换代码扫描了PFT多少次。因为增加空闲列表达到maxfree值,不一定需要完全扫描PFT表,而所有vmstat输出都为整数,所以通常cy列值为0。
Faults段显示内容(其实这段内容不需太多关注)
in 在该时间间隔中观测到的每秒设备中断数。
sy 在该时间间隔中观测到的每秒系统调用次数。
cs 在该时间间隔中观测到的每秒钟上下文切换次数。
Cpu段显示内容
us 列显示了用户模式所消耗的 CPU 时间。
sy 列详细显示了 CPU 在系统模式所消耗的 CPU 时间。
id 列显示了没有未决本地磁盘 I/O 时 CPU 空闲或等待时间的百分比。
wa 列详细显示了有未决本地磁盘 I/O 时 CPU 空闲的时间百分比。wa 的值如果超过 25%,就表明磁盘子系统可能没有被正确平衡,或者这也可能是磁盘工作负荷很重的结果。
如果在一个单用户系统中,us + sy时间不超过 90%,我们就不认为系统的CPU是受限制的。
如果在一个多用户系统中,us + sy时间超过 80%, 我们就认为系统的CPU是受限的。其中的进程将要花时间在运行队列中等待。响应时间和吞吐量会受损害。
检查cpu,我们主要关注报告中的4个cpu列和2个kthr(内核线程)列。
在上面的示例中,我们可以观察到以下几个主要的信息:
CPU IDLE比较高,比较空闲;r列为0,表明线程不存在等待;
WA值不高,说明I/O压力不大;
free值比较大,pi,po为0,表明内存非常富裕。空闲较多。
2、iostat
第二个可以用来使用的命令是iostat.
$ iostat -t 2 4
tty: tin tout avg-cpu: % user % sys % idle % iowait
0.0 0.0 0.0 0.1 99.8 0.1
0.0 81.0 0.0 0.1 99.9 0.0
0.0 40.5 0.0 0.0 100.0 0.0
0.0 40.5 0.0 0.1 99.1 0.8
TTY 的两列信息(tin 和 tou)显示了由所有 TTY 设备读写的字符数
CPU 统计信息列(% user、% sys、% idle 和 % iowait)提供了 CPU 的使用故障。
注意:第一份报告为系统启动以来的一个累积值。
3、sar
第三个可使用的是 sar命令,但是sar会增加系统的开销。当然有些情况下,我们使用sar比较方便。sar的输出结果与前面的基本类似,这里不再作详细的介绍,关于命令的语法,也不再作详细的介绍,我们常用的命令格式:
sar 1 10
sar –u 1 10 sar –P ALL 1 5
4、tprof
使用tprof命令用于统计每个进程的CPU使用情况
# tprof -x sleep 30
该命令的输出结果可查看 __prof.all文件。
此命令运行30秒钟,在当前目录下创建一个名为_prof.all 的文件。30秒钟内, CPU被调度次数约为3000次。__prof.all 文件中的字段Total 为此进程调度到的CPU次数。如果进程所对应的 Total字 段的值为1500,sample示该进程在3000次 CPU调度中占用了1500次,或理解为使用了一半的CPU时间。tprof的输出准确地显示出哪个进程在使用CPU
时间。
5、nice和renice
指定和修改命令的优先级。系统中运行的每个进程都有一个优先级(亦称“nice 值”),其范围从 -20 (最高优先级)到 19 (最低优先级)。在AIX5.3中,系统默认的pri为60,默认的nice为20。
nice –n -5 vmstat 2 10 >vmstat.out
指定程序以nice值-5开始运行。程序开始后,nice的值为15。
也可以指定超过20和-20 的值,比如
nice –n -33 vmstat 2 10 >vmstat.out
程序开始后,nice的值一般为最大值。具体的值可能不是40,比如很多时候是39,因为nice的值是需要根据cpu具体的情况的进行重新计算的。
renice不能在具有固定优先级的进程上使用。非root用户可以在一个或多个运行进程的nice值上加一个指定的值,但不能从中减去指定的值。也就是只能降低进程的优先级,而不能增加优先级。
renice -n -10 pidnumber ,将指定的进程nice值减小10。
renice -n +5 pidnumber ,将指定的进程nice值增加5。
nice值默认为20,nice可以更改的范围为20-20到20+20。所以在这里renice的值可以大于20。例如:
# ps l 1630282
FSUID PID PPID C PRI NI ADDR SZ RSS WCHAN TTY TIME CMD
200001 A 0 1630282 680062 0 100 40 413e8400 472 484 EVENT pts/1 0:00 v
# renice -n -30 1630282
# ps l 1630282
FSUID PID PPID C PRI NI ADDR SZ RSS WCHAN TTY TIME CMD
200001 A 0 1630282 680062 0 50 10 413e8400 472 484 EVENT pts/1 0:00 v
在这个系统中,nice的默认值为20,系统的默认优先级为60。
优先级值(PRI)= 基本优先级(60)+nice损失 + 基于最近CPU使用情况的CPU损失
总的来说nice值越小,进程的优先级越高,能分配到更多的cpu时间片。
setpri ()可以用来放在脚本中设置某个子进程的在固定的优先级下面运行,而不受惩罚机制惩罚。
6、ps
这个命令不介绍过多,只介绍如何查看cpu占用最高的进程。
ps aux | head -10
对于系统cpu的监控,建议:
1)使用vmstat进行分析
2)sar –P ALL 1 10 分析,多个cpu间的负载是否平衡
3)ps aux 查看
4)tprof查看更详细的信息
案例1, 曾有一个用户抱怨,他的应用长期受到困扰: 相同的应用处理同样的计费结算处理,4x500MHz/2GBmem 的M80服务器的处理时间是一台1.8GHz/512MbmemPC机的近乎3倍! 而CPU资源有70%多的空闲,I/O并不繁忙,内存也不紧张。
原因分析:
客户和代理商工程师在监控CPU使用情况时仅仅使用了命令:
#sar 1 100
所得到的结果是CPU很闲但处理速度非常慢. 但并没有监控每个CPU的使用情况,如果进一步使用命令:
# sar –P ALL 1 100
即可发现整个应用处理过程中只有一个CPU在处理业务, %idle = 0, 其它三个CPU %idle=100! 显然,对于单进程单线程应用希望通过运行在多处理器的服务器上以获得更好的性能如同缘木求鱼.
案例2, 在进行GSM智能网SCP业务呼叫测试过程中,在测试用例不变,业务流程相同,测试业务压力也相同的情况下,随着测试时间的推移,系统业务处理能力越来越差,呼损越来越大.