aix 查看物理物理cpu状态 用mpstat只能查看虚拟出的逻辑CPU状态,有没有其他命令可以查看物理CPU

aix 查看物理物理cpu状态 用mpstat只能查看虚拟出的逻辑CPU状态,有没有其他命令可以查看物理CPU,第1张

# prtconf
System Model: IBM,7028-6C4 (P630)
Machine Serial Number: 65D65AA
Processor Type: PowerPC_POWER4
Number Of Processors: 2 -----这个是物理CPU核数
Processor Clock Speed: 1200 MHz
CPU Type: 64-bit
Kernel Type: 64-bit
LPAR Info: 1 NULL
Memory Size: 4096 MB
Good Memory Size: 4096 MB
Firmware Version: IBM,RG030701_d61e02_s
Console Login: enable
Auto Restart: false
Full Core: false

topas
配合sql语句:select sessid from v$session ses, v$process pro where prospid=从top中得到spid and sespaddr=proaddr;
如果是sql问题然后再关系v$sql

aix是怎么样计算 cpu 使用率的呢!我来教你!下面由我给你做出详细的aix计算cpu使用率 方法 介绍!希望对你有帮助!

aix计算cpu使用率方法一:

使用CPU的处理能力基准计算实时CPU占用率

具体描述:

(1) 在RTOS系统启动前, 使用Tick中断测试CPU的处理能力基准 CPUPerformanceBase;

(2) 在系统进入运行后, 使用空闲任务执行与测试CPU处理能力基准完全相同的算法, 得到RTCPUPerformance

(3) 周期地计算CPU占用率, 并清除RTCPUPerformance的值, 一般每秒钟计算一次:

RealTime CPU Load = 1 - (RTCPUPerformance/CPUPerformanceBase) 100%

优点:

(1) 实现简单

(2) 所得到的CPU占用率非常准确, 误差只取决于CPUPerformanceBase的测试结果和整除时的余数, 通常误差小于1%

(3) 不占用硬件资源

缺点:

(1) CPU必须一直全速运行, 不能修改CPU主频, 也不能使CPU进入掉电保护模式

(2) 不能得到系统中每个任务对CPU占用率的贡献

(3) 必须有一个空闲任务才能计算

评价:

这个算法只适用于工控, 电信等对不需要使CPU进入掉电保护模式的领域

方法2: 在Tick中断中对RTOS中的任务进行采样

具体描述:

(1) 系统进入运行后, 每次Tick中断发生时, 采样一下当前正在执行的任务, 如果CPU处于HALT态, 累加haltTimes

(2) 周期性地计算CPU占用率, 一般每秒钟计算一次, 并清除haltTimes:(tickIntFrequance表示Tick中断的发生频率)

RealTime CPU Load = haltTimes / tickIntFrequance

某个任务对CPU占用率的贡献 = 一个周期内该任务被采样到的次数 / tickIntFrequance 100%

优点:

(1) 实现简单

(2) 支持CPU掉电模式

(3) 可以大致得到每个任务对CPU占用率的贡献

缺点:

(1) 误差取决于Tick的频率和OS中每个任务的运行时长, 因此误差非常大

评价:

这个算法适用于对CPU占用率精度要求不高的消息电子产品

方法3: 精确计算每个任务对CPU占用率的贡献

具体描述:

(1) 除Tick中断外,另开一个比Tick中断频率快若干倍的周期中断(就叫AUXTimer中断吧), 这个中断只对一个计数器执行一次累加

(2) 在OS每次执行任务切换时读取该计数器的值(AUXTimer), 并保存到TCB中, 比如, 从任务Task1切换到任务Task2, 算法如下:

Task1, 换出动作:

task1的结束运行时间 = AUXTimer的当前值

task1的总运行时间 = task1的总运行时间 + task1的结束运行时间 - task1的开始运行时间

Task2, 换入动作:

task2的开始运行时间 = AUXTimer的当前值

