AIX CPU负载评估方式及使用方法
topas(aix)命令详解

区域1:反映CPU使用率和工作状况。
Kernel:说明:操作系统的内核占用的CPU时间比率。
操作系统作为基础软件,为应用程序支持和服务的同时,本身的运行也需要一定的CPU和内存资源(顺便提到内存资源,后面不再阐述这个内容了),特别是内存资源,系统负载越重,相应的内核占用的CPU 和内存资源也会越多。
一般来说,内核占用的CPU时间不会太多的。
一般小于应用的CPU使用率。
User:说明:用户进程占用的CPU时间比率。
这个为CPU使用率的关键数值。
该使用率反映了用户在操作系统基础上运行的各种软件占用的CPU时间比率的总和。
一般来说,如果User+Kernel连续大于70%,即可以认为系统可能存在CPU上的严重性能问题。
而我们的实际维护工作中,如果发现某一个CCCC主机(bjdb0261,bjdb0271除外,这两个主机的负载一直比较高)的User+Kernel大于30%,就要看看下面的第四区域,看看是不是有进程持续占用了大量的CPU资源,例如,某一个交易处理程序的CPU使用率持续在20%左右(曾经发生过)。
Wait说明:CPU处于等待状态占CPU时间的比率。
CPU的等待一般都为等待IO的响应,众所周知,目前计算机的主要瓶颈都在IO。
应用程序执行的时候,需要读写磁盘等外部存储的数据,进程就会发起IO请求后等待IO完成。
这个等待的过程占用CPU时间就是wait。
当这个值很高的时候,就说明IO来不及响应很多的IO请求,这个时候,就只能从IO层面想办法优化了。
Idle:说明:CPU空闲时间比率,这个就不用说了吧。
就是CPU多少时间比率在闲着。
CPU占用率出问题的主要可能原因:数据库服务器执行某一个SQL或者存储过程(存储过程就是封装起来的sql程序包而已)需要大量的运算(一般为软件设计不合理)。
或者应用程序中存在异常的地方,比如死循环,或者其他写程序时的逻辑错误导致。
一般程序出错会导致一个CPU被全部占用,比如上述的20%占用的原因就是一个交易程序长期占用一个CPU全部时间片(系统共计5个CPU)。
获取cpu运行负载的方法

获取cpu运行负载的方法如何获取CPU运行负载的方法CPU运行负载是指CPU在某个时间段内所执行的工作量。
了解CPU的负载情况对于系统性能优化、资源管理和故障排查等方面都至关重要。
本文将介绍一些常用的方法来获取CPU的运行负载情况,并详细说明每种方法的步骤和使用场景。
一、操作系统自带工具检测CPU运行负载大部分操作系统都提供了自带工具来监测CPU的负载情况。
下面我们将以Linux系统为例,介绍如何使用一些常见的操作系统自带工具来获取CPU的运行负载情况。
1. top命令top命令是Linux系统中一个常用的命令行工具,可以实时查看系统资源的使用情况,包括CPU利用率。
可以通过键盘输入top命令来启动这个工具。
在top命令的输出结果中,可以查看到当前CPU的使用情况,包括用户使用CPU的百分比、系统使用CPU的百分比、空闲CPU的百分比等。
通过top命令,可以直观地了解当前CPU的负载情况,并对系统资源进行监控。
2. sysstat工具包sysstat是一个系统状态监控工具包,它包含了一系列用来获取系统性能数据的工具命令。
其中的sar命令可以获取系统关键资源的使用情况,包括CPU的利用率。
通过sar命令,可以获取到CPU每个核心的使用情况,以及平均负载等信息。
二、第三方工具检测CPU运行负载除了操作系统自带的工具,还有一些第三方工具可以用于检测CPU的运行负载情况。
这些工具通常提供了更丰富的功能和更详细的信息。
1. PerfPerf是一个功能强大的Linux性能分析工具,可以用于获取CPU的性能数据。
通过perf命令,可以获取到CPU的使用情况、指令的执行情况、缓存的命中率等性能信息。
Perf的使用比较复杂,需要对性能分析有一定的了解,但是它提供了非常详细和准确的数据。
2. GlancesGlances是一个跨平台的系统监控工具,可以实时监测系统的各种资源使用情况,包括CPU、内存、磁盘、网络等。
AIX 5.3主机性能评估-磁盘的IO性能评估

