机器性能优化主要从四个方面去考虑:CPU,内存,磁盘I/O,网络。
1, CPU
sar命令
可以使用sar命令来查看cpu的使用率。
ibm150:[/]#sar 1 5
AIX ibm150 1 5 000AF70D4C00 01/24/06
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将是瓶颈
ibm150:[/]#ps aux | head -4 查看前3位占用cpu的进程
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 516 49.7 8.0 12 18052 - A 10:07:58 188:20 wait
root 5688 0.1 0.0 164 168 - A 10:09:13 0:21 /usr/sbin/syncd 6
%CPU表示进程使用cpu时间的百分比;%MEM表示进程使用实际内存的百分比
ps –elf 命令
将查看进程的优先级别
ibm150:[/]#ps -elf
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
200003 A root 1 0 0 60 20 28034 1876 10:08:23 0:00 /etc/init
240401 A root 2968 4502 0 60 20 2c376 2176 * 10:10:230:00 /usr/sbin/rsct/bin/IBM.ServiceRMd
40001 A root 3192 1 0 60 20 3417a 1472 10:09:00 -
0:00 /usr/dt/bin/dtlogin -daemon
240001 A root 3730 4158 3 61 20 321b9 2568 10:10:19 -
0:20 dtgreet
PRI值越小,优先级越大。
NI值越大,优先级越小。
可以使用命令nice ,renice来修改NI值。
2, MEMORY
vmstat命令
主要使用vmstat命令来查看虚拟内存和实际内存的使用率,看内存瓶颈主要是看ps的使用率,只要ps的使用率没有超过70%,内存的使用率为100%都是正常的。
ibm150:[/]#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上的时候,对于内存区域有两个动作,第一为分配部分工作段,第二为分配部分文件系统缓存
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% 内存将成瓶颈
svmon命令
可以查看物理内存的情况
ibm150:[/]#svmon –G 查看内存全局使用状况
ibm150:[/]#svmon -Pt 3 查看前三个占用内存的进程
HPUX下可以使用 lsof 查看
svmon -G ,topas,看出来都是20G内存,可ps gu或ps auxxx相加或使用svmon -U 相加却少了10G
使用svmon -P发现大量的aioserver占掉了内存,用ps -efk统计也是如此,原来是aioserver开得过多造成的。而aioserver属于kernel的,所以有些统计都不算在内。
1, 磁盘I/O
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
tty: tin tout avg-cpu: % user % sys % idle % iowait
0.0 476.6 0.0 1.0 99.0 0.0
Disks: % tm_act Kbps tps Kb_read Kb_wrtn
hdisk0 0.0 0.0 0.0 0 0
hdisk1 0.0 0.0 0.0 0 0
hdisk2 0.0 0.0 0.0 0 0
cd0 0.0 0.0 0.0 0 0
A system is I/O bound, if:
%iowait > 25%, %tm_act > 70%
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
hd3 1 0 4 0.00
loglv02 0 0 0 0.00
lv01 0 0 0 0.00
sysb 0 0 0 0.00
hd10opt 0 0 0 0.00
hd1 0 0 0 0.00
hd6 0 0 0 0.00
hd5 0 0 0 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 1 0 0 0 0.00
4 1 0 0 0 0.00
5 1 0 0 0 0.00
filemon命令
To monitor the physical I/O activity of the virtual memory, logical volume,
and physical volume levels of the file system, enter:
ibm150:[/]#filemon -o /tmp/filemon.out 开始监控磁盘I/O
ibm150:[/]#smitty trcstop 停止监控并创建报告
ibm150:[/]#more /tmp/filemon.out 查看报告
topas svmon
查看每个进程所占的IO
ibm150:[/]#topas –P
ibm150:[/]#svmon -P | more
2, network
topas命令
可以使用该命令查看所有的性能情况,包括CPU,内存,磁盘I/O,network
ibm150:[/]#topas
其他命令可参见相关网络管理文档
1, CPU
sar命令
可以使用sar命令来查看cpu的使用率。
ibm150:[/]#sar 1 5
AIX ibm150 1 5 000AF70D4C00 01/24/06
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将是瓶颈
ibm150:[/]#ps aux | head -4 查看前3位占用cpu的进程
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 516 49.7 8.0 12 18052 - A 10:07:58 188:20 wait
root 5688 0.1 0.0 164 168 - A 10:09:13 0:21 /usr/sbin/syncd 6
%CPU表示进程使用cpu时间的百分比;%MEM表示进程使用实际内存的百分比
ps –elf 命令
将查看进程的优先级别
ibm150:[/]#ps -elf
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
200003 A root 1 0 0 60 20 28034 1876 10:08:23 0:00 /etc/init
240401 A root 2968 4502 0 60 20 2c376 2176 * 10:10:230:00 /usr/sbin/rsct/bin/IBM.ServiceRMd
40001 A root 3192 1 0 60 20 3417a 1472 10:09:00 -
0:00 /usr/dt/bin/dtlogin -daemon
240001 A root 3730 4158 3 61 20 321b9 2568 10:10:19 -
0:20 dtgreet
PRI值越小,优先级越大。
NI值越大,优先级越小。
可以使用命令nice ,renice来修改NI值。
2, MEMORY
vmstat命令
主要使用vmstat命令来查看虚拟内存和实际内存的使用率,看内存瓶颈主要是看ps的使用率,只要ps的使用率没有超过70%,内存的使用率为100%都是正常的。
ibm150:[/]#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上的时候,对于内存区域有两个动作,第一为分配部分工作段,第二为分配部分文件系统缓存
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% 内存将成瓶颈
svmon命令
可以查看物理内存的情况
ibm150:[/]#svmon –G 查看内存全局使用状况
ibm150:[/]#svmon -Pt 3 查看前三个占用内存的进程
HPUX下可以使用 lsof 查看
svmon -G ,topas,看出来都是20G内存,可ps gu或ps auxxx相加或使用svmon -U 相加却少了10G
使用svmon -P发现大量的aioserver占掉了内存,用ps -efk统计也是如此,原来是aioserver开得过多造成的。而aioserver属于kernel的,所以有些统计都不算在内。
1, 磁盘I/O
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
tty: tin tout avg-cpu: % user % sys % idle % iowait
0.0 476.6 0.0 1.0 99.0 0.0
Disks: % tm_act Kbps tps Kb_read Kb_wrtn
hdisk0 0.0 0.0 0.0 0 0
hdisk1 0.0 0.0 0.0 0 0
hdisk2 0.0 0.0 0.0 0 0
cd0 0.0 0.0 0.0 0 0
A system is I/O bound, if:
%iowait > 25%, %tm_act > 70%
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
hd3 1 0 4 0.00
loglv02 0 0 0 0.00
lv01 0 0 0 0.00
sysb 0 0 0 0.00
hd10opt 0 0 0 0.00
hd1 0 0 0 0.00
hd6 0 0 0 0.00
hd5 0 0 0 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 1 0 0 0 0.00
4 1 0 0 0 0.00
5 1 0 0 0 0.00
filemon命令
To monitor the physical I/O activity of the virtual memory, logical volume,
and physical volume levels of the file system, enter:
ibm150:[/]#filemon -o /tmp/filemon.out 开始监控磁盘I/O
ibm150:[/]#smitty trcstop 停止监控并创建报告
ibm150:[/]#more /tmp/filemon.out 查看报告
topas svmon
查看每个进程所占的IO
ibm150:[/]#topas –P
ibm150:[/]#svmon -P | more
2, network
topas命令
可以使用该命令查看所有的性能情况,包括CPU,内存,磁盘I/O,network
ibm150:[/]#topas
其他命令可参见相关网络管理文档
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7757439/viewspace-421386/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/7757439/viewspace-421386/