CPU状态信息us,sy等含义
一.概述概述
比如一秒内有100个cpu时间片,这个cpu时间片就是cpu工作的最小单位。那么这100个cpu时间片在不同的区域和目的进行操作使用,就代表这个区域所占用的cpu时间比。也就是这里得出的cpu时间百分比。
如下为TOP命令看到的信息,每个参数将表示cpu时间片被占用的分布情况,如下所有相加为100%。

如下,%Cpu(s)计算为所有,多少个核心都是100%
显示的进程的%CPU为单个核心,占满一个核心为100%,2个就是200%

二.详解
us和sy
us 用户空间占用CPU百分比
sy 内核空间占用CPU百分比
用户 CPU 使用率,包括用户态 CPU使用率(user)和低优先级用户态 CPU使用率(nice),表示 CPU 在用户态运行运行的时间百分比用户 CPU 使用率高,通常说明有应用程序比较繁忙。
系统 CPU 使用率,表示 CPU 在内核态运行时间百分比(不包括中断)。系统 CPU 使用率高,说明内核比较繁忙。
4G的进程地址空间(内存)被人为的分为两个部分--用户空间与内核空间。用户空间从0到3G(0xc0000000),内核空间占据3G到4G。用户进程通常情况下只能访问用户空间的虚拟地址,不能访问内核空间的虚拟地址。例外情况只有用户进程进行系统调用(代表用户进程在内核态执行)等时刻可以访问到内核空间。
所以内核的操作占用内核空间,进程的操作占用进程空间
用户空间对应进程,所以每当进程切换,用户空间就会跟着变化;而内核空间是由内核负责映射,它并不会跟着进程变化,是固定的。内核空间地址有自己对应的页表,用户进程各自有不同的页表。
每个进程的用户空间都是完全独立、互不相干的。
ni
用户进程空间内,改变过优先级的进程占用CPU百分比
进程都有优先级的,如果调节优先级,需要耗费cpu的时间段的,那就消耗这个ni
如果ni很高,那就是进程可能频繁调换优先级(当前理解)
id
剩下的id就是除了id以为占用cpu时间片的空闲部分,相当于空间cpu的百分比。
wa
wa指的是CPU等待磁盘写入完成的时间,就是说前提是要进行IO操作。
在进行IO操作的时候,如果程序是阻塞的,他cpu会等待数据写入磁盘才能完成写操作。所以这个时候cpu等待的时间就是wa。
举例:
使用cp复制,如果文件夹中有多个文件,他每复制一次,cpu就指挥文件复制,但是硬盘读写的时候,cpu是要等待的,这时候cpu不动作只是等待。
所以如果一台机器看到wa特别高,那么一般说明是磁盘IO出现问题,可以使用iostat等命令继续进行详细分析。
hi和si
如果程序没有问题,那是没有hi和si的。当键盘打字,cpu就要去立即处理这个东西,那就是中断,意味着中断当前操作来处理需要立即处理的东西。
软中断和硬中断理论一样,但是软件的,具体看详细说明
st
st的解释是实时,但是与虚拟化有关
比如centos上搞kvm(虚拟机,类似win的vmver),那在本机查询st很高
当前理解为,为虚拟机提供的cpu时间片占用数。比如开启2个虚拟机,那虚拟机用的cpu还是由真机提供的,这里应该是应用于虚拟化的数量。
查看每一个cpu的状态mpstat
mpstat -P ALL