AIX 5.3主机性能评估-磁盘的I/O性能评估磁盘的I/O性能评估对磁盘IO的性能考虑:1)将频繁访问的文件系统和裸设备应尽可能放置在不同的磁盘上。
2)在建立逻辑卷时尽可能使用mklv的命令开关给不同的文件系统和裸设备赋予不同的内策略。
3)使用磁盘设备驱动适配器的功能属性构建合适的RAID方式,以获得更高的数据安全性和存取性能。
一般考虑采用RAID5或者RAID10方式,对于写要求比较高的系统,一般建议采用RAID10方式;关于RAID10 与RAID 5的比较,可以见piner的文章,作为补充我会在后面贴出。
4)尽可能利用内存读写带宽远比直接磁盘I/O操作性能优越的特点,使频繁访问的文件或数据置于内存中进行操作处理;社区论坛在这里,顺带提一下裸设备以及文件系统的对比。
裸设备的优点:1)由于旁路了文件系统缓冲器而进行直接读写,从而具有更好的性能。
对硬盘的直接读写就意味着取消了硬盘与文件系统的同步需求。
这一点对于纯OLTP系统非常有用,因为在这种系统中,读写的随机性非常大以至于一旦数据被读写之后,它们在今后较长的一段时间内不会得到再次使用。
除了OLTP,raw设备还能够从以下几个方面改善DSS应用程序的性能:排序:对于DSS环境中大量存在的排序需求,raw设备所提供的直接写功能也非常有用,因为对临时表空间的写动作速度更快。
序列化访问:raw设备非常适合于序列化I/O动作。
同样地,DSS中常见的序列化I/O(表/索引的完全扫描)使得raw设备更加适用于这种应用程序。
2)直接读写,不需要经过OS级的缓存。
节约了内存资源,在一定程度上避免了内存的争用。
3)避免了操作系统的cache预读功能,减少了I/O。
4)采用裸设备避免了文件系统的开销。
比如维护I-node,空闲块等。
裸设备的缺点:1、裸设备的空间大小管理不灵活。
在放置裸设备的时候,需要预先规划好裸设备上的空间使用。
还应当保留一部分裸设备以应付突发情况。
AIX 6.1 工作负载分区

工作负载分区(WPAR) 是AIX® 6.1 中一种新的虚拟化特性。
本文将帮助您确定WPAR 是否适合于您的AIX工作负载,然后逐步地指导您如何了解更多关于WPAR 的信息,并开始使用它们。
AIX 6.1 中的工作负载分区入门如果您是一名负责维护和使用I BM® System p™ 服务器的系统管理员,那么您可能对使用逻辑分区(LPAR) 的虚拟化和服务器整合比较熟悉。
使用硬件管理控制台(Hardware Management Console,HMC)或者集成虚拟管理器(Integrated Virtualization Manager,IVM),您可以迅速地定义新的LPAR、安装AIX® 或者Linux®、配置您的操作系统、安装各种应用程序,然后启动新的虚拟服务器。
AIX 6.1 引入了一种新的虚拟化机制:工作负载分区(WPAR)。
在本文中,您将了解有关WPAR 的基础知识、它们与LPAR 之间的不同之处,以及如何快速而方便地在您的AIX 6.1 系统中尝试使用它们。
本文还提供了根据经验获得的一些基本规则,以帮助您选择最适合于您的虚拟化方法,并分步指导您创建第一个WPAR。
然后,您将研究一些附加的生命周期管理任务,您可以通过AIX 命令行或者系统管理界面工具(SMIT) 来执行这些任务。
因为本文的目的是提供概要性的介绍,所以您将看到相关信息的链接,这些信息可以帮助您了解这种新技术的所有技术细节。
最后,您将回顾一些更高级的WPAR 特性,包括使用一种新的管理工具IBM Workload Partitions Manager for AIX(WPAR 管理器)实现动态应用程序迁移(将正在运行的、基于WPAR 的应用程序从一个AIX 系统迁移到另一个AIX 系统的能力)。
什么是WPAR 呢?与LPAR(在服务器的固件级别进行创建和管理)有所不同,AIX WPAR 是一些软件分区,这些分区由AIX 操作系统的单个实例进行创建,并共享该实例的资源。
AIX小型机系统监视工具参数详解和调整内存的使用综述

