当前位置: 首页 > news >正文

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:进程的所有者,例如 rootuser1

  • 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只能处理非交互式的文本信息

  1. [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
    
  2. 方法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 系统负载高了如何排查

  1. 排查原因
  2. CPU高?
    • uptime 查看负载情况
    • top,查看用户/系统CPU高
  3. IO高?
    • top命令的第三行wa表示IO状态
    • iotop查看
  4. 最后结束对应进程
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 时间百分比;表示内核或系统进程的负载
idCPU 空闲时间百分比
waCPU 等待 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_readkB_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是一个实时系统监视工具&#xff0c;可以动态展现出 CPU 使用率、内存使用情况、进程状态等信息&#xff0c;注意这些显示的文本不能直接使用 > 追加到文件中。 [rootvv~]# top -bn 1 | head top - 20:08:28 up 138 days, 10:29, 4 users, load av…...

ES6 混合 ES5学习记录

基础 数组 let arr [数据1&#xff0c;数据2&#xff0c;...数组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 客户端&#xff0c;它提供…...

【开源大屏】玩转开源积木BI,从0到1设计一个大屏

积木 BI 重磅推出免费大屏设计器&#xff01;功能超强大&#xff0c;操作超流畅&#xff0c;体验超酷炫。快来体验一下吧。 让我们一起来看一下如何从0到1设计一个大屏。 一、积木BI大屏介绍 积木BI可视化数据大屏 是一站式数据可视化展示平台&#xff0c;旨在帮助用户快速通…...

基于PCRLB的CMIMO雷达资源调度方法(MATLAB实现)

集中式多输入多输出CMIMO雷达作为一种新体制雷达&#xff0c;能够实现对多个目标的同时多波束探测&#xff0c;在多目标跟踪领域得到了广泛运用。自从2006年学者Haykin提出认知雷达理论&#xff0c;雷达资源分配问题就成为一个有实际应用价值的热点研究内容。本文基于目标跟踪的…...

PAT--1035 插入与归并

题目描述 根据维基百科的定义&#xff1a; 插入排序是迭代算法&#xff0c;逐一获得输入数据&#xff0c;逐步产生有序的输出序列。每步迭代中&#xff0c;算法从输入序列中取出一元素&#xff0c;将之插入有序序列中正确的位置。如此迭代直到全部元素有序。 归并排序进行如…...

Ubuntu20.04.6编译OpenWRT23.05.5错误

在Ubuntu20.04.6编译OpenWRT23.05.5时&#xff0c;会出现如下提示&#xff1a; fatal error: asm/types.h: No such file or directory 如果我们执行如下命令&#xff1a; sudo ln -s /usr/include/asm-generic /usr/include/asm 此时再次编译&#xff0c;会有如下提示&…...

一文说清flink从编码到部署上线

引言:目前flink的文章比较多,但一般都关注某一特定方面,很少有一个文章,从一个简单的例子入手,说清楚从编码、构建、部署全流程是怎么样的。所以编写本文,自己做个记录备查同时跟大家分享一下。本文以简单的mysql cdc为例展开说明。 环境说明:MySQL:5.7;flink:1.14.0…...

【5G】5G Physical Layer物理层(一)

5G多址接入和物理层与长期演进&#xff08;LTE&#xff09;存在一些差异。在下行方向&#xff0c;5G与LTE相似&#xff0c;依旧采用正交频分多址&#xff08;OFDMA&#xff09;。而在上行方向&#xff0c;5G采用了OFDMA和单载波频分多址&#xff08;SC-FDMA&#xff09;&#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虚拟化软件&#xff0c;可以在一个平台上模拟另一个硬件平台&#xff0c;可以支持多种处理器架构。 一、安装 安装教程&#xff1a;https://blog.csdn.net/qq_36035382/article/details/125308044 下载链接&#xff1a;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&#xff0c;那么32位就能同时让高16位的MASK DATA MSW]31:16和 MASK DATA LSW的bit7同时为…...

Qt Xlsx安装教程

Qt Xlsx安装教程 安装perl 如果没有安装perl&#xff0c;请参考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服务器

前言&#xff1a;笔者上一篇内容已经部署好了Certimate开源系统&#xff0c;于是开始搭建部署至Linux和Windows服务器&#xff0c;Linux服务器十分的顺利&#xff0c;申请证书-部署证书很快的完成了&#xff0c;但是部署至Windows Server的IIS服务时&#xff0c;遇到一些阻碍&a…...

【中工开发者】鸿蒙商城实战项目(启动页和引导页)

创建一个空项目 先创建一个新的项目选择第一个&#xff0c;然后点击finish 接下来为项目写一个名字&#xff0c;然后点击finish。 把index页面的代码改成下面代码块的代码&#xff0c;就能产生下面的效果 Entry Component struct Index {build() {Column(){Blank()Column(){…...

跟李笑来学美式俚语(Most Common American Idioms): Part 63

Most Common American Idioms: Part 63 前言 本文是学习李笑来的Most Common American Idioms这本书的学习笔记&#xff0c;自用。 Github仓库链接&#xff1a;https://github.com/xiaolai/most-common-american-idioms 使用方法: 直接下载下来&#xff08;或者clone到本地…...

基于大模型的 UI 自动化系统

基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

React第五十七节 Router中RouterProvider使用详解及注意事项

前言 在 React Router v6.4 中&#xff0c;RouterProvider 是一个核心组件&#xff0c;用于提供基于数据路由&#xff08;data routers&#xff09;的新型路由方案。 它替代了传统的 <BrowserRouter>&#xff0c;支持更强大的数据加载和操作功能&#xff08;如 loader 和…...

CMake基础:构建流程详解

目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

Nginx server_name 配置说明

Nginx 是一个高性能的反向代理和负载均衡服务器&#xff0c;其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机&#xff08;Virtual Host&#xff09;。 1. 简介 Nginx 使用 server_name 指令来确定…...

【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验

系列回顾&#xff1a; 在上一篇中&#xff0c;我们成功地为应用集成了数据库&#xff0c;并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了&#xff01;但是&#xff0c;如果你仔细审视那些 API&#xff0c;会发现它们还很“粗糙”&#xff1a;有…...

dify打造数据可视化图表

一、概述 在日常工作和学习中&#xff0c;我们经常需要和数据打交道。无论是分析报告、项目展示&#xff0c;还是简单的数据洞察&#xff0c;一个清晰直观的图表&#xff0c;往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server&#xff0c;由蚂蚁集团 AntV 团队…...

人机融合智能 | “人智交互”跨学科新领域

本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...

uniapp手机号一键登录保姆级教程(包含前端和后端)

目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号&#xff08;第三种&#xff09;后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...

怎么让Comfyui导出的图像不包含工作流信息,

为了数据安全&#xff0c;让Comfyui导出的图像不包含工作流信息&#xff0c;导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo&#xff08;推荐&#xff09;​​ 在 save_images 方法中&#xff0c;​​删除或注释掉所有与 metadata …...