AIX资源监控与调制工具.docx
《AIX资源监控与调制工具.docx》由会员分享,可在线阅读,更多相关《AIX资源监控与调制工具.docx(63页珍藏版)》请在冰点文库上搜索。
AIX资源监控与调制工具
AIX环境如何找到活动最频繁的进程
1。
下面命令输出中的'C'字段是一个进程的cpu-penalty值(0到120之间),值越大表明进程越活跃。
#psalxw|sort+5–n
2.显示前10个累计占用CPU时间的进程
#ps-e|head-n1;ps-e|grep-v"TIME|0:
"|sort+2b-3-n-r|head-n10
3。
显示前10个当前占用CPU时间的进程
#ps-ef|head-n1;ps-ef|grep-v"C|0:
00"|sort+3b-4-n-r|head-n10
4。
显示前10个占用CPU应用的进程
#psgu|head-n1;psgu|grep-v"CPU|kproc"|sort+2b-3-n-r|head-n10
AIX中有哪些常用日志文件
环境
产品,pSeries
软件版本,AIX4.3,AIX5L
问题
进行AIX的日常维护,需要关注哪些日志文件?
解答
在进行AIX的日常维护时,需关注的日志文件有:
文件
描述
建议
core和snapcore
由应用产生的dump文件, 可用于诊断错误
可删除
nohup.out
nohup命令的输出结果
可删除
.xerrors
X11的输出结果
可截短
mbox
用户邮箱中的邮件
可截短
smit.log和smit.script
用户使用smit命令后的日志
可适当保留最后1000行,或删除
/var/adm/wtmp
记录用户的登录信息,是二进制文件, 用who命令来阅读其内容
根据需要保留60天中有用的内容,其余删除
/etc/security/failedlogin
记录用户失败的登录信息,是二进制文件,用who命令来阅读其内容
可根据需要保留60天中有用的内容,其余删除
/var/adm/sulog
用户使用su命令的日志
可根据需要保留60天中有用的内容,其余删除
/var/adm/cron/log
cron 的日志
可截短
/var/tmp/snmpd.log
snmp监控进程日志
可截短
/var/tmp/dpid.log
/var/tmp/dpid2.log
/var/tmp/hostmidb.log
/var/tmp/muxatmd
snmp子系统日志
可截短
dead.letter
未成功的邮件
可删除
trcfiletrace
实用程序的输出
可删除
/var/adm/messages
用于记录syslog进程的日志
可适当保留最后1000行,或删除
/etc/shutdown.log
系统关机过程日志,用shutdown-l命令产生
可适当保留最后1000行,或删除
AIX资源监控与调制工具
性能优化以及确定系统中的性能瓶颈是系统管理员的主要任务之一。
在一个计算机系统中,CPU、内存、硬盘和网络是影响系统性能的主要因素,因此系统性能调整也主要在于如何在这些资源中获得某种平衡,以满足人们对系统性能的期望。
性能调制需要很多技巧,知识以及经验,不能仅靠分析统计数字,图表就可取得,性能调制有时是一件复杂甚至是非常困难的任务。
如同其它UNIX系统一样,AIX也给系统管理员剪裁系统提供了非常丰富的手段。
这里我们简单介绍RS/6000AIX系统中几个用于监控和调制多项系统资源的工具,每个工具的功能都很强,如想更透彻地了解这些命令的用法,请参考有关技术资料或手册。
这里讲述的命令将不仅仅局限于CPU、硬盘、内存或网络资源的某个方面,它们可用于其中的一项或多项资源。
AIX监控工具
1、iostat
iostat命令主要通过观察物理磁盘的活跃时间以及他们的平均传输速度,监控系统输入/输出设备负载。
根据iostat命令产生的报告,用户可确定一个系统配置是否平衡,并据此在物理磁盘与适配器之间更好地平衡输入/输出负载。
iostat工具的主要目的是通过监控磁盘的利用率(tm_act字段),而探测到系统中的I/O瓶颈。
iostat还可用于确定CPU问题,辅助容量规划,并可以为最终解决I/O问题提供相关材料。
vmstat和iostat联合使用,可捕获到确定与CPU,内存和I/O子系统有关的性能问题的必需数据。
iostat命令可产生下面四种类型的报告:
·tty和CPU利用情况
·磁盘的利用情况
·系统吞吐率
·适配器吞吐率
2、netpmon
netpmon命令可以监控关于网络行为的系统事件和性能以及网络行为对CPU的消耗。
netpmon命令在指定的监控周期报告网络行为。
netpmon启动后直至发布trcstop命令终止它之前,一直在后台运行。
如果使用缺省设置,trace命令将会在netpmon命令之后立即自动启动。
另外,netpmon中还可用trcon命令选择在后面的某个时间跟踪。
当这种跟踪用trcstop命令终止后,netpmon命令就会输出它的报告并退出。
缺省时报告会输出到标准输出,需要时也可以重定向到某个文件。
netpmon命令还可以在一次先前产生的跟踪中以脱机模式使用。
在这样的情况下,需要用gennames命令产生一个文件。
该文件必须在trace终止后立即产生。
所产生的报告中包括CPU使用情况、网络设备驱动器I/O情况、互联网络套接字调用,以及网络文件系统(NFS)I/O信息:
·CPUuse:
netpmon命令报告线程和中断处理器对CPU的使用情况。
该命令将网络相关行为的CPU使用情况与其它行为的CPU使用情况区分开。
·NetworkDeviceDriverI/O:
netpmon命令监控网络适配器上所通过的I/O统计。
·InternetSocketCalls:
netpmon命令在互联网络套接字上监控read,recv,recvfrom,write,send以及sendto子程序。
ICMP,TCP,UDP这几个协议的每个进程都会予以报告。
·NFSI/O:
netpmon命令监控客户NFS文件上的read和write子程序,NFS客户上的RPC请求以及NFS服务器的read和write请求。
3、PDT(性能诊断工具)
PDT通过收集和集中各种性能、配置和可用数据自动找出性能问题。
PDT评估系统的当前状态并跟踪系统在工作量和性能上的变化。
PDT数据收集和报告很容易起用,不需要更多的管理行为。
虽然许多常见的系统性能问题都有特定性,但PDT还试图用一些被认为性能好的系统中的通用概念来帮助它查找问题。
这些概念包括:
·资源的平衡使用
·在限定范围操作
·确定的工作量趋势
·无错误操作
·系统参数得到适当设置。
4、ps
ps命令是UNIX系统中最常见的命令,它主要显示系统中关于进程的统计和状态信息,如进程ID,I/O行为以及CPU利用率等。
利用ps命令提供的信息,可决定一个进程运行了多长时间,进程使用了多少CPU时间,以及进程是否受系统的惩罚。
还可用ps命令确定进程使用了多少内存,完成多少I/O,进程的优先级以及是谁创建了进程。
下面这几个命令组合对于管理RS/6000AIX系统有帮助:
(1)显示10个消耗CPU最多的进程:
#psaux|head-1;psaux|sort-rn+2|head–10
(2)显示10个消耗存储空间最多的进程:
#psaux|head-1;psaux|sort-rn+3|head-10
(3)按顺序显示系统中受罚的进程:
#ps-eakl|head-1;ps-eakl|sort-rn+5
(4)按优先级顺序显示系统中的进程:
#ps-eakl|sort-n+6|head
(5)按处理时间为顺序显示系统中的前十个进程:
#psvx|head-1;psvx|grep-vPID|sort-rn+3|head–10
(6)按实际内存使用的多少顺序显示系统中的前十个进程:
#psvx|head-1;psvx|grep-vPID|sort-rn+6|head–10
(7)按换入页面的多少顺序显示系统中的前10个进程:
#psvx|head-1;psvx|grep-vPID|sort-rn+4|head-10
5、vmstat
vmstat命令报告关于核心线程,虚拟内存,自陷(trap),磁盘以及CPU行为的统计。
而且每种行为报告都被更细致地用百分比分别表示用户态、核态、空闲以及等待磁盘I/O等情况。
内核维持了对核心线程,换页以及中断行为的统计数据,而vmstat命令则通过使用knlist子程序和/dev/kmen伪设备驱动器访问这些数据。
磁盘的输入/输出统计是通过设备驱动器维持的。
对于磁盘,平均传输速度是通过使用活跃时间核传输信息数目决定的。
而活跃时间百分比则是从报告期间驱动器忙的时间量计算出来的。
vmstat命令产生五种类型的报告:
·虚存行为报告
·fork子进程情况报告
·每个设备产生的中断情况报告
·汇总报告
·输入/输出行为报告
6、sar
sar命令报告CPU的使用情况,I/O以及其它系统行为。
sar命令可以收集,报告以及保存系统行为信息。
如果没有指定输入文件,则sar调用sarc命令访问系统数据。
用户可用让cron命令运行两个shell脚本(/usr/lib/sa/sa1和/usr/lib/sa2)以提供日统计和报表。
在crontab文件/var/spool/cron/crontabs/adm中包括了一些样本节,用于示范cron要在何时运行这些shell脚本。
以这种方式收集到的数据对于确定系统的时间周期特征和决定峰值使用时间是有用的。
但要注意的是,sar命令自己运行时会产生相当数量的读写。
因此最好在没有工作量的情况下运行sar统计,看看sar对总的统计数字有多大的影响。
7、topas
topas命令用于监控各种系统资源,如CPU的使用情况,CPU事件和队列,内存和换页空间的使用,磁盘性能,网络性能以及NFS统计等。
它还会报告指派给不同WLM类的进程对系统资源的消耗情况。
它还能报告系统中最热门的进程和工作量管理器(WLM)的热门类。
有关WLM类信息只有在WLM激活时才会显示。
topas命令将热门进程定义为那些使用大量CPU时间的进程。
topas命令没有作日志的选项,所有信息都是实时的。
topas命令利用SystemPerformanceMeasurementInterface(SPMI)API获得有关信息。
正是因为通过SPMIAPI,使系统开销保持在最小程度。
topas命令使用perfstat库调用访问perfstat内核扩展。
8、truss
truss命令跟踪一个进程的系统调用、所接收的信号以及招致的机器错。
要检查的应用程序可在truss命令的命令行中指定,也可将truss命令挂在一个或多个已经在运行的进程上。
AIX调制工具
1、fdpr
fdpr命令改进用户级程序和库的执行时间和对实际内存的使用。
fdr命令可以通过不同的操作,如删除不必要的指令和重组代码和数据,而实现这样的目标。
fdr命令安装在目录/usr/bin下。
fdpr命令在三个不同阶段上,对原有的执行代码应用先进的优化技术从而为其构筑一个优化的可执行代码。
这三个阶段分别是:
·在阶段1,fdpr创建一个增加了某些装置(instrumented)的可执行程序。
原有的可执行程序被保存为__ProgramFile.save,而新版本被命名为__ProgramFile.instr。
·在阶段2,fdpr运行该增加了某些装置的可执行程序,并收集摘要(profiling)数据。
该摘要数据被保存在一个叫__ProgramFile.prof的文件中。
运行执行程序时需要为它提供典型的输入数据,以使fdpr命令能够找出代码中可优化的部分。
·在阶段3,fdpr命令使用阶段2中收集到的重要信息对可执行代码重新排序。
这些重新排序涉及到这样一些任务:
(1)将那些高频度执行代码序列包装在一起。
(2)对条件分之重新排序,以改进硬件对分之条件的预测。
(3)将较少使用的代码部分移出来。
(4)内嵌一些热门函数。
(5)从重排序后的代码中删除掉NOP(空操作)指令。
另外,编译器中还提供了一个-qfdpr标志,用它可使编译器在执行代码中增加一些额外的信息,以辅助fdpr对该执行代码重新排序。
但是,如果使用这个-qfdpr标志,则fdpr也只对那些用-qfdpr标志编译的模块重新排序。
2、schedtune
schedtune命令可以给抖动、进程挂起、时间片以及线程在锁上所能轮询的时间长度等设置准则。
用schedtune,可调整AIX中所设立的一组影响其内存负载控制机制的参数。
Schedtune命令用于显示和修改那些用于检测系统内存是否在过度使用以致造成抖动的参数。
Schedtune命令还能用于修改运行在系统上的进程的惩罚和衰减因子。
在root用户下,用schedtune命令可做下面的事情:
· 决定用于确定抖动的准则。
· 决定哪个准则用于挂起进程。
· 决定在抖动终止后要等待多长时间才重新激活那些先前被挂起的进程。
· 决定被挂起的进程的最小数目。
· 调制调度优先级公式。
· 更改时间片数值。
· 决定在一把锁上轮询多长时间。
· 将schedtune值复位到它的缺省值。
需要注意的是,所有用schedtune作的修改在系统重启后都将丢失。
为了确保所需的schedtune值在引导时能够置上,可在/etc/inittab文件中插入适当的schedtune命令。
如:
schedt:
2:
once:
/usr/samples/kernel/schedtune-s65536
3、vmtune
vmtune命令负责显示和调整虚存管理器(VMM)和其它AIX部件使用的参数。
系统中的根用户可动态修改包括下面这些参数:
· VMM页替换
· 永久文件读写
· 文件系统缓冲区结构(bufstructs)
· LVM缓冲区
· 裸输入/输出
· 换页空间参数
· 页删除
· 内存固定参数
pTools--进程监控的一组工具
环境
产品:
AIX
平台:
pSeries,AIX
软件版本:
AIX5.2
问题
pTools是AIX5.2中引进的SystemVUNIX提供的一组极有用的工具,用于查看进程相关的信息。
解答
pTools是AIX5.2中引进的SystemVUNIX提供的一组极有用的工具,用于查看进程相关的信息。
包括命令:
procwdx,procfiles,procflags,proccred,procmap,procldd,
procsig,procstack,procstop,procrun,procwait,proctree
其中:
procwdx--显示进程的当前工作目录。
如:
#procwdx4448
4448:
/var/spool/mqueue/
procfiles--显示该进程打开的所有文件描述字的信息。
如:
#procfiles-n4448
4448:
sendmail:
acceptingconnections
Currentrlimit:
2000filedescriptors
5:
S_IFCHRmode:
00dev:
10,4ino:
4237uid:
0gid:
0rdev:
2,1
procfiles:
4448:
5:
Unabletoretrievefstat/fcntlinformation
4448:
sendmail:
acceptingconnections
Currentrlimit:
2000filedescriptors
7:
S_IFREGmode:
0444dev:
10,5ino:
80754uid:
0gid:
0rdev:
2,5020
procfiles:
4448:
7:
Unabletoretrievefstat/fcntlinformation
..............................
procflags--显示/proc跟踪标记,包括等待和处理的信号量。
如:
#procflags4448
4448:
sendmail:
acceptingconnections
datamodel=_ILP32flags=PR_FORK
/12913:
flags=PR_ASLEEP|PR_NOREGS
proccred--显示拥有该进程的有效及实际用户ID,及保留的用户和组ID(setuid及setgid)。
如:
#proccred4448
4448:
e/r/suid=0e/r/sgid=0
procmap--显示进程地址空间。
如:
#procmap4448
4448:
sendmail:
acceptingconnections
100000001005Kread/execsendmail
200003f0241Kread/writesendmail
d007f10079Kread/exec/usr/lib/libiconv.a
20252bf041Kread/write/usr/lib/libiconv.a
d007610033Kread/exec/usr/lib/libi18n.a
202501904Kread/write/usr/lib/libi18n.a
d007300011Kread/exec/usr/lib/nls/loc/en_US
2024d1308Kread/write/usr/lib/nls/loc/en_US
d009310071Kread/exec/usr/lib/libodm.a
f013922021Kread/write/usr/lib/libodm.a
d00be10067Kread/exec/usr/lib/libsrc.a
d01cdbe01941Kread/exec/usr/lib/libc.a
..............
Total5507K
procldd--显示加载的动态进程列表。
如:
#procldd4448
4448:
sendmail:
acceptingconnections
/usr/lib/libiconv.a
/usr/lib/libi18n.a
/usr/lib/nls/loc/en_US
/usr/lib/libodm.a
/usr/lib/libsrc.a
/usr/lib/libc.a
procsig--显示进程对各种信号量的处理。
如:
#procsig4448
4448:
sendmail:
acceptingconnections
HUPcaughtRESTART|SIGINFO
INTcaughtRESTART|SIGINFO
QU99vdefaultRESTART
ILLdefaultRESTART
TRAPdefaultRESTART
ABRTdefaultRESTART
EMTdefaultRESTART
FPEdefaultRESTART
KILLdefault
BUSdefaultRESTART
SEGVdefaultRESTART
SYSdefaultRESTART
PIPEignoredRESTART|SIGINFO
ALRMcaughtRESTART|SIGINFO
TERMcaughtRESTART|SIGINFO
...........................................
UVTALRMdefault
MIGRATEdefault
PREdefaultRESTART
VIRTdefault
ALRM1default
WA99vINGdefaultRESTART
CPUFAILdefault
KAPdefault
RETRACTdefault
SOUNDdefault
SAKdefault
procstack--显示进程中当前线程的堆栈中的符号名和十六进制地址。
如:
#procstack4448
4448:
sendmail:
acceptingconnections
d024fdf0select(?
?
?
?
?
)+90
1000ec24getrequests(?
)+714
1000051cmain(?
?
?
)+29a8
10000100__start()+8c
procstop--将进程暂停。
如:
procstop51202
procrun--启动用procstop停止的进程。
如:
procrun51202
procwait--等待所指定的进程结束。
如:
procwait51202
proctree--显示进程调用的树型结构。
如:
#proctree4448
11452/usr/sbin/srcmstr
4448sendmail:
acceptingconnections
JFS--日志文件系统如何处理磁盘布局
本文描述磁盘日志文件系统(JFS)布局,以及使用磁盘布局结构来实现可扩展性、可靠性和性能的机制。
还会了解用来操作这些结构的策略和算法,以及JFS是在哪里使用遍布文件系统的B+树来提高文件系统操作性能。
JFS体系结构可通过其磁盘布局特性的上下文进行说明。
磁盘布局是JFS用来控制文件系统的格式。
本文讨论盘区的文件几何构造、目录格式、块分配映射表格式、inode和布局结构的其它特性。
本文还提供了文件布局使用的B+树数据结构的细节和示例。
选择B+树是为了提高读写盘区的性能,这是JFS执行的最普通操作。
分区、聚集、分配组、文件集
这里是磁盘布局的“全景图”。
分区
JFS文件系统建立在分区上,分区是由FDISK导出到JFS的抽象。
分区有:
固定分区块尺寸,其合法值为512、1024、2048或4096字节。
分区块尺寸定义了分