1、监视和调整内存的使用一个系统的内存通常会几乎被占满。
即使当前运行的程序没有消耗掉所有的内存,操作系统也会将较早运行的程序和它们所使用的文件的文本页面驻留在内存。
这样的驻留并没有任何的开销,因为内存无论如何都不会去使用这一段内存。
在许多情况下,程序或者文件将会被再次用到,这样可以减少磁盘的输入输出。
检测有多少内存正被使用一些测试性能的工具提供了内存使用的报告。
我们最感兴趣的报告是由 vmstat ,ps ,和svmon 命令提供的。
vmstat 命令(内存)vmstat命令概括了系统中所有进程所使用的活动的虚拟内存,同时还有空闲列表上实际内存页的数量。
活动的虚拟内存被定义为虚拟内存中实际可以得到的工作的段页的数量(参考页面后分配中的定义)。
这个数字可能大于机器中实际页面的帧,因为一些动态虚拟内存也可能写到字分页空间以外去。
在检测内存是否短缺或者是否有需要调优内存,一系列时间间隔里输入vmstat命令,在结果报告中检验 pi 和 po 栏。
这两栏表明了每秒页面调入的页数和每秒调出的页数。
如果该值经常为非零值,说明可能存在内存瓶颈。
偶尔出现的非零值不用在意因为页面调度是虚拟内存的主要原理。
# vmstat 2 10kthr memory page faults cpu----- ----------- ------------------------ ------------ -----------r b avm fre re pi po fr sr cy in sy cs us sy id wa1 3 113726 124 0 14 6 151 600 0 521 5533 816 23 13 7 570 3 113643 346 0 2 14 208 690 0 585 2201 866 16 9 2 730 3 113659 135 0 2 2 108 323 0 516 1563 797 25 7 2 660 2 113661 122 0 3 2 120 375 0 527 1622 871 13 7 2 790 3 113662 128 0 10 3 134 432 0 644 1434 948 22 7 4 671 5 113858 238 0 35 1 146 422 0 599 5103 903 40 16 0 440 3 113969 127 0 5 10 153 529 0 565 2006 823 19 8 3 700 3 113983 125 0 33 5 153 424 0 559 2165 921 25 8 4 630 3 113682 121 0 20 9 154 470 0 608 1569 1007 15 8 0 770 4 113701 124 0 3 29 228 635 0 674 1730 1086 18 9 0 73注意到输出列队里的高输入输出等待,也注意到阻塞队列里线程的数量。
AIX 5L CPU性能优化

