linux性能系列--cpu
一、先看看什么是CPU
?
回答:中央处理器(Central Processing Unit)的缩写,即CPU,CPU是电脑中的核心配件,只有火柴盒那么大,几十张纸那么厚,但它却是一台计算机的运算核心和控制核心。电脑中所有操作都由CPU负责读取指令,对指令译码并执行指令的核心部件。
想了解详细的cpu介绍请去百科:CPU页面
二、如何查看机器的cpu相关信息呢
?
回答:可以cat /proc/cpuinfo
三、怎么查看系统CPU的负载情况
?
回答:方法有很多,比如工具使用等,如下用vmstat
关于vmstat的详细介绍请点击这里
四、如何查看某个进程的cpu使用情况呢
?
回答:方法有很多,比如工具使用等,如下用ps -aux
五、Cpu性能指标及解释
- CPU Utilization - CPU使用率
CPU Utilization是衡量程序占用系统资源的最直观指标,即CPU使用率。如果CPU Utilization在5%-10%之间则基本上对系统没有影响,可以不关注。但如果在80%-90%,或者更高的话,就可能出现处理器性能瓶颈了。 - User Time - 用户时间
描述CPU耗费在用户进程上的百分比,包括Nice time。如果User Time值很高,则表明系统正在执行实际的工作。 - System Time - 系统时间
描述CPU耗费在内核操作上的CPU百分比,包括硬中断(IRQ)和软中断(SoftIRQ?)。System Time值持续很高表明网络或驱动程序栈可能存在瓶颈。性能良好的系统应当耗费尽量少的时间在内核操作上。 - Waiting - 等待时间
描述CPU在等待I/O操作所耗费的时间总和,与阻塞(Blocked)指标相似,系统不应该耗费太多的时间在等待I/O操作;否则你应该检查一下各个I/O子系统的性能。 - Idle time - 空闲时间
描述CPU等待任务到达的时间百分比,即CPU空闲时间。 - Nice time - Nice时间
描述CPU耗费在进程re-nicing的百分比,re-nicing指的是改变进程的执行顺序和优先级。 - Load average - 平均负载
Load average不是CPU百分比,它是以下数值加和的平均值:
— 队列中等待执行的进程数
— 等待不可中断任务执行完成的进程数
也 就是TASK_RUNNING和TASK_UNINTERRUPTIBLE之和的平均值。如果请求CPU 处理的进程发生阻塞(意味着CPU没有空闲时间去执行该进程),Load average将会上升。相反如果每个进程都可以立即执行,而且没有空转的CPU周期,那Load average将会降低。 - Runable processes - 可运行进程
Runable processes描述准备执行的进程数。在一段持续的时间内Runable processes不应该超过CPU数量的10倍,否则CPU可能存在性能瓶颈。 - Blocked - 堵塞
描述因等待I/O操作完成而挂起的进程数,Blocked指标往往意味着I/O存在性能瓶颈。 - Context switch - 上下文交换
Context switch描述系统中线程之间发生交换的数量。只有一小部分情况下需要Context switch,通常情况下是不需要Context switch,因为每次操作都伴随着刷新CPU缓存。Context switch次数过多与大量的中断请求有关,这意味着驱动或应用程序可能存在问题。 - Interrupts - 中断
Interrupts包括硬中断(hard interrupts)和软中断(soft interrupts)。hard interrupts会对系统性能产生非常不利的影响。Interrupts过高意味着应用程序存在性能瓶颈,可能在内核或者驱动中。 Interrupts也包括CPU时钟产生的中断。
linux性能系列--cpu的更多相关文章
- linux性能监控 -CPU、Memory、IO、Network等指标的讲解
[操作系统-linux]linux性能监控 -CPU.Memory.IO.Network等指标的讲解(转) 一.CPU 1.良好状态指标 CPU利用率:User Time <= 70%,Syst ...
- linux性能优化cpu 磁盘IO MEM
系统优化是一项复杂.繁琐.长期的工作,优化前需要监测.采集.测试.评估,优化后也需要测试.采集.评估.监测,而且是一个长期和持续的过程,不 是说现在优化了,测试了,以后就可以一劳永逸了,也不是说书本上 ...
- Linux性能监控——CPU,Memory,IO,Network
版权声明:本文由刘爽原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/107 来源:腾云阁 https://www.qclou ...
- linux性能系列--内存
一.啥是内存呢? 回答:内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁.计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大. 内存(Memory)也被称为内存储器, ...
- linux性能监控——CPU、Memory、IO、Network
一.CPU 1.良好状态指标 CPU利用率:User Time <= 70%,System Time <= 35%,User Time + System Time <= 70%. 上 ...
- Linux性能监控 - CPU、Memory、IO、Network
一.CPU 良好状态指标 CPU利用率:User Time <= 70%,System Time <= 35%,User Time + System Time <= 70%. 上下文 ...
- linux性能系列--块设备
一.啥是块设备呢? 回答:I/O设备大致分为两类:块设备和字符设备.块设备将信息存储在固定大小的块中,每个块都有自己的地址.数据块的大小通常在512字节到32768字节之间.块设备的基本特征是每个块都 ...
- linux性能系列--网络
一.为啥网络监控不好做? 回答:网络是所有子系统中最难监控的了.首先是由于网络是抽象的,更重要的是许多影响网络的因素并不在我们的控制范围之内.这些因素包括,延迟.冲突.阻塞等 等.由于网络监控中, ...
- Linux性能优化--CPU[备忘]
http://kumu-linux.github.io/blog/2014/04/21/performance-cpu/
随机推荐
- 你知道吗, CoreGraphics绘图系统和Bezier贝塞尔曲线坐标系的顺时针方向是相反的!
UIBezierPath是对Core Graphics框架的一种上层封装,目的是让绘图需求可以被更方便的使用. 那你有没有发现被UIBezierPath封装后与之前有什么改变? 答:有三个变化. 1. ...
- oracle:存储过程和触发器
存储过程(stored procedure) :可以看作带名字的pl/sql程序块:通过名字调用执行:可以带参数或不带参数. 触发器(trigger):通过事件触发执行,可看成特殊类型的存储过程. 下 ...
- linux编程之GDB调试
GDB是一套字符界面的程序集,可以用它在linux上调试C和C++程序,它提供了以下的功能: 1 在程序中设置断点,当程序运行到断点处暂停 2 显示变量的值,可以打印或者监视某个变量,将某个变量的值显 ...
- java并发编程(7)构建自定义同步工具及条件队列
构建自定义同步工具 一.通过轮询与休眠的方式实现简单的有界缓存 public void put(V v) throws InterruptedException { while (true) { // ...
- Codeforces 985G. Team Players
Description 有 \(n\) 个人 , \(m\) 对人有冲突 , 你要从这 \(n\) 个人中选出三个人成为一组 , 使得同一组的人不存在一对有冲突 题面 Solution 容斥 答案=总 ...
- TCP/IP提供网络传输速率
丢包(超时)->减少超时时间->ECN(有网络设备通知终端,有丢包发生)->DCTCP(优化快恢复) 丢包是超时的充分条件,但不是必要条件,因此也可通过其他方式获得丢包是否发生,比如 ...
- jquery操作radio单选按钮,实现取值,动态选中,动态删除的各种方法
本文主要讲的是在jquery里操作表单radio单选按钮的各种方法,如获取选中的radio的值,动态选中指定的radio项等. 1.获取选中的radio单选按钮的值: var v=$(":r ...
- 使用IndexOf方法来判断“咳嗽”出现的次数及索引、使用Dictionary<key,value> 集合统计没个字符出现的次数
static void Main(string[] args) { #region string str = "患者:医生我咳嗽的很严重,大夫:你多大年纪了? 患者:我75岁 大夫:那二十岁 ...
- protobuf简单测试应用
protobuf是google推出的一种数据交换协议,比较适合应用于底层服务交互,nodejs提供protobufjs包的实现,下面是一个简单的测试demo: 首先是.proto文件: package ...
- 【12】FtpWebRequest上传下载
下载文件 /// <summary> /// 下载文件 /// </summary> /// <param name="filename">&l ...