irq: 硬件中断CPU用量;
sofr: 软件中断CPU用量;
iowait:就是上面说的wa
steal: 耗费在服务其他租户的时间(不懂);
guest: 花在访客虚拟机的时间(不懂);
三.总结
用户 CPU 和 Nice CPU 高,说明用户态进程占用了较多的 CPU,所以应该着重排查进程的性能问题
系统 CPU 高,说明内核态占用了较多的 CPU所以应该着重排查内核线程或者系统调用的性能问题
若 %iowait 的值过高,表示硬盘存在I/O瓶颈;
若 %idle 的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量;
若 %idle 的值持续低于1,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是 CPU;
CPU状态信息us,sy等含义的更多相关文章
- CPU状态信息us,sy,ni,id,wa,hi,si,st含义
转自:http://blog.csdn.net/sasoritattoo/article/details/9318893 转自:http://fishermen.iteye.com/blog/1995 ...
- top命令查看CPU状态信息:%us、%sy、%ni、%id、%wa、%hi、%si、%st 表示的是什么意思
Linux CPU负载状态:%us/%sy/%ni/%id/%wa/%hi/%si/%st含义 2018-08-26 分类:Linux 评论(0) 缙哥哥发现用了雅黑的探针,在 Linux 的 C ...
- 统计Linux下的CPU状态信息
def cpu(): all_cpus=[] with open('e:/cpu.txt') as f: core={} for line in f.readlines(): ab=line.spli ...
- Linux CPU负载状态:%us/%sy/%ni/%id/%wa/%hi/%si/%st含义
原文 Linux CPU负载状态:%us/%sy/%ni/%id/%wa/%hi/%si/%st含义 缙哥哥发现用了雅黑的探针,在 Linux 的 CPU 状态信息中发现,有“%us.%sy.%ni. ...
- aix 查看内存,CPU 配置信息
内存lsattr -El mem0cpu lsdev -C |grep procCPU的信息lsattr -El proc0 #bootinfo -r查看物理内存 使用命令# lsdev ...
- MySQL优化:使用show status查看MySQL服务器状态信息
在网站开发过程中,有些时候我们需要了解MySQL的服务器状态信息,譬如当前MySQL启动后的运行时间,当前MySQL的客户端会话连接数,当前MySQL服务器执行的慢查询数,当前MySQL执行了多少SE ...
- redis查看状态信息
redis查看状态信息 info all|default Info 指定项 server服务器信息 redis_version : Redis 服务器版本 redis_git_sha1 : Git S ...
- nginx入门与实战 安装 启动 配置nginx Nginx状态信息(status)配置 正向代理 反向代理 nginx语法之location详解
nginx入门与实战 网站服务 想必我们大多数人都是通过访问网站而开始接触互联网的吧.我们平时访问的网站服务 就是 Web 网络服务,一般是指允许用户通过浏览器访问到互联网中各种资源的服务. Web ...
- Android 获得本地IP地址、外网IP地址、本设备网络状态信息、本地Mac地址
本地内网IP和外网IP的区别: 根据我的经验一台电脑需要两个ip才可以上网,一个是本地的内网ip 一个是外网的ip 本地的ip 一般是192.168.1.2这种样子 只要在不同的路由器上可以重复 外 ...
随机推荐
- Python 爬取 猫眼
1. import requests import re import pymongo MONGO_URL='localhost'#建立连接 MONGO_DB='Maoyan'#创建数据库 clien ...
- AOP声明式事务
1.spring-dao.xml修改 参考上面工程配置 <?xml version="1.0" encoding="UTF-8"?> <bea ...
- 面向对象中static的理解(2) (单例模式)
作用:只产生一个对象 1 class Yoshi { 2 public: 3 //外界只能通过这种方式调用这一个对象,返回必须是引用 4 static Yoshi& getInstance() ...
- banner.txt
Spring Boot Version: ${spring-boot.version} __----~~~~~~~~~~~------___ . . ~~//====...... __--~ ~~ - ...
- PHP数组详细介绍(带示例代码)
PHP 中的数组实际上是一个有序映射.映射是一种把 values 关联到 keys 的类型.此类型在很多方面做了优化,因此可以把它当成真正的数组,或列表(向量),散列表(是映射的一种实现),字典,集合 ...
- 洛谷 P3676 - 小清新数据结构题(动态点分治)
洛谷题面传送门 题目名称好评(实在是太清新了呢) 首先考虑探究这个"换根操作"有什么性质.我们考虑在换根前后虽然每个点的子树会变,但整棵树的形态不会边,换句话说,割掉每条边后,得到 ...
- Codeforces 889E - Mod Mod Mod(dp+状态设计)
Codeforces 题目传送门 & 洛谷题目传送门 题目名称 hopping 我们记 \(x_i=X\bmod a_1\bmod a_2\bmod\dots\bmod a_i\),也就是 \ ...
- Congratulations, FYMS-OIers!
Fuzhou Yan'an Middle School Online Judge 又一次上线啦! 真的是一波三折,主要功劳必须得属于精通网页编排.ubuntu 下如何使用 rm -rf 语句但是又能够 ...
- Redis的六种特性 场景
Redis的六种特性 l Strings l Hashs l Lists l Sets l Sorted Sets l Pub/Sub Redis各特性的应用场景 Strings Strings 数据 ...
- CMakeLists.txt添加多个源代码
coos2d-x 3.17.2 C++工程,安卓编译使用CMake,按照模板给的写法,只能一个一个源文件添加:如果需要添加大量的C++源代码,这种方式肯定不可取:原来的写法: 1 list(APPEN ...