AIX 5L 性能优化,第 1 部分: 监视 CPUCPU 概述、考虑事项和调整方法2007 年 6 月 04 日就在您认为即将面对普通的一天时,您接到一个电话,并且听到了大多数AIX®管理员都非常忌惮的一句话。
那句话就是:“系统为什么这样慢?”如果您已经做好了准备,那么回答此类问题会比较简单。
关于本系列本系列文章由三部分组成,重点介绍中央处理器 (CPU) 性能和监视的各个方面。
本系列文章的第一部分概述了有效监视 CPU 的方法,讨论性能优化的方法,并从正反两方面考虑可能影响性能的因素。
本系列文章的第一部分虽然详细说明了一些命令,但第二部分将更集中于实际 CPU 系统监视的细节,以及分析趋势和结果。
第三部分则专注于通过主动控制线程使用和其他方法在最大程度上优化您的 CPU 性能。
在整个系列文章中,我还将详细说明AIX®CPU 性能优化和监视方面的各种最佳实践。
引言作为一名 AIX 管理员,您应该已经了解性能优化的一些基础知识。
您很可能已经在使用各种命令,如 vmstat 或topas,并且熟悉识别占用大量 CPU 资源的进程的方法。
有一点您可能并不了解,CPU 性能优化不仅仅是关于运行某些命令,它还涉及主动监视您的系统,特别是在不存在性能问题时。
本文介绍 CPU 性能优化的方法,并提供经过时间验证的步骤,可以帮助您完成整个优化过程。
在本文中,我将介绍您可能希望使用的一些监视工具,概述 POWER 芯片和可能会影响性能的考虑因素。
即使对于大多数资深管理员来说,虚拟化环境中的性能也带来了一种挑战,因此我还会详细说明虚拟化环境中的特定问题,包括同步多线程 (SMT)、虚拟处理器以及 POWER Hypervisor。
我还将讨论在调整 CPU 的过程中需要特别关注的领域,包括调整调度程序、平衡系统负载,以及更改调度程序的算法以优化优先级公式。
在调查性能问题时,从监视 CPU 使用率的统计数据入手。
AIX 性能调优-内存、CPU篇

AIX 性能调优-内存、CPU篇sar -P ALL cpu使用情况sar -a 文件访问情况dirblk/s 定位文件时被目录访问守护进程读取的快(512b)的个数iget/s i节点查找系统进程被调用次数lookuppn/s 目录查找进程找到v节点,并获取路径名的次数sar -b buffer的活动情况,包括传输、访问、和命中率bread/s、bwrit/s 块IO操作的数量lread/s、lwrit/s 逻辑 IO请求的个数pread/s、pwrit/s 裸设备IO操作数量%rcache、%rwrit cache命中率,计算共式为:((lreads-breads)/lreads)*100sar -c 系统调用情况exec/s、fork/s 调用和执行系统调用总数sread/s、swrit/s read/writ 系统调用次数rchar/s、wchar/s 被read/writ系统调用的字符数量scall/s 系统调用总数sar -k 内核进程活动情况kexit/s 中断的内核进程数kproc-ov/s 由于进程数的限制无法创建内核进程的次数ksched/s 被作业分派的内核进程数sar -m 消息队列和信号灯活动情况msg/s IPC消息队列活动情况sema/s 信号灯活动情况sar -d 磁盘读写情况sar -q 队列统计信息run-sz 内核线程处于运行队列的平均数%runocc 最近时间段运行队列占用百分比swpq-sz 内核线程等待页面调度的平均数%swpocc 交换队列最近活动情况sar -r 页面调度信息cycle/s 每秒中页面置换次数fault/s 每秒中page fault次数slots 在页空间中空闲页数量odio/s 每秒中不使用页面空间的磁盘io数sar -v 进程、内核线程、i节点、和文件表的状态sar-w 上下文切换次数sar -y tty设备活动情况canch/s tty输入队列中规范的字符数mdmin/s tty modem 中断outch/s 输出队列字符数rawch/s 输入队列字符数revin/s tty接收中断xmtin/s tty传输中断如果CPU的使用率接近100%(usr+system),可以视为是CPU瓶颈。
AIX性能问题诊断及调优

