-
2021-02-22 18:10:22
top命令显示的是程序占用的cpu占用率总和,也就是说如果4核cpu那么cpu最高占用率可达400%,top里显示的是把所有使用率加起来。
运行top后按大键盘1,可以显示每个cpu的使用率
查看一下CPU信息:
cat /proc/cpuinfo
参考文章
更多相关内容 -
怎么使用Linux命令查看CPU使用率
2021-05-15 23:18:39本教程分享有关cpu使用图文教程内容,希望对您有用在Linux系统操作中,有时需要查看cpu的使用率,这就需要用到Linux命令了,Linux查看cpu使用率的命令主要有4个,即top、vmstat、mpstat和prstat命令,一起来了解下吧...本教程分享有关cpu使用图文教程内容,希望对您有用
在Linux系统操作中,有时需要查看cpu的使用率,这就需要用到Linux命令了,Linux查看cpu使用率的命令主要有4个,即top、vmstat、mpstat和prstat命令,一起来了解下吧。
1.top
使用权限:所有使用者
使用方式:top [-] [d delay] [q] [c] [S] [s] [i] [n] [b]
说明:即时显示process的动态
d :改变显示的更新速度,或是在交谈式指令列( interactive command)按s
q :没有任何延迟的显示速度,如果使用者是有superuser的权限,则top将会以最高的优先序执行
c :切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S :累积模式,会将己完成或消失的子行程( dead child process )的CPU time累积起来
s :安全模式,将交谈式指令取消,避免潜在的危机
i :不显示任何闲置(idle)或无用(zombie)的行程
n :更新的次数,完成后将会退出top
b :批次档模式,搭配“n”参数一起使用,可以用来将top的结果输出到档案内
范例:
显示更新十次后退出;
top -n 10
使用者将不能利用交谈式指令来对行程下命令:
top -s
将更新显示二次的结果输入到名称为top.log的档案里:
top -n 2 -b 《 top.log
另附一个命令简介linux traceroutewindows tracert两个命令相当,跟踪网络路由
2.vmstat
正如我们之前讨论的任何系统的性能比较都是基于基线的,并且监控CPU的性能就是以上3点,运行队列、CPU使用率和上下文切换。以下是一些对于CPU很普遍的性能要求:
1.对于每一个CPU来说运行队列不要超过3,例如,如果是双核CPU就不要超过6;
2.如果CPU在满负荷运行,应该符合下列分布,
a) User Time:65%~70%
b) System Time:30%~35%
c) Idle:0%~5%
3. mpstat
对于上下文切换要结合CPU使用率来看,如果CPU使用满足上述分布,大量的上下文切换也是可以接受的。
常用的监视工具有:vmstat, top,dstat和mpstat.
# vmstat 1
procs ———–memory———- —swap– —–io—- –system– —-cpu—-
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 104300 16800 95328 72200 0 0 5 26 7 14 4 1 95 0
0 0 104300 16800 95328 72200 0 0 0 24 1021 64 1 1 98 0
0 0 104300 16800 95328 72200 0 0 0 0 1009 59 1 1 98 0
r表示运行队列的大小,
b表示由于IO等待而block的线程数量,
in表示中断的数量,
cs表示上下文切换的数量,
us表示用户CPU时间,
sys表示系统CPU时间,
wa表示由于IO等待而是CPU处于idle状态的时间,
id表示CPU处于idle状态的总时间。
dstat可以给出每一个设备产生的中断数:
# dstat -cip 1
—-total-cpu-usage—- —-interrupts— —procs—
usr sys idl wai hiq siq| 15 169 185 |run blk new
6 1 91 2 0 0| 12 0 13 | 0 0 0
1 0 99 0 0 0| 0 0 6 | 0 0 0
0 0 100 0 0 0| 18 0 2 | 0 0 0
0 0 100 0 0 0| 0 0 3 | 0 0 0
我们可以看到这里有3个设备号15,169和185.设备名和设备号的关系我们可以参考文件/proc/interrupts,这里185代表网卡eth1.
# cat /proc/interrupts
CPU0
0: 1277238713 IO-APIC-edge timer
6: 5 IO-APIC-edge floppy
7: 0 IO-APIC-edge parport0
8: 1 IO-APIC-edge rtc
9: 1 IO-APIC-level acpi
14: 6011913 IO-APIC-edge ide0
15: 15761438 IO-APIC-edge ide1
169: 26 IO-APIC-level Intel 82801BA-ICH2
185: 16785489 IO-APIC-level eth1
193: 0 IO-APIC-level uhci_hcd:usb1
mpstat可以显示每个CPU的运行状况,比如系统有4个CPU。我们可以看到:
# mpstat –P ALL 1
Linux 2.4.21-20.ELsmp (localhost.localdomain) 05/23/2006
05:17:31 PM CPU \user %nice %system %idle intr/s
05:17:32 PM all 0.00 0.00 3.19 96.53 13.27
05:17:32 PM 0 0.00 0.00 0.00 100.00 0.00
05:17:32 PM 1 1.12 0.00 12.73 86.15 13.27
05:17:32 PM 2 0.00 0.00 0.00 100.00 0.00
05:17:32 PM 3 0.00 0.00 0.00 100.00 0.00
总结的说,CPU性能监控包含以下方面:
检查系统的运行队列,确保每一个CPU的运行队列不大于3.
确保CPU使用分布满足70/30原则(用户70%,系统30%)。
如果系统时间过长,可能是因为频繁的调度和改变优先级。
CPU Bound进程总是会被惩罚(降低优先级)而IO Bound进程总会被奖励(提高优先级)。
4.prstat命令
要显示系统上当前运行的进程和项目的各种统计信息,请使用带有-J选项的prstat命令:
%prstat -J
PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP
21634 jtd 5512K 4848K cpu0 44 0 0:00.00 0.3% prstat/1
324 root 29M 75M sleep 59 0 0:08.27 0.2% Xsun/1
15497 jtd 48M 41M sleep 49 0 0:08.26 0.1% adeptedit/1
328 root 2856K 2600K sleep 58 0 0:00.00 0.0% mibiisa/11
1979 jtd 1568K 1352K sleep 49 0 0:00.00 0.0% csh/1
1977 jtd 7256K 5512K sleep 49 0 0:00.00 0.0% dtterm/1
192 root 3680K 2856K sleep 58 0 0:00.36 0.0% automountd/5
1845 jtd 24M 22M sleep 49 0 0:00.29 0.0% dtmail/11
1009 jtd 9864K 8384K sleep 49 0 0:00.59 0.0% dtwm/8
114 root 1640K 704K sleep 58 0 0:01.16 0.0% in.routed/1
180 daemon 2704K 1944K sleep 58 0 0:00.00 0.0% statd/4
145 root 2120K 1520K sleep 58 0 0:00.00 0.0% ypbind/1
181 root 1864K 1336K sleep 51 0 0:00.00 0.0% lockd/1
173 root 2584K 2136K sleep 58 0 0:00.00 0.0% inetd/1
135 root 2960K 1424K sleep 0 0 0:00.00 0.0% keyserv/4
PROJID NPROC SIZE RSS MEMORY TIME CPU PROJECT
10 52 400M 271M 68% 0:11.45 0.4% booksite
0 35 113M 129M 32% 0:10.46 0.2% system
Total: 87 processes, 205 lwps, load averages: 0.05, 0.02, 0.02
要显示系统上当前运行的进程和任务的各种统计信息,请使用带有-T选项的prstat命令:
%prstat -T
PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP
23023 root 26M 20M sleep 59 0 0:03:18 0.6% Xsun/1
23476 jtd 51M 45M sleep 49 0 0:04:31 0.5% adeptedit/1
23432 jtd 6928K 5064K sleep 59 0 0:00:00 0.1% dtterm/1
28959 jtd 26M 18M sleep 49 0 0:00:18 0.0% .netscape.bin/1
23116 jtd 9232K 8104K sleep 59 0 0:00:27 0.0% dtwm/5
29010 jtd 5144K 4664K cpu0 59 0 0:00:00 0.0% prstat/1
200 root 3096K 1024K sleep 59 0 0:00:00 0.0% lpsched/1
161 root 2120K 1600K sleep 59 0 0:00:00 0.0% lockd/2
170 root 5888K 4248K sleep 59 0 0:03:10 0.0% automountd/3
132 root 2120K 1408K sleep 59 0 0:00:00 0.0% ypbind/1
162 daemon 2504K 1936K sleep 59 0 0:00:00 0.0% statd/2
146 root 2560K 2008K sleep 59 0 0:00:00 0.0% inetd/1
122 root 2336K 1264K sleep 59 0 0:00:00 0.0% keyserv/2
119 root 2336K 1496K sleep 59 0 0:00:02 0.0% rpcbind/1
104 root 1664K 672K sleep 59 0 0:00:03 0.0% in.rdisc/1
TASKID NPROC SIZE RSS MEMORY TIME CPU PROJECT
222 30 229M 161M 44% 0:05:54 0.6% group.staff
223 1 26M 20M 5.3% 0:03:18 0.6% group.staff
12 1 61M 33M 8.9% 0:00:31 0.0% group.staff
1 33 85M 53M 14% 0:03:33 0.0% system
Total: 65 processes, 154 lwps, load averages: 0.04, 0.05, 0.06
注–
-J和-T选项不能一起使用。
上面就是Linux下查看CPU使用率的命令介绍了,使用这些命令可以详细的看到目前cpu的使用情况,且四个命令所显示的cpu使用率的效果有点区别,需根据个人要求来选择使用。
本文转载于http://www.xitongzhijia.net/xtjc/20141205/32039_all.html,版权归原作者所有!!
文章名称:怎么使用Linux命令查看CPU使用率
文章连接:https://www.340e.com/2051.html
未经允许不得转载
-
聊聊 top 命令中的 CPU 使用率
2021-07-22 00:15:10平常我们使用top命令来查看系统的性能情况,在top命令中可以看到很多不同类型的 CPU 使用率,如下图红框中标出部分:下面,我们来介绍一下这些 CPU 使用率的意义:us:use...平常我们使用
top
命令来查看系统的性能情况,在top
命令中可以看到很多不同类型的 CPU 使用率,如下图红框中标出部分:下面,我们来介绍一下这些 CPU 使用率的意义:
us
:user time,表示 CPU 执行用户进程的时间,包括 nice 时间。通常都是希望用户空间CPU越高越好。sy
:system time,表示 CPU 在内核运行的时间,包括 IRQ 和 softirq。系统 CPU 占用越高,表明系统某部分存在瓶颈。通常这个值越低越好。ni
:nice time,具有优先级的用户进程执行时占用的 CPU 利用率百分比。id
:idle time,表示系统处于空闲期,等待进程运行。wa
:waiting time,表示 CPU 在等待 IO 操作完成所花费的时间。系统不应该花费大量的时间来等待 IO 操作,否则就说明 IO 存在瓶颈。hi
:hard IRQ time,表示系统处理硬中断所花费的时间。si
:soft IRQ time,表示系统处理软中断所花费的时间。st
:steal time,被强制等待(involuntary wait)虚拟 CPU 的时间,此时 Hypervisor 在为另一个虚拟处理器服务。
当然,单靠上面的解释来理解它们的意义还是比较困难的。所以,本文主要从源码的角度来分析它们到底代表什么。
时钟中断
首先,我们要知道统计 CPU 使用情况在什么地方执行的。在分析之前,我们先来了解下
时钟中断
:时钟中断:是一种硬中断,由时间硬件(系统定时器,一种可编程硬件)产生。当 CPU 接收到时钟中断信号后,会在处理完当前指令后调用
时钟中断处理程序
来完成更新系统时间、执行周期性任务等。可以发现,统计 CPU 使用情况是在
时钟中断处理程序
中完成的。每个 CPU 的使用情况通过
cpu_usage_stat
结构来记录,我们来看看其定义:struct cpu_usage_stat { cputime64_t user; cputime64_t nice; cputime64_t system; cputime64_t softirq; cputime64_t irq; cputime64_t idle; cputime64_t iowait; cputime64_t steal; cputime64_t guest; };
从
cpu_usage_stat
结构的定义可以看出,其每个字段与top
命令的 CPU 使用率类型一一对应。在内核初始化时,会为每个 CPU 创建一个cpu_usage_stat
结构,用于统计 CPU 的使用情况。OK,现在我们来分析下内核是怎么统计 CPU 的使用情况的。
每次执行
时钟中断处理程序
都会调用account_process_tick
函数进行 CPU 使用情况统计,我们来分析一下account_process_tick
函数的实现:void account_process_tick(struct task_struct *p, int user_tick) { cputime_t one_jiffy_scaled = cputime_to_scaled(cputime_one_jiffy); struct rq *rq = this_rq(); // 说明:user_tick 变量标识当前是否处于执行用户应用程序 if (user_tick) { // 1. 如果 CPU 在执行用户程序, 那么调用 account_user_time 进行统计 account_user_time(p, cputime_one_jiffy, one_jiffy_scaled); } else if ((p != rq->idle) || (irq_count() != HARDIRQ_OFFSET)) { // 2. 如果 CPU 在执行内核代码, 那么调用 account_system_time 进行统计 account_system_time(p, HARDIRQ_OFFSET, cputime_one_jiffy, one_jiffy_scaled); } else { // 3. 否则说明 CPU 在执行 idle 进程(也就是处于空闲状态), 那么调用 account_idle_time 进行统计 account_idle_time(cputime_one_jiffy); } }
account_process_tick
函数主要分 3 种情况进行统计,如下:如果 CPU 在执行用户程序,那么调用
account_user_time
进行统计。如果 CPU 在执行内核代码,那么调用
account_system_time
进行统计。否则说明 CPU 在执行 idle 进程(也就是处于空闲状态),那么调用
account_idle_time
进行统计。
CPU 使用情况统计
下面我们分别对这 3 种统计进行分析。
1. 统计用户程序执行时间
统计用户程序的执行时间是通过
account_user_time
函数来完成的,我们来看看其实现:void account_user_time(struct task_struct *p, cputime_t cputime, cputime_t cputime_scaled) { // 获取 CPU 的统计结构(每个CPU一个 cpu_usage_stat 结构) struct cpu_usage_stat *cpustat = &kstat_this_cpu.cpustat; cputime64_t tmp; ... // 分 2 种情况统计 CPU 的使用情况 // 1. 如果进程的 nice 值大于0, 那么将会统计到 nice 字段中 // 2. 如果进程的 nice 值小于等于0, 那么将会统计到 user 字段中 if (TASK_NICE(p) > 0) cpustat->nice = cputime64_add(cpustat->nice, tmp); else cpustat->user = cputime64_add(cpustat->user, tmp); ... }
account_user_time
函数主要分两种情况统计:如果进程的
nice
值大于0,那么将会增加到 CPU 统计结构的nice
字段中。如果进程的
nice
值小于等于0,那么增加到 CPU 统计结构的user
字段中。
这里说明一下进程
nice
值的作用,nice
值越大,说明进程的优先级越低。所以,nice
统计值主要用来统计低优先级进程的占使用 CPU 的情况。也说明了,user
和nice
统计值都属于执行用户程序的 CPU 时间。2. 统计内核代码执行时间
如果在发生时钟中断前,CPU 处于内核态,也就是说在执行内核代码。那么将会调用
account_system_time
函数进行统计,account_system_time
函数实现如下:void account_system_time(struct task_struct *p, int hardirq_offset, cputime_t cputime, cputime_t cputime_scaled) { // 获取 CPU 的统计结构(每个CPU一个 cpu_usage_stat 结构) struct cpu_usage_stat *cpustat = &kstat_this_cpu.cpustat; cputime64_t tmp; ... // 主要分 3 种情况进行统计 // 1. 如果当前处于硬中断执行上下文, 那么统计到 irq 字段中 // 2. 如果当前处于软中断执行上下文, 那么统计到 softirq 字段中 // 3. 否则统计到 system 字段中 if (hardirq_count() - hardirq_offset) cpustat->irq = cputime64_add(cpustat->irq, tmp); else if (softirq_count()) cpustat->softirq = cputime64_add(cpustat->softirq, tmp); else cpustat->system = cputime64_add(cpustat->system, tmp); ... }
account_system_time
函数主要分 3 种情况进行统计:如果当前处于硬中断执行上下文,那么增加到 CPU 统计结构的
irq
字段中。如果当前处于软中断执行上下文,那么增加到 CPU 统计结构的
softirq
字段中。否则增加到 CPU 统计结构的
system
字段中。
从上面代码可以看出,
irq
和softirq
统计值也算是内核代码执行时间。3. idle 进程执行时间统计
当系统中没有可运行的进程时,将会执行
idle
进程。也就是说,当系统执行idle
进程时,表示系统正处于空闲状态。idle
进程执行时间统计由account_idle_time
函数完成,其实现如下:void account_idle_time(cputime_t cputime) { struct cpu_usage_stat *cpustat = &kstat_this_cpu.cpustat; cputime64_t cputime64 = cputime_to_cputime64(cputime); struct rq *rq = this_rq(); // 分 2 种情况统计 CPU 的使用情况 // 1. 如果系统有进程正在等待 I/O 操作完成, 那么将统计到 iowait 字段中 // 2. 否则将统计到 idle 字段中 if (atomic_read(&rq->nr_iowait) > 0) cpustat->iowait = cputime64_add(cpustat->iowait, cputime64); else cpustat->idle = cputime64_add(cpustat->idle, cputime64); }
account_idle_time
函数也分两种情况进行统计:如果系统中有正在等待 I/O 操作完成的进程,那么增加到 CPU 统计结构的
iowait
字段中。否则增加到 CPU 统计结构的
idle
字段中。
从上面的分析可以看出,
iowait
统计值也属于空闲时间的一种。top 命令的 CPU 使用率
通过源码分析,我们知道
top
命令中 CPU 使用率各种类型的意思,现在我们来介绍一下top
命令是怎么计算各种类型的 CPU 使用率。要获取各个 CPU 的使用情况信息,可以通过读取
/proc/stat
文件获取,如下:[vagrant@localhost ~]$ cat /proc/stat cpu 245 10 1142 1097923 95 0 28 0 0 0 cpu0 245 10 1142 1097923 95 0 28 0 0 0 ...
上面的结果显示了 CPU 的使用情况信息,第一行代表所有 CPU 的总和,而第二行开始表示每个 CPU 核心的使用情况信息。因为我的电脑只有一个核,所以只有一条数据。
下面说说这些数据的意义,从第一个数值开始分别代表:
user
,nice
,system
,idle
,iowait
,irq
,softirq
,steal
。所以,
top
命令的 CPU 使用率计算公式如下:CPU总时间 = user + nice + system + idle + wait + irq + softirq + steal %us = user / CPU总时间 %ni = nice / CPU总时间 %sy = system / CPU总时间 %id = idel / CPU总时间 %wa = wait / CPU总时间 %hi = irq / CPU总时间 %si = softirq / CPU总时间 %st = steal / CPU总时间
嗯,看起来还是挺简单的。
总结
本文主要分析了
top
命令中的 CPU 使用率的意义和实现原理,希望通过本文,能够帮助大家对top
命令有更深的认识。 -
Linux top命令查看多核CPU每个核心的使用率x_cpu多核有什么用
2020-08-21 22:41:20第 第 PAGE 1 页 共 NUMPAGES 1 页 Linux top命令查看多核CPU每个核心的使用率 ... Linux top命令查看多核CPU每个核心的使用率 top命令是linux下常用的工具可以查看各个进程的CPU使用情况先看一个实例 这是Ramnode双核 -
Linux系统查看CPU使用率的几个命令
2019-06-12 11:22:28在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。而监控CPU的性能一般包括以下3点:运行队列、CPU使用率和上下文切换。 对于每一个CPU来说运行队列最好不要超过3,例如,如果是双核CPU就...转自:https://blog.csdn.net/AlbenXie/article/details/72885951
感谢博主~在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。而监控CPU的性能一般包括以下3点:运行队列、CPU使用率和上下文切换。
对于每一个CPU来说运行队列最好不要超过3,例如,如果是双核CPU就不要超过6。如果队列长期保持在3以上,说明任何一个进程运行时都不能马上得到cpu的响应,这时可能需要考虑升级cpu。另外满负荷运行cpu的使用率最好是user空间保持在65%~70%,system空间保持在30%,空闲保持在0%~5% 。
下面总结下查看CPU使用率常用的几个命令。
1.top
这个命令很常用,在第三行有显示CPU当前的使用情况。
[root@li676-235 ~]# top -bn 1 -i -c top - 14:19:51 up 138 days, 7:15, 1 user, load average: 0.20, 0.33, 0.39 Tasks: 115 total, 1 running, 114 sleeping, 0 stopped, 0 zombie Cpu(s): 4.5%us, 3.8%sy, 0.0%ni, 91.0%id, 0.6%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 1014660k total, 880512k used, 134148k free, 264904k buffers Swap: 262140k total, 34788k used, 227352k free, 217144k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 12760 root 20 0 15084 1944 1632 R 2.0 0.2 0:00.01 top -bn 1 -i -c root@li676-235 ~]# top -bn 1 -i -c top - 14:19:51 up 138 days, 7:15, 1 user, load average: 0.20, 0.33, 0.39 Tasks: 115 total, 1 running, 114 sleeping, 0 stopped, 0 zombie Cpu(s): 4.5%us, 3.8%sy, 0.0%ni, 91.0%id, 0.6%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 1014660k total, 880512k used, 134148k free, 264904k buffers Swap: 262140k total, 34788k used, 227352k free, 217144k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 12760 root 20 0 15084 1944 1632 R 2.0 0.2 0:00.01 top -bn 1 -i -c
如上所示,top命令可以看到总体的系统运行状态和cpu的使用率 。
%us:表示用户空间程序的cpu使用率(没有通过nice调度)
%sy:表示系统空间的cpu使用率,主要是内核程序。
%ni:表示用户空间且通过nice调度过的程序的cpu使用率。
%id:空闲cpu
%wa:cpu运行时在等待io的时间
%hi:cpu处理硬中断的数量
%si:cpu处理软中断的数量
%st:被虚拟机偷走的cpu
2.vmstat
之前在本博客中有介绍过vmstat的使用,详细使用和参数介绍参考网址:http://www.sijitao.net/1925.html 。
[root@li676-235 ~]# vmstat 1 5 procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 2 0 34792 68376 147688 356132 16 16 421 385 2 2 5 4 91 1 0 3 0 34792 97368 147688 326884 0 0 0 0 133 134 15 6 79 0 0 1 0 34792 62432 147696 360704 0 0 0 88 267 278 63 18 19 0 0 0 0 34792 97160 147696 326904 0 0 0 0 71 82 12 4 84 0 0 1 0 34792 56572 147696 364540 0 0 0 4 261 246 61 23 16 0 0 root@li676-235 ~]# vmstat 1 5 procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 2 0 34792 68376 147688 356132 16 16 421 385 2 2 5 4 91 1 0 3 0 34792 97368 147688 326884 0 0 0 0 133 134 15 6 79 0 0 1 0 34792 62432 147696 360704 0 0 0 88 267 278 63 18 19 0 0 0 0 34792 97160 147696 326904 0 0 0 0 71 82 12 4 84 0 0 1 0 34792 56572 147696 364540 0 0 0 4 261 246 61 23 16 0 0
3.sar
sar命令语法和vmstat一样。命令不存在时需要安装sysstat包,这个包很有用。
CPU使用率
例如每1秒采集一次CPU使用率,共采集5次。
[root@li676-235 ~]# sar -u 1 5 Linux 3.18.5-x86_64-linode52 (li676-235) 07/20/2015 _x86_64_ (1 CPU) 02:41:25 PM CPU %user %nice %system %iowait %steal %idle 02:41:26 PM all 64.71 0.00 18.63 0.00 0.98 15.69 02:41:27 PM all 29.47 0.00 22.11 14.74 0.00 33.68 02:41:28 PM all 67.33 0.00 31.68 0.99 0.00 0.00 02:41:29 PM all 7.00 0.00 2.00 0.00 0.00 91.00 02:41:30 PM all 69.00 0.00 23.00 0.00 0.00 8.00 Average: all 47.79 0.00 19.48 3.01 0.20 29.52 root@li676-235 ~]# sar -u 1 5 Linux 3.18.5-x86_64-linode52 (li676-235) 07/20/2015 _x86_64_ (1 CPU) 02:41:25 PM CPU %user %nice %system %iowait %steal %idle 02:41:26 PM all 64.71 0.00 18.63 0.00 0.98 15.69 02:41:27 PM all 29.47 0.00 22.11 14.74 0.00 33.68 02:41:28 PM all 67.33 0.00 31.68 0.99 0.00 0.00 02:41:29 PM all 7.00 0.00 2.00 0.00 0.00 91.00 02:41:30 PM all 69.00 0.00 23.00 0.00 0.00 8.00 Average: all 47.79 0.00 19.48 3.01 0.20 29.52
和top一样,可以看到所有cpu的使用情况。如果需要查看某颗cpu的使用可以用-P参数。例如指定显示0号cpu 的使用情况。
[root@li676-235 ~]# sar -P 0 -u 1 5 Linux 3.18.5-x86_64-linode52 (li676-235) 07/20/2015 _x86_64_ (1 CPU) 02:45:14 PM CPU %user %nice %system %iowait %steal %idle 02:45:15 PM 0 44.00 0.00 52.00 4.00 0.00 0.00 02:45:16 PM 0 9.28 0.00 26.80 62.89 1.03 0.00 02:45:17 PM 0 3.06 0.00 14.29 81.63 1.02 0.00 02:45:18 PM 0 4.12 0.00 22.68 72.16 1.03 0.00 02:45:19 PM 0 4.12 0.00 22.68 72.16 1.03 0.00 Average: 0 13.09 0.00 27.81 58.28 0.82 0.00 root@li676-235 ~]# sar -P 0 -u 1 5 Linux 3.18.5-x86_64-linode52 (li676-235) 07/20/2015 _x86_64_ (1 CPU) 02:45:14 PM CPU %user %nice %system %iowait %steal %idle 02:45:15 PM 0 44.00 0.00 52.00 4.00 0.00 0.00 02:45:16 PM 0 9.28 0.00 26.80 62.89 1.03 0.00 02:45:17 PM 0 3.06 0.00 14.29 81.63 1.02 0.00 02:45:18 PM 0 4.12 0.00 22.68 72.16 1.03 0.00 02:45:19 PM 0 4.12 0.00 22.68 72.16 1.03 0.00 Average: 0 13.09 0.00 27.81 58.28 0.82 0.00
进程队列长度和平均负载状态
例如每1秒采集一次,共采集5次。
[root@li676-235 ~]# sar -q 1 5 Linux 3.18.5-x86_64-linode52 (li676-235) 07/20/2015 _x86_64_ (1 CPU) 02:48:47 PM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 02:48:48 PM 1 133 0.34 0.43 0.41 02:48:49 PM 2 132 0.34 0.43 0.41 02:48:50 PM 1 133 0.34 0.43 0.41 02:48:51 PM 2 134 0.31 0.42 0.40 02:48:52 PM 1 133 0.31 0.42 0.40 Average: 1 133 0.33 0.43 0.41 root@li676-235 ~]# sar -q 1 5 Linux 3.18.5-x86_64-linode52 (li676-235) 07/20/2015 _x86_64_ (1 CPU) 02:48:47 PM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 02:48:48 PM 1 133 0.34 0.43 0.41 02:48:49 PM 2 132 0.34 0.43 0.41 02:48:50 PM 1 133 0.34 0.43 0.41 02:48:51 PM 2 134 0.31 0.42 0.40 02:48:52 PM 1 133 0.31 0.42 0.40 Average: 1 133 0.33 0.43 0.41
输出项:
runq-sz:运行队列的长度(等待运行的进程数)
plist-sz:进程列表中进程(processes)和线程(threads)的数量
ldavg-1:最后1分钟的系统平均负载(System load average)
ldavg-5:过去5分钟的系统平均负载
ldavg-15:过去15分钟的系统平均负载
进程创建的平均值和上下文切换的次数
例如每1秒收集一次,共收集5次。
[root@li676-235 ~]# sar -w 1 5 Linux 3.18.5-x86_64-linode52 (li676-235) 07/20/2015 _x86_64_ (1 CPU) 02:54:03 PM proc/s cswch/s 02:54:04 PM 1.01 156.57 02:54:05 PM 1.00 132.00 02:54:06 PM 2.00 201.00 02:54:07 PM 2.02 126.26 02:54:08 PM 2.00 114.00 Average: 1.61 145.98 root@li676-235 ~]# sar -w 1 5 Linux 3.18.5-x86_64-linode52 (li676-235) 07/20/2015 _x86_64_ (1 CPU) 02:54:03 PM proc/s cswch/s 02:54:04 PM 1.01 156.57 02:54:05 PM 1.00 132.00 02:54:06 PM 2.00 201.00 02:54:07 PM 2.02 126.26 02:54:08 PM 2.00 114.00 Average: 1.61 145.98
sar命令也可以获取过去指定日期的性能参数。
[root@li676-235 ~]# sar -u -f /var/log/sa/sa20 Linux 3.18.5-x86_64-linode52 (li676-235) 07/20/2015 _x86_64_ (1 CPU) 01:10:01 PM CPU %user %nice %system %iowait %steal %idle 01:20:02 PM all 25.78 0.00 8.88 3.59 0.15 61.60 01:30:01 PM all 26.06 0.00 9.96 3.33 0.10 60.55 01:40:01 PM all 25.73 0.00 9.17 3.70 0.09 61.32 01:50:01 PM all 25.70 0.00 9.50 2.79 0.12 61.89 02:00:01 PM all 26.70 0.00 9.73 2.20 0.10 61.28 02:10:01 PM all 26.16 0.00 9.56 4.34 0.11 59.82 02:20:01 PM all 25.49 0.00 9.61 2.76 0.07 62.07 02:30:01 PM all 26.47 0.00 9.94 0.64 0.30 62.65 02:40:02 PM all 27.32 0.00 10.37 3.86 0.15 58.30 02:50:02 PM all 26.98 0.00 10.38 4.56 0.13 57.95 Average: all 26.24 0.00 9.71 3.18 0.13 60.74 root@li676-235 ~]# sar -u -f /var/log/sa/sa20 Linux 3.18.5-x86_64-linode52 (li676-235) 07/20/2015 _x86_64_ (1 CPU) 01:10:01 PM CPU %user %nice %system %iowait %steal %idle 01:20:02 PM all 25.78 0.00 8.88 3.59 0.15 61.60 01:30:01 PM all 26.06 0.00 9.96 3.33 0.10 60.55 01:40:01 PM all 25.73 0.00 9.17 3.70 0.09 61.32 01:50:01 PM all 25.70 0.00 9.50 2.79 0.12 61.89 02:00:01 PM all 26.70 0.00 9.73 2.20 0.10 61.28 02:10:01 PM all 26.16 0.00 9.56 4.34 0.11 59.82 02:20:01 PM all 25.49 0.00 9.61 2.76 0.07 62.07 02:30:01 PM all 26.47 0.00 9.94 0.64 0.30 62.65 02:40:02 PM all 27.32 0.00 10.37 3.86 0.15 58.30 02:50:02 PM all 26.98 0.00 10.38 4.56 0.13 57.95 Average: all 26.24 0.00 9.71 3.18 0.13 60.74
4.mpstat
这个命令也在sysstat包中,语法类似。
例如每1秒收集一次,共5次
[root@li676-235 ~]# mpstat 1 5 Linux 3.18.5-x86_64-linode52 (li676-235) 07/20/2015 _x86_64_ (1 CPU) 03:01:18 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle 03:01:19 PM all 52.53 0.00 23.23 0.00 0.00 0.00 0.00 0.00 24.24 03:01:20 PM all 21.00 0.00 4.00 0.00 0.00 0.00 0.00 0.00 75.00 03:01:21 PM all 53.00 0.00 18.00 0.00 0.00 0.00 0.00 0.00 29.00 03:01:22 PM all 26.00 0.00 3.00 0.00 0.00 0.00 0.00 0.00 71.00 03:01:23 PM all 46.00 0.00 18.00 0.00 0.00 0.00 0.00 0.00 36.00 Average: all 39.68 0.00 13.23 0.00 0.00 0.00 0.00 0.00 47.09 root@li676-235 ~]# mpstat 1 5 Linux 3.18.5-x86_64-linode52 (li676-235) 07/20/2015 _x86_64_ (1 CPU) 03:01:18 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle 03:01:19 PM all 52.53 0.00 23.23 0.00 0.00 0.00 0.00 0.00 24.24 03:01:20 PM all 21.00 0.00 4.00 0.00 0.00 0.00 0.00 0.00 75.00 03:01:21 PM all 53.00 0.00 18.00 0.00 0.00 0.00 0.00 0.00 29.00 03:01:22 PM all 26.00 0.00 3.00 0.00 0.00 0.00 0.00 0.00 71.00 03:01:23 PM all 46.00 0.00 18.00 0.00 0.00 0.00 0.00 0.00 36.00 Average: all 39.68 0.00 13.23 0.00 0.00 0.00 0.00 0.00 47.09
cpu使用情况比sar更加详细些,也可以用-P指定某颗cpu 。
5.iostat
这个命令主要用来查看io使用情况,也可以来查看cpu,个人感觉不常用。
[root@li676-235 ~]# iostat -c 1 2 Linux 3.18.5-x86_64-linode52 (li676-235) 07/20/2015 _x86_64_ (1 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 4.53 0.01 3.81 0.63 0.04 90.99 avg-cpu: %user %nice %system %iowait %steal %idle 38.00 0.00 14.00 0.00 0.00 48.00 root@li676-235 ~]# iostat -c 1 2 Linux 3.18.5-x86_64-linode52 (li676-235) 07/20/2015 _x86_64_ (1 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 4.53 0.01 3.81 0.63 0.04 90.99 avg-cpu: %user %nice %system %iowait %steal %idle 38.00 0.00 14.00 0.00 0.00 48.00
6.dstat
每秒cpu使用率情况获取
[root@li676-235 ~]# dstat -c ----total-cpu-usage---- usr sys idl wai hiq siq 5 4 91 1 0 0 27 11 62 0 0 0 52 11 37 0 0 0 26 10 63 0 0 1 50 13 37 0 0 1 21 6 72 0 0 0 root@li676-235 ~]# dstat -c ----total-cpu-usage---- usr sys idl wai hiq siq 5 4 91 1 0 0 27 11 62 0 0 0 52 11 37 0 0 0 26 10 63 0 0 1 50 13 37 0 0 1 21 6 72 0 0 0
最占cpu的进程获取
[root@li676-235 ~]# dstat --top-cpu -most-expensive- cpu process mysqld 1.5 php-fpm: pool 24 mysqld 59 root@li676-235 ~]# dstat --top-cpu -most-expensive- cpu process mysqld 1.5 php-fpm: pool 24 mysqld 59
-
LINUX下查看CPU使用率的命令
2021-05-12 01:43:251 CPU占用率计算原理1.1 相关概念在Linux/Unix下,CPU利用率分为用户态、系统态... CPU利用率 CPU的使用情况。 用户时间(User time)表示CPU执行用户进程的时间,包括nices时间。通常期望用户空间CPU越高越好。... -
查看CPU使用率 top命令详解
2018-12-24 18:28:17一 top是一个动态显示过程,即可以通过用户...该命令可以按CPU使用.内存使用和执行时间 对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定. 说明:前五行都统计系统整体信息的 ... -
如何top命令查看进程信息和cpu占用率分析
2021-11-04 19:54:06通过top命令查看进程信息 通过adb shell top -h查看其使用方法 130|root@sp9820e_1h10:/ # top -h Usage: top [ -m max_procs ] [ -n iterations ] [ -d delay ] [ -s sort_column ] [ -t ] [ -h ] -m num Maximum ... -
Linux中,top命令查看CPU利用率
2018-09-27 17:05:35top 的全屏对话模式可分为3部分:系统信息栏、命令输入栏、进程列表栏。 系统信息栏 第一行(top): “23:07:30"为系统当前时刻; “12:03”为系统启动后到现在的运作时间; “1 users”为当前... -
Linux系统中通过top命令查看当前的cpu使用情况
2021-05-19 09:42:05如下图所示,使用top命令可以查看cpu的实时状态。 按q键可以推出top界面。 第一行: 9:39:00 --当前系统时间 1 days, 54 min --系统已经运行了1天零29分钟(系统刚刚重启过) 20 users --当前有20个用户登录... -
通过top查看程序cpu使用率为什么会超过100%
2020-10-11 10:51:09通过top命令有时候会发现某进程的cpu使用率会超过100%,这个总结了一下理清这个问题的过程。 -
Android系统adb命令查看CPU与内存使用率
2018-04-19 11:54:241. 打开终端,进入上述目录,如下图所示: 2. 输入adb shell,打开adb命令行,如下图所示: 3. 查看cpu使用情况: 输入命令:top -m 10 -s cpu(-m显示最大数... -
Linux系统查看CPU使用率、内存使用率、磁盘使用率
2019-04-16 15:17:00一、查看CPU使用率 1. top 命令 top命令可以看到总体的系统运行状态和cpu的使用率 。 %us:表示用户空间程序的cpu使用率(没有通过nice调度) %sy:表示系统空间的cpu使用率,主要是内核程序。 %ni:表示用户空间... -
top命令查看每个逻辑cpu使用率
2016-10-08 22:03:27基本概念: 首先要分清物理cup、核数、逻辑cpu的概念,可参考文章:Linux查看物理CPU个数、核数、逻辑CPU个...如果要查看每个逻辑cpu的使用率,只需要运行top命令,按下数字键1即可 效果如图: 原文出自: End; -
Linux查看CPU使用率的一些命令
2019-01-22 09:59:36在使用linux系统进行运维的过程中,我们经常要查看一下CPU的使用率,以便观察以及分析系统的整体运行情况。 那么使用以下这些命令有何作用?我们一起看看: 1. top 使用频率比较高的命令,可在第三行看到cpu的... -
linux top命令查看内存CPU使用情况
2018-09-22 21:48:58查看多核CPU命令 mpstat-PALL和sar-PALL 说明:sar-PALL>aaa.txt重定向输出内容到文件aaa.txt 也可用 cat /proc/meminfo 要看cpu的配置信息可用 cat /proc/cpuinfo top命令 经常用来监控linux的系统状况,... -
用 top 命令查看 CPU 使用率
2010-04-26 14:17:00用 top 命令查看 CPU 使用率 > 在系统维护的过程中,随时可能有需要查看 CPU 使用率,并根据相应信息分析系统状况的需要。在 CentOS 中,可以通过 top 命令来查看 CPU 使用状况。运行 top 命令后,CPU 使用状态会以... -
top linux 实时监控命令 查看CPU使用率
2011-05-05 09:31:00该命令可以按CPU使用.内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定. <br /> <br />说明:前五行都统计系统整体信息的 下面是进程信息区... -
Linux系统查看CPU使用率命令
2018-11-26 13:55:38在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。而监控CPU的性能一般包括以下3点:运行队列、CPU使用率和上下文切换。 对于每一个CPU来说运行队列最好不要超过3,例如,如果是双核CPU就... -
shell脚本案例(三)利用top命令精确监控cpu使用率
2018-05-17 12:12:18需求:利用top命令精确监控CPU 准备知识:top使用、基本的awk、bc(默认bash shell不支持小数点运算) 脚本如下 [root@arppining scripts]# cat cpu.sh #!/bin/bash - # top -n 参数指定运行次数,1代表运行一次即... -
LINUX下查看CPU使用率的 top 命令
2015-09-28 10:11:14TOP是一个动态显示过程,即可以通过用户按键来不断刷新当前...该命令可以按CPU使用.内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定. top - 12:38:33 up 50 -
Android adb查看CPU和内存使用
2021-12-03 15:46:29查看CPU使用率 adb shell top //显示当前系统下,按使用率排名的内存和Cpu使用率 显示参数的含义 参数含义: PID : progress identification,应用程序ID S : 进程的状态,其中S表示休眠,R表示正在运行,Z表示... -
top命令查看服务器cpu使用情况等
2021-07-30 07:13:52通过 top 命令来查看 CPU 使用状况。运行 top 命令后,CPU 使用状态会以全屏的方式显示,并且会处在对话的模式 -- 用基于 top 的命令,可以控制显示方式等等。退出 top 的命令为 q (在 top 运行中敲 q 键一次)。top... -
五分钟带你掌握Linux系统查看CPU使用率、内存使用率、磁盘使用率
2021-02-19 10:13:16文章目录一、查看CPU使用率1. top 命令2、vmstat3、sar4、mpstat5、iostat二、查看内存使用率1、top命令2、free命令(1).命令格式:(2).命令功能:(3) .命令参数:(4).使用实例:三、查看磁盘使用率1、... -
使用adb命令查看手机cpu/内存等信息
2020-12-20 06:25:21使用adb命令查看手机cpu/内存等信息前提本地电脑Windows已安装ADB工具、夜神模拟器连接手机这里用的夜神模拟器连接的使用adb命令...adb shell查看CPU使用情况输入命令:top -m 10 -s cpu(-m显示最大数量,-s 按指... -
Linux top命令查看CPU使用率
2013-05-31 08:46:42在系统维护的过程中,随时可能有需要查看 CPU 使用率,并根据相应信息分析系统状况的需要。在 CentOS 中,可以通过 top 命令来查看 CPU 使用状况。运行 top 命令后,CPU 使用状态会以全屏的方式显示,并且会处在对话... -
Linux查看CPU使用率、内存使用率等
2020-04-16 11:56:01一、CPU使用率查看 1.cat /proc/loadavg命令 $ cat /proc/loadavg 0.08 0.06 0.10 1/442 8347 前三项分别是最近1分钟、5分钟和15分钟的系统平均负载。系统平均负载为在特定时间间隔内运行队列中的平均进程数,...