在AIX系统中,监控是确保系统稳定运行的关键环节,通过合理的命令可以实时掌握系统资源使用情况、进程状态、性能瓶颈等信息,以下将详细介绍AIX常用的监控命令及其使用方法,帮助管理员高效进行系统管理。

系统资源监控命令
-
vmstat命令
vmstat是虚拟内存统计的缩写,主要用于报告进程、内存、分页、块IO、陷阱和CPU活动的信息,其基本语法为vmstat [间隔 [次数]]
,例如vmstat 5 10
表示每5秒输出一次,共输出10次,输出结果中,r
列表示运行队列中的进程数,超过CPU核心数可能意味着CPU瓶颈;free
列表示空闲内存页数,若持续较低需关注内存使用;us
、sy
、id
分别代表用户态CPU使用率、系统态CPU使用率和空闲率,us
和sy
过高可能需要优化进程或检查异常进程。 -
sar命令
sar(System Activity Reporter)是强大的系统性能监控工具,可收集、报告和存储系统活动信息,例如sar -u 1 5
每秒输出一次CPU使用情况,共5次;sar -r 1 5
监控内存使用情况,kbmemfree
列表示空闲内存,kbmemused
表示已用内存;sar -b 1 5
显示IO传输速率,tps
表示每秒传输次数,bread/s
和bwrtn/s
分别表示读和写的扇区数,通过sar -A
可查看所有系统活动报告,适合全面性能分析。 -
topas命令
topas是AIX专属的实时监控工具,以交互式界面展示CPU、内存、进程、网络等信息,执行topas
后,默认界面显示全局CPU使用率(分为用户、系统、空闲、等待、物理空闲)、内存使用情况(实内存、虚拟内存、 paging空间)、最耗资源的进程列表(包含PID、用户、CPU占用率、内存占用等),按M
可按内存使用排序进程,按C
按CPU排序,按1
可查看各CPU核心的详细使用情况,适合快速定位高资源消耗进程。
进程监控命令
-
ps命令
ps用于显示当前进程状态,常用选项包括-ef
(显示所有进程,完整格式)和-efl
(显示长格式,包含更多字段),例如ps -ef | grep java
可查找所有包含java关键词的进程;ps -efl | grep -v grep
可排除grep进程本身,输出中PID
为进程ID,PPID
为父进程ID,C
为CPU使用率,STIME
为启动时间,CMD
为启动命令,通过分析这些字段可判断进程异常。(图片来源网络,侵删) -
pgrep命令
pgrep根据进程属性查找进程ID,比ps更高效,例如pgrep -u oracle
查找oracle用户的所有进程ID;pgrep -f "httpd"
查找命令行包含httpd的进程;pgrep -l
可同时输出进程ID和进程名,结合kill
命令可实现批量操作,如kill $(pgrep -f zombie_process)
终止指定进程。 -
pidstat命令
pidstat监控进程级别的CPU、内存、IO等资源使用情况,语法为pidstat [选项] [间隔 [次数]]
,例如pidstat -d 1 5
每秒监控各进程的IO使用情况,read/s
和write/s
表示读写速率;pidstat -r 1 5
监控进程内存使用,minflt/s
为次要错误次数,majflt/s
为主要错误次数,错误次数过高可能进程存在内存问题。
磁盘与IO监控命令
-
iostat命令
iostat用于监控CPU和磁盘IO性能,语法为iostat [选项] [间隔 [次数]]
。iostat -d 1 5
每秒显示磁盘IO统计,tps
为每秒传输次数,Blk_read/s
和Blk_wrtn/s
为读写块数,%util
为磁盘使用率,若接近100%说明磁盘瓶颈;iostat -x 1 5
显示扩展统计,包括await
(平均等待时间)、svctm
(平均服务时间),await
过高需检查磁盘性能或是否存在IO竞争。 -
lsvg命令
lsvg用于显示卷组信息,lvg
可查看逻辑卷信息,例如lsvg
列出所有卷组;lsvg rootvg
查看rootvg卷组的详细信息,包括PP大小、总PP数、空闲PP数等;lsvg -l rootvg
查看rootvg下的所有逻辑卷及其大小、状态,通过lsvg -o
可按打开顺序列出卷组,适合快速检查卷组状态。(图片来源网络,侵删) -
df命令
df显示文件系统磁盘空间使用情况,df -g
以GB为单位显示,df -k
以KB为单位(默认),例如df -g /home
查看/home分区的使用率、已用空间、可用空间等,Use%
列超过90%需及时清理空间;df -i
查看inode使用情况,inode耗尽会导致无法创建新文件,即使磁盘空间充足。
网络监控命令
-
netstat命令
netstat监控网络连接、路由表、接口统计等信息。netstat -an
显示所有连接(-a
)并以数字形式显示地址和端口(-n
),可查看ESTABLISHED、LISTEN等状态连接数;netstat -i
显示网络接口统计,Ipkts
和Opkts
为收发包数,Ierrs
和Oerrs
为收发错误数,错误数过高需检查网卡或链路;netstat -s
显示网络协议统计,如TCP重传次数、UDP错误包数等。 -
nmon命令
nmon是专业的性能监控工具,可同时监控CPU、内存、磁盘、网络等资源,并将数据保存到文件供后续分析,执行nmon -f -t -s 10 -c 60
表示后台运行(-f
),监控所有资源(-t
),每10秒采样一次(-s 10
),共采样60次(-c 60
),生成.nmon
文件后可通过nmon analyser
工具生成可视化报表。
性能分析工具
-
tprof命令
tprof是进程级别的性能分析工具,可跟踪进程的系统调用、CPU使用、IO操作等,例如tprof -e all -x sleep 10
跟踪10秒内所有系统调用,并生成报告;tprof -o outputfile -p PID
指定进程ID进行跟踪,输出到outputfile文件,适合分析特定进程的性能瓶颈。 -
trace命令
trace用于跟踪系统调用、中断、IO等事件,语法为trace -[选项] [命令]
,例如trace -a -t -o trace.out sleep 1
跟踪系统调用(-a
),记录时间戳(-t
),输出到trace.out文件,执行sleep 1秒;trace -j
跟踪IO操作,通过分析trace.out可定位系统级性能问题。
相关问答FAQs
Q1: 如何通过vmstat判断系统是否存在CPU瓶颈?
A: 在vmstat输出中,重点关注r
(运行队列进程数)和us
、sy
(CPU使用率),若r
值持续大于系统CPU核心数,说明存在进程等待CPU资源,可能存在CPU瓶颈;若us
(用户态CPU)和sy
(系统态CPU)之和持续超过80%,且id
(空闲CPU)较低,表明CPU使用率过高,需结合topas查看具体高消耗进程,考虑优化或扩容。
Q2: 使用iostat发现磁盘%util接近100%时,应如何排查?
A: 磁盘%util接近100%表明磁盘IO繁忙,可能存在IO瓶颈,首先通过iostat -x 1 5
查看await
(平均等待时间)和svctm
(平均服务时间),若await
远大于svctm
,说明存在IO队列等待,可能是磁盘性能不足或并发IO过高;其次用filemon
或iosnoop
工具跟踪具体IO操作,定位是哪个进程或文件导致的IO压力;最后检查磁盘是否为RAID阵列,可通过lsvg -l
查看逻辑卷分布,考虑分散IO到不同磁盘或升级存储硬件。