在AIX日常运维中,性能问题一直是一个很重要的问题,为了让操作系统能正常平稳高效的运行,便需要一些武功秘籍来进行快速定准并解决问题,本次我们便来讨论一下我们可以用到的武功秘籍。
所谓性能问题,主要几种在CPU、内存、I/O三个大类别,因此我们分类进行讨论。
类别一:CPU检查系统的三把斧头一招便是topas,这个是最常用也是最有效的一招,通过topas的输出可以看到CPU的使用情况。
从topas的输出我们主要关注如下4个指标:那么判定系统忙不忙的一个指标为Idle%,正常情况下,Idle%的值如果低于10%,则这个系统的CPU就需要注意了,此时关注一下是User%高还是Kern%高,如果是User%高,则说明是应用程序占用CPU较多,反之则说明操作系统本身占用CPU较高。
(但是请注意:并不是所有Kern%高都是操作系统本身导致的,也有可能是应用程序调用了系统本身的函数,这样也会把这部分消耗算在Kern%头上)在拍完第一板斧后,我们继续向下分析,拍第二板斧trpof,这个可以理解为精简版的trace,一般情况下执行这个命令对系统负载影响不太大,因此可以用这个工具先粗略看一下相关的进程。
通过tprof可以看出占用CPU排名靠前的进程。
如果root cause还没有找到,那么便使出大招,收trace数据。
在收集trace 数据前请先注意以下原则:①收集trace数据会对当前系统的负载有影响,在CPU已经达到99%时,再收集trace有可能把操作系统搞夯。
②一定要等到问题重现时收集trace,由于trace产生的数据量巨大,因此要收集有效时间段的trace。
如果不确定问题什么时候重现,可以写个判断脚本,收集循环trace。
③用root用户进行trace收集④需要预估trace数据的大小,然后根据预估的空间,在操作系统上找一个空间较大的地方存放数据。
trace数据的大小可以用下列公式算出:预估数据大小=逻辑CPU的个数* 10MB(其中逻辑CPU的个数可以用vmstat | grep -i lcpu命令查看)在执行完上述收集命令后,会生成trace的raw文件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
观测到的每秒系统调用次数。
cs
观测到的每秒钟上下文切换次数。
Cpu
us
用户模式所消耗的CPU时间。
sy
系统模式所消耗的CPU时间。
id
没有未决本地磁盘I/O时CPU空闲或等待时间的百分比。
wa
有未决本地磁盘I/O时CPU空闲的时间百分比。wa的值如果超过25%,就表明磁盘子系统可能没有被正确平衡,或者这也可能是磁盘工作负荷很重的结果。
msg/s
报告IPC消息原语的数量。
sema/s
报告IPC信号量原语的数量。
sar –c 1 30
报告系统调用。
scall/s
报告系统调用的总数。
exec/s
报告exec系统调用的总数。
fork/s
报告fork系统调用的总数。
sread/s
报告读系统调用的总数。
swrit/s
报告写系统调用的总数。
rchar/s
free值比较大,pi,po为0,表明内存非常富裕。空闲较多。
如果r不大于b,通常是CPU问题的症状,这可能是由于I/O或者内存瓶颈造成的。
SAR
基本用法:sar 1 10
sar 110
sar命令输出的是一个整体的cpu使用情况的一个统计。
第一行统计信息包含了sar命令本身启动的cpu消耗,所以往往是偏高的。
tprof -x sleep 30
在当前目录下生成sleep.prof文件。报告每个进程占用CPU的情况。
Total
表示该进程被占用CPU的次数。次数高则表示该进程占用CPU时间多。
PS
基本用法:ps aux |head -20
ps aux |head -20
查看cpu占用最高的前20个进程。Wait表示空闲不算。
将结果保存到/tmp/aa文件中。查看文件用sar –f /tmp/aa
sar 1 30 -o /tmp/aa > /dev/null &
后台方式执行
IOSTAT
基本用法:iostst -t110
iostst -t110
avg-cpu项报告cpu使用状况
T
基本用法:tprof -x sleep 30
po
从内存交换到磁盘的交换页数量,4KB/页。如果窃取的工作也在调页空间中不存在或者已经作了修改,则写入调页空间中。如果不被再次访问,它会留在调度空间中直到进程终止或者放弃空间。
fr
根据页面替换算法每秒释放的页数。当VMM页面替换例程扫描页面帧表(Page Frame Table,PFT)时,它会根据一些条件选取需要窃取的页面以补充空闲列表。该条件中包含工作页面和计算页面,释放的页面中,计算页面不产生I/O,工作页面如果数据没有发生修改,也不需要写回磁盘,也不会产生I/O。
lcpu=2
表示cpu数量为2
%idle
报告CPU为空闲(且没有未完成的I/O请求)所占的时间百分比。
%sys
报告CPU在系统(或内核)级别上执行所花费的时间的百分比。
%usr
报告CPU在用户(或应用程序)级别上执行所花费的时间的百分比。
%wio
报告CPU空闲(但系统有未完成的磁盘/NFS I/O请求)所占的时间的百分比。
对于有时间间隔的命令,可以采用每n分钟报告一次,连续报告n个小时的方式,将报告文件写入文件。
对于无时间间隔的命令,可以用contab的方式,设置每5分钟(或10分钟)报告一次的方式来跟踪。
报告逻辑I/O请求的数量。
pread/s
报告对裸设备的I/O操作的数量。
pwrit/s
报告对裸设备的I/O操作的数量。
%rcache
报告高速缓存的效率(高速缓存命中百分比)。
%wcache
报告高速缓存的效率(高速缓存命中百分比)。
sar –m 1 30
报告每秒消息(发送和接收)以及信号量(创建、使用或破坏)活动
综合分析
如果在一个多用户系统中,us + sy时间超过80%,我们就认为系统的CPU是受限的。其中的进程将要花时间在运行队列中等待。响应时间和吞吐量会受损害。
检查cpu,主要关注4个cpu列和2个kthr(内核线程)列。
CPU IDLE比较高,比较空闲;r列为0,表明线程不存在等待。
WA值不高,说明I/O压力不大。
报告读系统调用传送的字符总数。
wchar/s
报告写系统调用传送的字符总数。
sar -k 130
报告内核进程活动
kexit/s
报告每秒内核进程终止数。
kproc-ov/s
报告由于实施进程阈值限制而不能创建内核进程的次数。
ksched/s
报告每秒分配执行任务的内核进程数。
sar 1 30 –o /tmp/aa
memory
avm
表示活动虚拟内存的页面数,每页一般4KB。
fre
空闲的页面数,每页一般4KB。
page
re
pi
从磁盘交换到内存的交换页(调页空间)数量,4KB/页。调页空间是驻留在硬盘上的虚拟内存的一部分。当内存使用过量时,会将溢出的工作组页面存储到调页空间中(窃取页)。当进程访问一个窃取页时,就产生了一个缺页故障,而这一页页必须从调页空间中读入到内存中。
read/s
读的数量
write/s
写的数量
blks/s
块的数量(512字节/块)
sar –b 1 30
报告缓冲区活动中每秒用于传输、存取以及高速缓存(内核块高速缓存)的命中率。
bread/s
报告I/O操作的块的数目。
bwrit/s
报告I/O操作的块的数目。
lread/s
报告逻辑I/O请求的数量。
lwrit/s
CPU负载评估方式及使用方法
VMSTAT
基本用法:vmstat 1 10
Lcpu=2
表示cpu数量为2
Mem=512MB
物理内存为512M
kthr
r
表示可运行的内核线程平均数目,包括正在运行的线程和等待CPU的线程。如果这个数字大于状态的进程数。包括正在等待文件系统I/O的线程,或由于内存装入控制而被挂起的线程。
sar –P ALL 1 30
分CPU显示每个CPU的情况
sar –P 0 1 30
显示第一个CPU的情况
sar –P 1 1 30
显示第二个CPU的情况
其他用法
sar –d 1 30
报告每个块设备的活动。
%busy
报告设备忙于执行传输请求所用的那一部分时间
%avque
该段时间内未完成的请求的平均值。
sr
根据页面替换算法每秒所检查的页数。sr值比fr值高的越多,说明替换算法要查找可以替换的页面就越困难。
cy
每秒页面替换代码扫描了PFT多少次。因为增加空闲列表达到maxfree值,不一定需要完全扫描PFT表,而所有vmstat输出都为整数,所以通常cy列值为0。
fault
in
观测到的每秒设备中断数。