机器性能优化主要从四个方面去考虑:CPU,内存,磁盘I/O,网络

 

CPU

1.sar

查看cpu使用率

 

#sar 1 5

 

13:13:25    %usr    %sys    %wio   %idle
13:13:26       0       0         0     100
13:13:27       0       0         0     100
13:13:28       0       0         0     100
13:13:29       0       0         0     100
13:13:30       0       0         0     100

 

Average        0       0         0     100

 

%usr + %sys  >  80% 的时候 CPU将是瓶颈

 

2.ps

 

#ps aux | head -4         查看占用CPU前3的进程
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->

USER  PID  %CPU %MEM   SZ  RSS     TTY  STAT    STIME   TIME  COMMAND

root    774  49.7    8.0       12  18052   -     A       10:07:58 188:24  wait

root    5688  0.1    0.0       164  168     -     A      10:09:13 0:21    /usr/sbin/syncd 6

 

%CPU表示进程使用cpu时间的百分比;%MEM表示进程使用实际内存的百分比

 

ps –elf 命令  将查看进程的优先级别

 

 

-bash-4.1$ ps -elf |head -3

UID   PID  PPID  C  PRI NI  SZ  STIME   TTY  TIME CMD

root  1    0     0  60  20  736 Mar 07  -    0:34 /etc/init

root  262  1     0  60  20  110 Mar 07  -    0:00 /errdemon

 

PRI值越小,优先级越大。NI值越大,优先级越小。

可以使用命令nice ,renice来修改NI值。

 

MEMORY

1.vmstat

vmstat命令来查看虚拟内存和实际内存的使用率,看内存瓶颈主要是看ps的使用率,只要ps的使用率没有超过70%,内存的使用率为100%都是正常的。

 

#vmstat

 

kthr     memory             page              faults        cpu

----- ----------- ------------------------ ------------ -----------

r  b   avm   fre    re  pi  po  fr   sr  cy  in   sy  cs   us sy id  wa

1  1 45137 464235   0   0   0   0   0   0  248  523 333  0  0 99  0

 

Page表示页面调入调出的数量,pi po经常为非零值时,需要注意。

Wa 表示等待I/O的时间,不能太高

avm 活动虚拟页面,在进程运行中分配到工作段的页面空间数.越小越好,单位为4K。实际内存中 系统进程使用的(计算段) 工作段。该值与svmon –G中的virtual值相等。

fre  空闲列表的数量.一般不少于120,当fre少于120时,系统开始自动的kill进程去释放free list   越大越好,实际内存中空闲的frame数。

 

注意:avm不包括 文件系统缓存

The avm number will grow as more processes get started and/or existing processes allocate more working storage.

 

实际内存 页面数 =(avm+fre+文件系统缓存)×4k

文件系统缓存 =文件系统缓存+某些程序退出时未释放的文件页面

 

可以使用 vmstat -v查看文件系统缓存

当文件系统mount上的时候,对于内存区域有两个动作,第一为分配部分工作段,第二为分配部分文件系统缓存

 

2.lsps

lsps –a命令  查看pagespces使用率

 

ibm150:[/]#lsps –a

Page Space  Physical Volume   Volume Group    Size     %Used  Active  Auto  Type

hd6         hdisk2            rootvg        2464MB     1     yes    no    lv

 

%used > 70% 内存将成瓶颈

 

3.svmon

查看物理内存的情况

 

ibm150:[/]#svmon –G       查看内存全局使用状况

ibm150:[/]#svmon -Pt 3     查看前三个占用内存的进程

 

svmon -G ,topas,看出来都是20G内存,可ps gu或ps auxxx相加或使用svmon -U 相加却少了10G

使用svmon -P发现大量的aioserver占掉了内存,用ps -efk统计也是如此,原来是aioserver开得过多造成的。而aioserver属于kernel的,所以有些统计都不算在内。

 

I/O

1.iostat

主要使用iostat命令查看磁盘I/O的负载

 

ibm150:[/]#iostat 1 2

 

tty:      tin         tout   avg-cpu:  % user    % sys     % idle    % iowait

         0.2          8.3               0.1      0.5       99.0       0.4

 

Disks:        % tm_act     Kbps      tps    Kb_read   Kb_wrtn

hdisk0           0.0       0.2       0.0       3157         0

hdisk1           0.1       1.3       0.1      12049      4640

hdisk2           0.0       0.1       0.0          5      1405

cd0              0.0       0.0       0.0         0         0

 

A system is I/O bound, if:

%iowait > 25%, %tm_act > 70%

 

2.lvmstat

该命令查看单个lv,vg上的I/O流量

使用lvmstat 命令前需要用 -e选项 激活该命令:

 

ibm150:[/]#lvmstat -v rootvg –e

ibm150:[/]#lvmstat -v rootvg

 

Logical Volume       iocnt   Kb_read   Kb_wrtn      Kbps

hd4                   13         0        56      0.00

hd8                   11         0        44      0.00

hd2                    8         0        36      0.00

hd9var                 3         0        12      0.00

 

 

ibm150:[/]#lvmstat -l hd4

 

Log_part  mirror#  iocnt   Kb_read   Kb_wrtn      Kbps

      1       1      36         0       156      0.00

      2       1       0         0         0      0.00

 

3.filemon

To monitor the physical I/O activity of the virtual memory, logical volume,

and physical volume levels of the file system

 

ibm150:[/]#filemon -o /tmp/filemon.out         开始监控磁盘I/O

ibm150:[/]#smitty trcstop                     停止监控并创建报告

ibm150:[/]#more /tmp/filemon.out              查看报告

 

4.topas

查看每个进程所占IO

 

ibm150:[/]#topas –P

 

5.svmon

 

ibm150:[/]#svmon -P | more

 

network

1.topas

可以使用该命令查看所有的性能情况,包括CPU,内存,磁盘I/O,network

 

ibm150:[/]#topas

 

 

 

参考

 

1.http://blog.chinaunix.net/u/32940/showart_379919.html