top命令和系统负载
1 top中的字段说明
top是一个实时系统监视工具,可以动态展现出 CPU 使用率、内存使用情况、进程状态等信息,注意这些显示的文本不能直接使用 > 追加到文件中。
[root@vv~]# top -bn 1 | head
top - 20:08:28 up 138 days, 10:29, 4 users, load average: 0.07, 0.05, 0.05
Tasks: 110 total, 1 running, 109 sleeping, 0 stopped, 0 zombie
%Cpu(s): 3.2 us, 0.0 sy, 0.0 ni, 96.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1798504 total, 97356 free, 500408 used, 1200740 buff/cache
KiB Swap: 1049596 total, 1049596 free, 0 used. 1117880 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND1 root 20 0 199480 3436 1844 S 0.0 0.2 30:34.35 systemd2 root 20 0 0 0 0 S 0.0 0.0 0:00.13 kthreadd4 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
%Cpu(s): 3.2 us, 0.0 sy, 0.0 ni, 96.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
-
us:用户空间占用的CPU时间百分比,表示运行用户进程的时间。
-
sy:内核空间占用的CPU时间百分比,表示运行内核进程的时间。
-
ni:优先级已调整(nice)进程占用的CPU时间百分比。
-
id:空闲CPU时间百分比,表示CPU没有忙于处理任何任务的时间。
-
wa:等待I/O操作的CPU时间百分比,表示CPU等待输入/输出完成的时间。
-
hi:硬中断占用的CPU时间百分比,表示处理硬件中断的时间。
中断:允许硬件设备或软件程序在处理器的当前任务中打断执行,以便立即处理某些紧急事件或请求
-
硬中断是由硬件设备(如网卡、硬盘等)发起的中断信号,通常用于处理设备的紧急请求,优先级较高
-
si:软中断占用的CPU时间百分比,表示处理软件中断的时间。
- 软中断则是由软件或操作系统发起的中断,用于处理非紧急的任务,如网络协议处理或定时器事件,优先级相对较低
-
st:被其他虚拟机窃取的CPU时间百分比,表示虚拟化环境下被分配给其他虚拟机的CPU时间。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 4050 root 20 0 7393848 946260 7016 S 11.6 47.9 2:02.83 java
-
PID
:进程的 ID,例如 1234 和 5678。 -
USER
:进程的所有者,例如root
和user1
。 -
PR
:进程的优先级,通常是 20。PR
值的范围通常是从-20
到+19
。优先级的数值越小,表示进程的优先级越高,越容易被调度器分配给 CPU-
静态优先级:静态优先级是 Linux 内核用于普通进程调度的优先级,由进程在启动时设定的
nice
值(以及其他因素)决定,且在进程生命周期内通常保持不变。低静态优先级的进程 会在 CPU 时间分配中被 延迟执行,可能会因为其他高优先级进程的执行而受到影响-
静态优先级的范围通常是从 100 到 139,并由进程的
nice
值 影响。 -
nice
值为 0 的进程有一个标准的优先级,通常为 120 -
nice
值较小(如 -20) 会给进程提供较高的静态优先级(即更高的数字优先级)。 -
nice
值较大(如 +19) 会导致较低的静态优先级。
-
-
实时优先级:是操作系统分配的 最高优先级,不受
nice
值的影响
-
-
NI
:进程的 nice 值。可以用于影响进程的 PR 优先级nice
值与调度优先级的关系:nice
值越小,进程优先级越高,系统调度时更倾向于分配更多的 CPU 时间给该进程nice
值越大,进程优先级越低,调度器会让其他进程更优先执行该进程会被“让步”
nice
值与PR
(优先级)的关系:nice
值直接影响PR
(进程的调度优先级),但PR
还会受到进程的其他因素(如静态优先级、实时优先级等)的影响
-
VIRT
:进程的虚拟内存大小。单位默认是KB -
RES
:进程使用的物理内存大小。 -
SHR
:进程共享的内存大小。进程使用的共享内存的大小。共享内存是多个进程之间共享的内存区域,允许多个进程访问相同的内存地址空间,以实现高效的数据共享。这种方法比其他IPC机制(如管道、消息队列等)要高效得多,因为避免了数据复制的开销
-
S
:进程状态,S
表示正在休眠。R
表示进程正在运行-
常见状态 解释 R 运行中(正在运行或就绪等待运行) S 可中断睡眠(等待某个事件) D 不可中断睡眠(通常与 I/O 操作相关) T 停止(由于信号,通常是暂停) Z 僵尸(已经终止,但父进程尚未收集状态) I 空闲(内核空闲进程) W 分页等待(进程在等待交换或内存分页) X 死亡(进程已经消失) + 前台进程(终端控制)
-
-
%CPU
:进程占用的 CPU 百分比。 -
%MEM
:进程占用的物理内存的百分比。 -
TIME+
:该进程的累计 CPU 时间。 -
COMMAND
:进程名称。
1.top命令可以看到CPU使用率超过100%
在
top
命令中,CPU 使用率可以超过 100%,在多核或多线程系统中。每个 CPU 核心的使用率可以单独计算,因此总使用率是所有核心的使用率之和。例如,若有 4 个核心,理论上最大值可以达到 400%。如果某个进程充分利用了多个核心,CPU 使用率就可能显示为超过 100%
2 top命令用法
top是交互式查看,可以再输入其他字母进行交互。
top选项 | 说明 |
---|---|
-b | 非交互模式 |
-n | 只输出1次结果 |
-H | 查看线程信息 |
-p | 指定进程PID,如 top -p 1234 |
top交互按键 | 说明 |
---|---|
f | 自定义显示的列 |
k | 终止一个进程(需要输入 PID 和信号) |
r | 重新设置一个进程的优先级(需要输入 PID 再输入 优先级) |
P | 按CPU占用排序 |
M | 按内存占用排序 |
z | 进入颜色模式 |
shift + < > | 左右选择 |
x | 标记当前列 |
q | 退出 top |
u | 显示特定用户的进程 |
- 高亮查看,如下图
3 top+awk查看僵尸进程数量
思路:截取第二行的倒数第二列
注意:awk只能处理非交互式的文本信息
-
[root@centos7 ~]# top top - 13:30:24 up 10 min, 3 users, load average: 0.30, 0.12, 0.07 Tasks: 220 total, 1 running, 219 sleeping, 0 stopped, 0 zombie
-
方法1: [root@centos7 ~]# top -bn1 | awk 'NR==2' | awk '{print $(NF-1)}' 0 方法2: [root@centos7 ~]# top -bn1 | awk 'NR==2' | awk '{print $(NF-1),$(NF)}' 0 zombie 方法3: [root@centos7 ~]# top -bn1 | awk 'NR==2{print $(NF-1),$(NF)}' 0 zombie
4 htop 图形化操作
htop需要手动安装,yum -y install htop
,这时可以通过鼠标点击终端来切换需要查看的指标
5 系统负载高了如何排查
- 排查原因
- CPU高?
- uptime 查看负载情况
- top,查看用户/系统CPU高
- IO高?
- top命令的第三行wa表示IO状态
- iotop查看
- 最后结束对应进程
IO命令 | 说明 |
---|---|
-bn | 通top |
-o | 只查看正在读写的进程 |
5.1 vmstat 命令介绍
系统监视工具,查看swap统计信息以及系统的整体状态。vmstat
还可以关于进程、内存、分页、块 I/O、陷阱和 CPU 活动的详细信息
vmstat 5 3 | 显示虚拟内存统计信息,每 5 秒报告一次,共报告 3 次 |
vmstat -d | 查看磁盘信息 |
vmstat -p /dev/sda | 打印sda磁盘信息 |
vmstat -s | 显示各种事件的总计 |
vmstat -t | 在输出中包含时间戳 |
vmstat输出列 | 说明 |
---|---|
r | 运行队列中等待 CPU 的进程数量 |
b | 等待 I/O 的进程数量 |
swpd | 已使用的虚拟内存(swap)的大小,单位是 KB |
free | 空闲内存的大小,单位是 KB |
buff | 用作缓冲区的内存量,单位是 KB |
cache | 用作缓存的内存量,单位是 KB |
si | 从磁盘交换到内存的交换数据量,单位是 KB/s,如果 si 值较高,说明系统可能存在内存压力,频繁进行磁盘交换 |
so | 从内存交换到磁盘的交换数据量,单位是 KB/s,如果 so 值较高,可能表示内存不足 |
bi | 每秒从块设备(磁盘)读取的数据量,单位是 KB/s |
bo | 每秒写入到块设备(磁盘)的数据量,单位是 KB/s |
in | 每秒中断的次数;通常与硬件(如磁盘或网络接口)或其他外部事件有关 |
cs | 每秒上下文切换的次数;如果此值很高,可能表明系统负载较重 |
us | 用户空间(用户进程)占用的 CPU 时间百分比;表示应用程序的计算负载 |
sy | 内核空间(系统进程)占用的 CPU 时间百分比;表示内核或系统进程的负载 |
id | CPU 空闲时间百分比 |
wa | CPU 等待 I/O 完成的时间百分比 |
st | 被虚拟化环境占用的 CPU 时间百分比(如被 hypervisor 占用) |
每2秒刷新一次查看
[root@qwe~]# vmstat 2
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----r b swpd free buff cache si so bi bo in cs us sy id wa st1 0 0 159096 159024 940948 0 0 4 8 1 1 1 1 99 0 00 0 0 160564 159024 940892 0 0 0 0 1051 1633 1 1 99 0 00 0 0 156708 159024 941220 0 0 0 0 2927 2673 1 2 97 0 0
tps
(每秒 I/O 操作次数)kB_read/s
(每秒读取的 KB 数)kB_wrtn/s
(每秒写入的 KB 数)kB_read
和kB_wrtn
(总读取和写入的 KB 数)
5.2 iostat命令介绍
[root@qwe~]# iostat
Linux 3.10.0-1160.108.1.el7.x86_64 (qwe) 11/12/2024 _x86_64_ (2 CPU)avg-cpu: %user %nice %system %iowait %steal %idle0.59 0.00 0.63 0.04 0.00 98.74Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
vda 2.59 7.54 14.87 120804422 238351765
5.3 情况1:CPU高、Load高
- 通过top命令查找占用CPU最高的进程PID;
- 通过top -Hp PID查找占用CPU最高的线程TID;
- 对于java程序,使用jstack打印线程堆栈信息(可联系业务进行排查定位);
- 通过printf %x tid打印出最消耗CPU线程的十六进制;
- 在堆栈信息中查看该线程的堆栈信息;
5.4 情况2:CPU低、Load高
7.54 14.87 120804422 238351765
## 5.3 情况1:CPU高、Load高- 通过top命令查找占用CPU最高的进程PID;
- 通过top -Hp PID查找占用CPU最高的线程TID;
- 对于java程序,使用jstack打印线程堆栈信息(可联系业务进行排查定位);
- 通过printf %x tid打印出最消耗CPU线程的十六进制;
- 在堆栈信息中查看该线程的堆栈信息;## 5.4 情况2:CPU低、Load高- 通过top命令查看CPU等待IO时间,即%wa
相关文章:
top命令和系统负载
1 top中的字段说明 top是一个实时系统监视工具,可以动态展现出 CPU 使用率、内存使用情况、进程状态等信息,注意这些显示的文本不能直接使用 > 追加到文件中。 [rootvv~]# top -bn 1 | head top - 20:08:28 up 138 days, 10:29, 4 users, load av…...
ES6 混合 ES5学习记录
基础 数组 let arr [数据1,数据2,...数组n] 使用数组 数组名[索引] 数组长度 arr.length 操作数组 arr.push() 尾部添加一个,返回新长度 arr.unshift() 头部添加一个,返回新长度 arr.pop() 删除最后一个,并返回该元素的值 shift 删除第一个单元…...
HTTP 状态码大全
常见状态码 200 OK # 客户端请求成功 400 Bad Request # 客户端请求有语法错误 不能被服务器所理解 401 Unauthorized # 请求未经授权 这个状态代码必须和WWW- Authenticate 报头域一起使用 403 Forbidden # 服务器收到请求但是拒绝提供服务 404 Not Found # 请求资源不存…...
Redis学习(13)| Redisson 看门狗机制深度解析
文章目录 摘要1. 引言2. 看门狗的工作原理2.1 自动续期2.2 防止意外释放2.3 合理配置 3. 应用场景4. 最佳实践4.1 设置合理的lockWatchdogTimeout4.2 避免死锁4.3 监控和日志 5. 实现方式6. 使用示例7. 结论 摘要 Redisson 是一个用于 Redis 的 Java 客户端,它提供…...
【开源大屏】玩转开源积木BI,从0到1设计一个大屏
积木 BI 重磅推出免费大屏设计器!功能超强大,操作超流畅,体验超酷炫。快来体验一下吧。 让我们一起来看一下如何从0到1设计一个大屏。 一、积木BI大屏介绍 积木BI可视化数据大屏 是一站式数据可视化展示平台,旨在帮助用户快速通…...
基于PCRLB的CMIMO雷达资源调度方法(MATLAB实现)
集中式多输入多输出CMIMO雷达作为一种新体制雷达,能够实现对多个目标的同时多波束探测,在多目标跟踪领域得到了广泛运用。自从2006年学者Haykin提出认知雷达理论,雷达资源分配问题就成为一个有实际应用价值的热点研究内容。本文基于目标跟踪的…...
PAT--1035 插入与归并
题目描述 根据维基百科的定义: 插入排序是迭代算法,逐一获得输入数据,逐步产生有序的输出序列。每步迭代中,算法从输入序列中取出一元素,将之插入有序序列中正确的位置。如此迭代直到全部元素有序。 归并排序进行如…...
Ubuntu20.04.6编译OpenWRT23.05.5错误
在Ubuntu20.04.6编译OpenWRT23.05.5时,会出现如下提示: fatal error: asm/types.h: No such file or directory 如果我们执行如下命令: sudo ln -s /usr/include/asm-generic /usr/include/asm 此时再次编译,会有如下提示&…...
一文说清flink从编码到部署上线
引言:目前flink的文章比较多,但一般都关注某一特定方面,很少有一个文章,从一个简单的例子入手,说清楚从编码、构建、部署全流程是怎么样的。所以编写本文,自己做个记录备查同时跟大家分享一下。本文以简单的mysql cdc为例展开说明。 环境说明:MySQL:5.7;flink:1.14.0…...
【5G】5G Physical Layer物理层(一)
5G多址接入和物理层与长期演进(LTE)存在一些差异。在下行方向,5G与LTE相似,依旧采用正交频分多址(OFDMA)。而在上行方向,5G采用了OFDMA和单载波频分多址(SC-FDMA)&#x…...
GauHuman阅读笔记【3D Human Modelling】
笔记目录 1. 基本信息2. 理解(个人初步理解,随时更改)3. 精读SummaryResearch Objective(s)Background / Problem StatementMethod(s)EvaluationConclusionReferences1. 基本信息 题目:GauHuman: Articulated Gaussian Splatting from Monocular Human Videos时间:2023.12…...
qemu安装arm64架构银河麒麟
qemu虚拟化软件,可以在一个平台上模拟另一个硬件平台,可以支持多种处理器架构。 一、安装 安装教程:https://blog.csdn.net/qq_36035382/article/details/125308044 下载链接:https://qemu.weilnetz.de/w64/2024/ 我下载的是 …...
在Elasticsearch (ES) 中,integer 和 integer_range的区别
在Elasticsearch (ES) 中,integer 和 integer_range 是两种不同的字段类型,它们用于存储和查询不同类型的数据。 Integer: integer 类型是用于存储32位整数值的简单数据类型。这个类型的字段适合用来表示单一的整数数值,例如用户的年龄、商品的数量等。支持标准的数值操作,…...
Playwright中Page类的方法
导航和页面操作 goto(url: str, **kwargs: Any): 导航到一个URL。 reload(**kwargs: Any): 重新加载当前页面。 go_back(**kwargs: Any): 导航到会话历史记录中的前一个页面。 go_forward(**kwargs: Any): 导航到会话历史记录中的下一个页面。 set_default_navigation_tim…...
硬链接方式重建mysql大表
硬链接方式重建mysql大表 操作步骤 选择数据库 select datadir; 进入数据文件目录 cd /data/mysql/mydata/testdb 创建硬连接 ln test_trans_msg_xx.ibd test_service_trans_msg_xx.ibd.bak ll test_trans_msg_xx* 进库删除表 DROP TABLE test_trans_msg_xx; 重建表 CREATE T…...
GPIO在ZYNQ7000中的结构和相关寄存器解析
GPIO MASK DATA LSW和 MASK DATA MSW LSW和MSW分别是LSW (Least Significant Word)和MSW (Most Significant Word)。 因为DATA是u32,所以如果寄存器的基址是XGPIOPS_DATA_LSW_OFFSET,那么32位就能同时让高16位的MASK DATA MSW]31:16和 MASK DATA LSW的bit7同时为…...
Qt Xlsx安装教程
Qt Xlsx安装教程 安装perl 如果没有安装perl,请参考perl Window安装教程 下载QtXlsxWriter源码 下载地址 ming32-make编译32 lib库 C:\Qt\Qt5.12.12\5.12.12\mingw73_32>d: D:\>cd D:\Code\QtXlsxWriter-master\QtXlsxWriter-master D:\Code\QtXlsxWrit…...
Certimate自动化SSL证书部署至IIS服务器
前言:笔者上一篇内容已经部署好了Certimate开源系统,于是开始搭建部署至Linux和Windows服务器,Linux服务器十分的顺利,申请证书-部署证书很快的完成了,但是部署至Windows Server的IIS服务时,遇到一些阻碍&a…...
【中工开发者】鸿蒙商城实战项目(启动页和引导页)
创建一个空项目 先创建一个新的项目选择第一个,然后点击finish 接下来为项目写一个名字,然后点击finish。 把index页面的代码改成下面代码块的代码,就能产生下面的效果 Entry Component struct Index {build() {Column(){Blank()Column(){…...
跟李笑来学美式俚语(Most Common American Idioms): Part 63
Most Common American Idioms: Part 63 前言 本文是学习李笑来的Most Common American Idioms这本书的学习笔记,自用。 Github仓库链接:https://github.com/xiaolai/most-common-american-idioms 使用方法: 直接下载下来(或者clone到本地…...
scala中如何解决乘机排名相关的问题
任务目标: 1.计算每个同学的总分和平均分 2.按总分排名,取前三名 3.按单科排名,取前三名 好的,我们可以用Scala来完成这个任务。下面是一个简单的示例代码,它将演示如何实现这些功能: // 假设我们有一个…...
OpenCV相机标定与3D重建(10)眼标定函数calibrateHandEye()的使用
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 计算手眼标定: g T c _{}^{g}\textrm{T}_c gTc cv::calibrateHandEye 是 OpenCV 中用于手眼标定的函数。该函数通过已知的机器人…...
Hadoop生态圈框架部署(九-2)- Hive HA(高可用)部署
文章目录 前言一、Hive部署(手动部署)下载Hive1. 上传安装包2. 解压Hive安装包2.1 解压2.2 重命名2.3 解决冲突2.3.1 解决guava冲突2.3.2 解决SLF4J冲突 3. 配置Hive3.1 配置Hive环境变量3.2 修改 hive-site.xml 配置文件3.3 配置MySQL驱动包3.3.1 下在M…...
docker 相关操作
1. 以下是一些常见的 Docker 命令: docker --version显示安装的 Docker 版本。 docker pull <image_name>从 Docker Hub 或其他镜像仓库下载镜像。 docker build -t <image_name> <path>从指定路径的 Dockerfile 构建 Docker 镜像。 docker i…...
AI作图效率高,亲测ToDesk、顺网云、青椒云多款云电脑AIGC实践创作
一、引言 随着人工智能生成内容(AIGC)的兴起,越来越多的创作者开始探索高效的文字处理和AI绘图方式,而云电脑也正成为AIGC创作中的重要工具。相比于传统的本地硬件,云电脑在AIGC场景中展现出了显著的优势,…...
【代码随想录day57】【C++复健】 53. 寻宝(prim算法);53. 寻宝(kruskal算法)
53. 寻宝(prim算法) 好像在研究生的算法课上学过prim算法和kruskal算法,不过当时只是了解了一下大致的概念和流程,并没有涉及到如何去写代码的部分,今天也算是学习了一下这两个算法的代码应该如何去实现,还…...
C++中多态
1) 什么是多态性?C中如何实现多态? 多态性是指通过基类指针或引用调用派生类的函数,实现不同的行为 多态性可以提高代码的灵活性和可扩展性,使程序能够根据不同的对象类型执行不同的操作。 2)C中如何实现多态&#…...
【实现多网卡电脑的网络连接共享】
电脑A配备有两张网卡,分别命名为eth0和eth1(对于拥有超过两张网卡的情况,解决方案相似)。其中,eth0网卡能够连接到Internet,而eth1网卡则通过网线直接与另一台电脑B相连(在实际应用中࿰…...
算力介绍与解析
算力(Computing Power)是指计算机系统在单位时间内处理数据和执行计算任务的能力。算力是衡量计算机性能的重要指标,直接影响计算任务的速度和效率。 算力的分类和单位 a. 基础算力:以CPU的计算能力为主。适用于各个领域的计算。…...
解决 MyBatis 中空字符串与数字比较引发的条件判断错误
问题复现 假设你在 MyBatis 的 XML 配置中使用了如下代码: <if test"isCollect ! null"><choose><when test"isCollect 1">AND exists(select 1 from file_table imgfile2 where task.IMAGE_SEQimgfile2.IMAGE_SEQ and im…...
想学Wordpress建站/互联网整合营销推广
面向对象设计在网上一直说不清到底是几种,5种?6种?7种? 这里我截取了《Java设计模式》一书的说法。7种设计原则6原则1法则。 7种原则主要从高内聚、低耦合的考量得出的。主要焦距在抽象、接口、实体的关系间。面向对象编程的三大…...
某企业网站建设方案2000字/上海外包seo
本教程讲解PHP处理会话函数session和cookie总结 PHP处理会话函数包括:session_start、session_register、session_is_registered、session_unregister、Session_destroy等等。相信大家在学习php语言的时候多多少少都会对php的会话功能有所了解,下面小编给…...
佛山网站制作平台/泰安网站推广优化
问题描述 ACM 小组接受了计算机组成原理教研室的一项开发任务,要为计算机组成原理课程开发一款实验面板仿真系统,其中有一项数字显示屏的任务分配给了你。数字显示屏是由一组数字显示单元组成的,每个数字显示单元由七个液晶显示管组成&#…...
php网站搬家软件/网站发布
前言 最近一直比较忙没有太多时间去更新博客,接下来会一直持续发表相关内容博客,上一篇我们讲到了EF Core中的原始查询,这节我们再来叙述一下原始查询,本文是基于在项目当中用到时发现的问题。 话题 我们通过EF Core原始查询主要是…...
外贸网站导航栏建设技巧/杭州seo排名
贮油点问题…..一道送命系列的递推… 描述 Description 一辆重型卡车欲穿过S公里的沙漠,卡车耗汽油为1升/公里,卡车总载油能力为W公升。显然卡车装一次油是过不了沙漠的。因此司机必须设法在沿途建立若干个贮油点,使卡车能顺利穿过沙漠。试…...
网站将要准备建设的内容/优化营商环境的金句
bash中的算术运算:help let , -, *, /, %取模(取余), **(乘方) 变量名 | 变量名:原有基础1 实现算术运算:(前面三种执行的结果一样) (1) let var算术表达式 (2) var$[算术表达式] (3) var$((算术表达式)) (…...