原标题:Linux CPU 如何判断忙

摘录自:http://www.ruanyifeng.com/blog/2016/12/user_space_vs_kernel_space.html

学习 Linux 时,经常可以看到两个词:User space(用户空间)和 Kernel space(内核空间)。

简单说,Kernel space 是 Linux 内核的运行空间,User space 是用户程序的运行空间。为了安全,它们是隔离的,即使用户的程序崩溃了,内核也不受影响。

Kernel space 可以执行任意命令,调用系统的一切资源;User space 只能执行简单的运算,不能直接调用系统资源,必须通过系统接口(又称 system call),才能向内核发出指令。

str

=

"my string"

// 用户空间x

=x

+

2file

.

write(str

)

// 切换到内核空间y

=x

+

4

// 切换回用户空间

上面代码中,第一行和第二行都是简单的赋值运算,在 User space 执行。第三行需要写入文件,就要切换到 Kernel space,因为用户不能直接写文件,必须通过内核安排。第四行又是赋值运算,就切换回 User space。

查看 CPU 时间在 User space 与 Kernel Space 之间的分配情况,可以使用top命令。它的第三行输出就是 CPU 时间分配统计。

这一行有 8 项统计指标。

其中,第一项24.8 us(user 的缩写)就是 CPU 消耗在 User space 的时间百分比,第二项0.5 sy(system 的缩写)是消耗在 Kernel space 的时间百分比。

随便也说一下其他 6 个指标的含义。

ni:niceness 的缩写,CPU 消耗在 nice 进程(低优先级)的时间百分比

id:idle 的缩写,CPU 消耗在闲置进程的时间百分比,这个值越低,表示 CPU 越忙

wa:wait 的缩写,CPU 等待外部 I/O 的时间百分比,这段时间 CPU 不能干其他事,但是也没有执行运算,这个值太高就说明外部设备有问题

hi:hardware interrupt 的缩写,CPU 响应硬件中断请求的时间百分比

si:software interrupt 的缩写,CPU 响应软件中断请求的时间百分比

st:stole time 的缩写,该项指标只对虚拟机有效,表示分配给当前虚拟机的 CPU 时间之中,被同一台物理机上的其他虚拟机偷走的时间百分比

如果想查看单个程序的耗时,一般使用time命令。

程序名之前加上time命令,会在程序执行完毕以后,默认显示三行统计。

real:程序从开始运行到结束的全部时间,这是用户能感知到的时间,包括 CPU 切换去执行其他任务的时间。

user:程序在 User space 执行的时间

sys:程序在 Kernel space 执行的时间

user和sys之和,一般情况下,应该小于real。但如果是多核 CPU,这两个指标反映的是所有 CPU 的总耗时,所以它们之和可能大于real。

[参考链接]

User space vs kernel space

Using the Linux Top Command

Understanding Linux CPU stats

What do 'real', 'user' and 'sys' mean in the output of time(1)?

引用自:https://note.youdao.com/share/?id=799c86ffc9de49ff383b639d155a446e&type=note#/

首先我简单解释一下客户所看到的问题。如下图第三行,top统计Cpu总体使用情况,使用了八个指标。这八个指标分别是:用户空间进程(us)、内核空间进程(sy)、高nice值的用户空间进程(ni)、空闲(id)、空闲等待io(wa)、中断上半部(hi)、中断下半部(si)、以及steal时间(st)。理论上来讲这八个指标之和应该是100%。这八个指标当中,id和wa是Cpu空闲时间的统计,这两个值之和越小,说明Cpu越忙碌。客户这台服务器的id与wa之和是0,所以这台服务器的Cpu使用率是100%,其中占比最大的是ni。

除了第三行Cpu总体统计指标之外,top会对Cpu的使用率,从进程维度上进行统计,也就是CPU这一列。因为这台服务器是16核的,所以每个进程(多线程)的Cpu使用率可以超过100%,同时所有进程Cpu使用率之和不能超过上线1600%(平均到每个核是100%)。返回搜狐,查看更多

责任编辑:

linux判断cpu是否过载,Linux CPU 如何判断忙相关推荐

  1. cpu过载linux杀进程,Linux CPU过载判断以及分析

    摘要:高平均负载意味着系统是过载的:许多进程在等待 CPU 时间,我们基本可以从top命令的load average中判断系统大概负载情况,顺便也提及下一些查询Linux状态得参数,了解他们所表示得含 ...

  2. 【Linux 性能优化系列】Linux 性能优化 -- CPU 性能篇(一) 平均负载、上下文切换、CPU 使用率

    [Linux 性能优化系列]Linux 性能优化 -- CPU 性能篇(一) 平均负载.上下文切换.CPU 使用率 [1]相关概念 [1.1]平均负载 平均负载是指单位时间内,系统处于可运行状态和不可 ...

  3. linux下把进程绑定到特定cpu核上运行

    现在大家使用的基本上都是多核cpu,一般是4核的.平时应用程序在运行时都是由操作系统管理的.操作系统对应用进程进行调度,使其在不同的核上轮番运行. 对于普通的应用,操作系统的默认调度机制是没有问题的. ...

  4. 在linux 下怎么查看服务器的cpu和内存的硬件信息

    1,Linux下可以在/proc/cpuinfo中看到每个cpu的详细信息.但是对于双核的cpu,在cpuinfo中会看到两个cpu.常常会让人误以为是两个单核的cpu. 其实应该通过Physical ...

  5. linux查看cpu个数命令,Linux怎么查看物理CPU个数

    在linux中我们对于硬件的查看只能通过命令的方式来获得了不能直接查看到了,下面学习阿拉小编给各位整理了一些Linux查看物理CPU个数.核数.逻辑CPU个数的命令供各位学习. Linux怎么查看物理 ...

  6. linux查服务器总内存大小,在linux 下怎么查看服务器的cpu和内存的硬件信息

    1,Linux下可以在/proc/cpuinfo中看到每个cpu的详细信息.但是对于双核的cpu,在cpuinfo中会看到两个cpu.常常会让人误以为是两个单核的cpu. 其实应该通过Physical ...

  7. linux cpu不足处理运维,Linux运维知识之Linux服务器CPU占用率较高问题排查思路

    本文主要向大家介绍了Linux运维知识之Linux服务器CPU占用率较高问题排查思路,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助. 注意:本文相关配置及说明已在 CentOS  ...

  8. linux 指定cpu运行线程,linux 线程与CPU绑定

    看到很多程序都是根据CPU个数来创建线程个数,当时很不理解他们之间的关系,请教了项目组的同事后才有了大致了解. 1. 相关系统函数 下面的函数可以通过man命令查询到.SYNOPSIS #define ...

  9. 查linux服务器CPU多少C,在linux 下怎么查看服务器的cpu和内存的硬件信息

    在linux 下怎么查看服务器的cpu和内存的硬件信息 ------------------------------------------------ fzljnqkt 采纳率:44% 11级 20 ...

最新文章

  1. 谁是“艾灵”?是腾讯的真国风 AI 虚拟人!
  2. 为什么“不懂数据结构与算法”的程序员一定走不远?
  3. 描述一下普适计算时代中的计算机,《课程总结报告-普适计算及其应用》.doc
  4. Computer:屏幕录像专家软件的简介、安装、使用方法之详细攻略
  5. mysql中事件失效如何解决
  6. c++经典编程题_全国青少年软件编程等级考试C语言经典程序题10道十
  7. 如何将JBoss HR员工奖励项目放入云端
  8. android 4.4.2截屏方法,android4.4.2 使用 uiautoviewer 截屏报错
  9. sql 替换text字段中的指定字符
  10. 黄海造船周身流动的信息化血液
  11. 用U盘PE启动安装系统教程
  12. word两页并排怎么变成单页排列
  13. matlab中rand函数
  14. 夜间模式 css,网页夜间模式,CSS样式
  15. js禁止鼠标右键的菜单事件
  16. 重新定义团队 谷歌的自由精神对所有公司都适用
  17. 机器学习在无线信道建模中的应用现状与展望
  18. Luogu3426 [POI2005]SZA-Template (KMP)(未完成)
  19. 前端-table表格隔行变色
  20. 常用MIME类型(Mp4的mime类型设置)

热门文章

  1. ansys怎么使用anand模型_当SpaceClaim 遇上ANSYS
  2. 第四章信息系统安全基础考试要点及真题分布
  3. kali linux学习入门- Chrome浏览器安装,可以正常打开
  4. html nthchild作用,需要对HTML,nth-child进行一些解释
  5. querydsl动态 sql_Spring data jpa 复杂动态查询方式总结
  6. Java的反射(二)
  7. NFS服务自动搭建及挂载脚本
  8. 解决PHP导出大量数据时设置超链接的问题 --mxp
  9. 解决RMI 客户端异常no security manager: RMI class loader disabled
  10. Android Service完全解析