(以上算法中没有考虑数字回绕, 在工程实现时应当考虑, 发生回绕后任务的结束运行时间小于任务的开始运行时间

(3) 周期性地计算CPU占用率, 一般每秒钟计算一次, 并清除每个任务的总运行时间, 下面的公式中, 一个周期内的总时间等于AUXTimer周期除以Tick周期得到的倍数:

某个任务对CPU占用率的贡献 = 一个周期内该任务的总运行时间 / 一个周期内的总时间

RealTime CPU Load = 所有任务的CPU占用率之和

对这个方法进行简单改进, 就可以实现对CPU占用率进行实时测量, 看官自己动动脑筋吧

优点:

(1) 误差取决于AUXTimer中断的频率, 可以非常精确地得到每个任务对CPU占用率的贡献

缺点:

(1) 复杂, 加大了任务切换时的开销

(2) 和前两种算法相比, 这个算法要多占用一个硬件资源

aix计算cpu使用率方法二:

需要两个进程,一个为idle进程;一个为统计进程。

idle进程在系统空闲时执行,每执行一次为一个计数器count加一。统计进程每秒执行一次负责计算CPU使用率,并把count清零。

首先要求出没有 其它 进程时count一秒中内由零开始的累加值max,这通常在系统初始化时完成。有其它进程时idle进程执行的次数减少,count的累加值也小于max。

统计进程计算CPU使用率时采用以下公式:

usage=(1-count/max)100。

再来介绍下CPU使用率:

CPU使用率其实就是运行的程序占用的CPU资源,表示机器在某个时间点的运行程序的情况。

使用率越高,说明机器在这个时间上运行了很多程序,反之较少。使用率的高低与CPU强弱有直接关系。现代分时多任务 *** 作系统 对 CPU 都是分时间片使用的。


首先要查谁用CPU最多:显示前10个累计占用CPU时间的进程#ps -e|head -n 1;ps -e|grep -v"TIME|0:"|sort +2b -3 -n -r|head -n 10显示前10个当前占用CPU时间的进程#ps -ef|head -n 1;ps -ef|grep -v"C|0:00"|sort +3b -4 -n -r|head -n 10 Aix命令:列出使用内存和Cpu前几位的进程 (1)显示10个消耗cpu最多的进程 # ps aux |head -1 ;ps aux |sort -rn +2 |head -10(2)显示10个消耗内存最多的进程 #ps vx |head -1 ;ps vx |grep -v PID |sort -rn +6 |head -10(3)显示10个换页最多的进程 #ps vx |head -1 ;ps vx |grep -v PID |sort -rn +4 |head -10(4)显示10个消耗存储空间最多的进程 #ps aux |head -1 ;ps aux |sort -rn +3 |head -10 如何监控进程的内存使用情况(AIX) AIX监控进程内存使用的工具比较多,个人觉得比较方便的有nmon,svmon,其中svmon是AIX自带的工具,需要root权限执行,可以监控进程详细内存使用信息,如:svmon -P pid(要监控的进程PID) -i 1 (每秒刷新一次) |grep pid AIX下进程内存分析AIX下可以使用ps v工具或者svmon工具来分析进程内存。比如:#svmon -P 23288------------------------------------------------------------------------------- Pid Command Inuse Pin Pgsp Virtual 64-bit Mthrd 23288 ora_pmon_V8 29598 1451 182 16560 N N Vsid Esid Type Description Inuse Pin Pgsp Virtual AddrRange 1781 3 work shmat/mmap 11824 0 0 11824024700 1761 1 pers code,large file /dev 9681 0 - -09680 0 0 work kernel seg 3982 1450 182 3390021804 : 6547465535 18018 d work shared library text 2852 0 0 158065535 4764 2 work process private 1127 1 0 1127 面这几个命令组合对于管理RS/6000 AIX系统有帮助: (1)显示10个消耗CPU最多的进程: # ps aux |head -1 ;ps aux |sort -rn +2 |head –10 (2)显示10个消耗存储空间最多的进程: # ps aux |head -1 ;ps aux |sort -rn +3 |head -10 (3)按顺序显示系统中受罚的进程: #ps -eakl |head -1 ;ps -eakl |sort -rn +5 (4)按优先级顺序显示系统中的进程: #ps -eakl |sort -n +6 |head (5)按处理时间为顺序显示系统中的前十个进程: #ps vx |head -1 ;ps vx |grep -v PID |sort -rn +3 |head –10 (6)按实际内存使用的多少顺序显示系统中的前十个进程: #ps vx |head -1 ;ps vx |grep -v PID |sort -rn +6 |head –10 (7)按换入页面的多少顺序显示系统中的前10个进程: #ps vx |head -1 ;ps vx |grep -v PID |sort -rn +4 |head -10

1 内存查看可以用topas、nmon命令
2 很遗憾,vmstat是看不到内存使用率的,你看到的memory下的统计结果为系统当前的换页情况
3 物理内存使用率到了80%,即便你看到了100%,对于aix来说是没有什么影响的,aix有自己的内存自动管理机制,虚拟内存耗尽(对aix来说)才会产生恶劣的后果,比如系统挂起,所以你只需要立刻观察系统cpu的idle,wait,然后虚拟内存使用情况,如果结果合理可接受,那么可以认为系统没有问题


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13197901.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-06-19
下一篇 2023-06-19

发表评论

登录后才能评论

评论列表(0条)

保存