TOP命令 详解CPU 查看多个核心的利用率按1
top命令是linux下常用的工具,可以查看各个进程的CPU使用情况。先看一个实例:
这是Ramnode双核VPS的top显示结果:

左上角可以看到CPU的使用率是11.3%,但是看下面的进程,plugin-containe就占用了17.6%。出现这样的情况是因为11.3%指的是所有核心的占用情况,17.6%指的是运行当前进程的核心的使用率。有时候可以看到某个进程的使用率已经达到100%了,但是top显示的也只有50%而已。下面我们来做一个测试:
使用的命令是:
md5sum /dev/zero & |

执行上面命令的核心使用率超过了90%,左上角显示的CPU使用率只有50%多
在top窗口中,按数字键“1”就可以看到每个核心的使用情况。

杀掉MD5sum进程 用 kill pid即可
关于vmstat,top,ps aux查看的cpu占用率不一致的问题
op,ps,vmstat都是根据系统的proc文件进行计算的,其中vmstat,top都使用了/proc/stat文件,而ps,top也使用了/proc/*/stat文件进行计算。
1.vmstat对于cpu idle的计算方式比较复杂,但是显示的为平均值,即使用cpu使用时间片的差值/时间间隔/cpu个数(为物理cpu数目*cpu核心数),其中时间间隔为vmstat后加的参数,如vmstat 10就为10s内的平均cpu 占用率;
2.ps计算的为每个进程的cpu占用时间,使用的为/proc/*/stat文件,其中*为进程号,计算方式为使用cpu总的时间片数/Hertz,目前确认为对于每个物理cpu的占用比率,因此在双核机器上显示的数值需要除以核心数2;
3.top使用的是/proc/stat计算上面显示的cpu占用,使用/proc/*/stat计算每个进程占用的时间。但是计算的方式有所不同,代码较为复杂,但是目前确认为默认显示为Irix模式,即为相对于单个cpu core的占用的时间,如双核机器需要将该数值除以2*2计算,通过 shift+i可以进行切换;
通过上述说明可以解释珺方发现的问题:
问题1:首先,ps aux中两个compress进程占用cpu 15.5%+28.9%>40%,再加上其它进程,为何vmstat查看cpu空闲率id还能一直大于73%
ps的cpu占用率需要除以双核cpu数目为2,因此实际占用为(15.5%+28.9% )/2=22.2% ,也就约等于100%-73%;
问题2:其次,top命令显示的进程compress的cpu占用率和ps显示的数值差别很大,ps的cpu占用率雷打不动,一直是恒定值,top的比较动态, 难道ps aux显示的进程cpu占用率不可靠?
ps和top相差的数值为2倍关系,因此显示的占用率相差很大,同时变化率也会较大;
问题3:最后,这三个命令查出的cpu占用率相互之间均不统一,用哪一个更可靠?例如输入如下命令,粗体字是cpu占用率
这三个命令的占用率是统一的,按照如下公式进行计算时数据是一致的:
vmstat 的100%-idle == ps的cpu占用/cpu核心数 == top的cpu占用/cpu核心数/物理cpu数目;
TOP命令 详解CPU 查看多个核心的利用率按1的更多相关文章
- Top 命令详解
Top 命令详解 先感受一下top命令的执行结果吧!哈哈-- top - 17:32:34 up 3 days, 8:04, 5 users, load average: 0.09, 0.12, 0. ...
- Linux下top命令详解
Linux下top命令详解 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.top是一个动态显示过程,即可以通过用户按键来不断刷 ...
- ulimit 命令详解 socket查看linux最大文件打开数
ulimit 命令详解 Linux对于每个用户,系统限制其最大进程数.为提高性能,可以根据设备资源情况,设置各linux 用户的最大进程数 可以用ulimit -a 来显示当前的各种用户进程限 ...
- linux中top命令详解
linux的top命令里的cpu信息是什么意思呢? Cpu(s): 62.1% us, 15.9% sy,0.1% ni, 19.4% id,2.0% wa,0.1% hi,0.4% si Mem: ...
- [转] 查看CPU使用率 top命令详解
一 top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前 台,直到用户终止该程序为止. 比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示 ...
- linux分析工具之top命令详解
Linux系统可以通过top命令查看系统的CPU.内存.运行时间.交换分区.执行的线程等信息.通过top命令可以有效的发现系统的缺陷出在哪里.是内存不够.CPU处理能力不够.IO读写过高. 一.top ...
- Linux TOP命令详解
先来看一下执行以后的结果: 各项数值的含义如下: 第一行是任务队列信息. :: 当前时间 up days,: 系统运行时间,格式为天,时:分 user 当前登录用户数 load average: 0. ...
- Linux性能分析工具top命令详解
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,常用于服务端性能分析. top命令说明 [www.linuxidc.com@linuxidc-t-tomcat-1 ...
- (转)Linux 系统监控、诊断工具之 top命令详解
原文:https://www.linuxidc.com/Linux/2014-12/110563.htm 目录 (1)系统.任务统计信息:(2)进程. cpu 统计信息:(3)最后两行为内存信息:3. ...
随机推荐
- 21天学通C++_Day1
被阿里实习生的第一轮电话面试刷掉以后,幡然醒悟,发现以前学习的C++基础一点都不扎实.为了把基础打扎实,重新学习一遍:为了让自己不放弃,也顺便可以把当天学到的东西记录下来,开始了写博客. 学习书籍:& ...
- HDU - 6183:Color it (线段树&动态开点||CDQ分治)
Do you like painting? Little D doesn't like painting, especially messy color paintings. Now Little B ...
- iOS UI调试工具 -- UIDebuggingInformationOverlay
英文原文: http://ryanipete.com/blog/ios/swift/objective-c/uidebugginginformationoverlay/ 无意中看到iOS自带调试工具 ...
- C# 报警 控制蜂鸣器发声
在C#中可以通过以下四种方式来实现蜂鸣或者报警,播放声音之类的功能.XP下对蜂鸣有用,win7下请接上扬声器. 1). Beep的报警实现 [c-sharp] view plaincopy / ...
- ACM学习历程—HihoCoder1309任务分配(排序 && 贪心)
http://hihocoder.com/problemset/problem/1309 题目大意是给定n个任务的起始时间,求问最少需要多少台机器. 有一个贪心的策略就是,如果说对于一个任务结束,必然 ...
- w3cschool在线教程
做网页开发的,没有不知道w3cschool的,如果你还不知道,那么就应该早点看下面推荐的文章,菜鸟可以帮你提升你的技能,老鸟可以温故而知新. 第一个是:http://www.w3school.com. ...
- 使用Log4j将程序日志实时写入Kafka
第一部分 搭建Kafka环境 安装Kafka 下载:http://kafka.apache.org/downloads.html tar zxf kafka-<VERSION>.tgz c ...
- 微软系统工具包Sysinternals Suite官方下载地址
Sysinternals Suite是微软官方发布的系统工具包,其中包含数十款实用的绿色系统工具软件,个个身怀绝技,是你维护Windows系统不可或缺的好帮手. 最新版Sysinternals Sui ...
- php redis 常用方法
一些php redis 常用的方法: 1.hGet($key,$hashKey) Redis Hget 命令用于返回哈希表中指定字段的值. <?php $redis = new redis(); ...
- cvc-complex-type.2.4.a: Invalid content was found starting with element 'async-supported'
<servlet> <servlet-name>springMVC</servlet-name> <servlet-class>org.springfr ...