从uptime看linux平均负载
从前遇到系统卡顿只会top。。top看不出来怎么搞呢?
Linux系统提供了丰富的命令行工具,以帮助用户和系统管理员监控和分析系统性能。在这些工具中,uptime、mpstat和pidstat是非常有用的命令,它们可以帮助你理解系统的平均负载以及资源使用情况。

uptime命令
uptime命令用于显示系统运行的时间、用户数量以及平均负载。平均负载是指在特定时间间隔内,系统处于运行状态和不可中断状态的平均进程数。这个数字给出了系统工作负载的一个概览。
使用uptime命令
root@gl:/home/gl# uptime08:58:38 up 4:17, 4 users, load average: 0.97, 1.00, 0.86
这里的08:58:38是当前时间,up 4:17 表示系统已经运行了4小时17分钟,4 users表示有4个用户登录系统,load average: 0.97, 1.00, 0.86分别表示过去1分钟、5分钟和15分钟的平均负载。
mpstat命令
mpstat命令用于报告CPU的统计信息。它可以显示每个可用CPU的性能统计,帮助你分析CPU的使用情况。
使用mpstat命令
Linux 4.15.0-213-generic (gl) 01/16/2024 _x86_64_ (2 CPU)08:58:13 AM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
08:58:14 AM all 0.00 0.00 8.75 25.62 0.00 3.12 0.00 0.00 0.00 62.50
08:58:14 AM 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
08:58:14 AM 1 0.00 0.00 23.33 68.33 0.00 8.33 0.00 0.00 0.00 0.00
可以看出,系统中有两个cpu,1号cpu(%iowait)68%,说明存在大量的IO操作。
pidstat命令
pidstat用于监控各个进程的资源使用情况,包括CPU、内存、磁盘I/O等。
使用pidstat命令
root@gl:/home/gl# pidstat -u 1
Linux 4.15.0-213-generic (gl) 01/16/2024 _x86_64_ (2 CPU)08:58:34 AM UID PID %usr %system %guest %wait %CPU CPU Command
08:58:35 AM 0 220 0.00 8.91 0.00 0.00 8.91 1 kworker/1:1H
08:58:35 AM 0 18799 0.00 8.91 0.00 8.91 8.91 1 stress
PID:进程ID。
%usr:用户态CPU时间百分比。
%system:内核态CPU时间百分比。
%guest:客户机操作系统占用的CPU时间百分比。
%wait:进程等待I/O操作完成所占用的CPU时间百分比。
%CPU:总的CPU使用率百分比。
CPU:进程所在的CPU编号。
Command:进程的命令名。
从pidstat的结果可以看出名为stress的这个进程是触发iowait较高的罪魁祸首。
ps命令
root@gl:/home/gl# ps aux | grep stress
root 18798 0.0 0.0 3704 1372 pts/0 S+ 08:57 0:00 stress -i 1 --timeout 600
root 18799 11.3 0.0 3704 108 pts/0 D+ 08:57 0:38 stress -i 1 --timeout 600
通过ps命令先拿到stress的pid,如上有两个。
strace命令
依次用strace查看进程正在执行的系统调用,发现在不停的执行sync(刷新缓存到磁盘)操作,所以合理怀疑可能是stress进程中写完文件刷新时存在死循环。下一步就可以考虑对比log分析对应部分的代码了。
root@gl:/home/gl# strace -p 18799
strace: Process 18799 attached
sync() = 0
sync() = 0
sync() = 0
sync() = 0
sync() = 0
...
分析平均负载
通过uptime命令提供的平均负载信息,我们可以得到系统整体的负载情况。如果平均负载数值超过了CPU核心数,这可能意味着系统过载。
使用mpstat,我们可以深入了解每个CPU核心的使用情况,从而判断是否有核心过载或者空闲。pidstat则提供了进程级别的资源使用情况,帮助我们找出是哪些进程导致了高负载。更近一步的,可以使用strace命令查看查看指定进程在进行哪些系统调用
所以结合mpstat、pidstat、ps、strace这些工具,我们可以全面分析系统的性能瓶颈,并采取相应的优化措施,从此再也不用慌了~

相关文章:
从uptime看linux平均负载
从前遇到系统卡顿只会top。。top看不出来怎么搞呢? Linux系统提供了丰富的命令行工具,以帮助用户和系统管理员监控和分析系统性能。在这些工具中,uptime、mpstat和pidstat是非常有用的命令,它们可以帮助你理解系统的平均负载以及资…...
经典数据库练习题及答案
数据表介绍 --1.学生表 Student(SId,Sname,Sage,Ssex) --SId 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别 --2.课程表 Course(CId,Cname,TId) --CId 课程编号,Cname 课程名称,TId 教师编号 --3.教师表 Teacher(TId,Tname) --TId 教师编号,Tname 教师姓名 --4.成绩…...
架构篇06-复杂度来源:可扩展性
文章目录 预测变化应对变化小结 复杂度来源前面已经讲了高性能和高可用,今天来聊聊可扩展性。 可扩展性指系统为了应对将来需求变化而提供的一种扩展能力,当有新的需求出现时,系统不需要或者仅需要少量修改就可以支持,无须整个系…...
flowable流程结束触发监听器 flowable获取结束节点 flowable流程结束事件响应监听器
flowable流程结束触发监听器 | flowable流程结束获取结束节点 | flowable流程结束事件响应监听器 下面代码是该监听器是对每个到达结束事件后执行的。 原本的流程定义是如果其中任意某个节点进行了驳回,则直接结束流程。 所以在每个节点的驳回对应的排他网关都设…...
【Python3】【力扣题】389. 找不同
【力扣题】题目描述: 【Python3】代码: 1、解题思路:使用计数器分别统计字符串中的元素和出现次数,两个计数器相减,结果就是新添加的元素。 知识点:collections.Counter(...):字典子类&#x…...
【从0上手cornerstone3D】如何加载nifti格式的文件
在线演示 支持加载的文件格式 .nii .nii.gz 代码实现 npm install cornerstonejs/nifti-volume-loader// ------------- 核心代码 Start------------------- // 注册一个nifti格式的加载器 volumeLoader.registerVolumeLoader("nifti",cornerstoneNiftiImageVolu…...
c# 学习笔记 - 异步编程
文章目录 1. 异步编程介绍1.1 简单介绍1.2 async/await 使用1.3 Task/Task<TResult> 对象 2. 样例2.1 迅速启动所有任务,仅当需要结果才等待任务执行2.2 使用 await 调用异步方法,即使这个异步方法内有 await 也不会同时执行回调和向下执行操作(必…...
设置了uni.chooseLocation,小程序中打不开
设置了uni.chooseLocation,在小程序打不开,点击没反应,地图显现不出来; 解决方案: 1.Hbuilder——微信开发者工具路径没有配置 打开工具——>设置 2.微信小程序服务端口没有开 解决方法:打开微信开发…...
spring retry 配置及使用
spring retry 配置及使用 接口或功能因外界异常导致失败后进行重推机制 依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.1.RELEASE</version></p…...
uni-app的组件(二)
多项选择器checkbox-group 多项选择器,内部由多个 checkbox 组成。 <checkbox-group><checkbox checked color"red" value"1"></checkbox> 篮球<!-- disabled:是否禁用 --><checkbox disabled color"rgba(0,0…...
项目开发中安全问题以及解决办法——客户传进来的数据不可信
用户传进来的数据是不可信的,比如下面这种情况下: PostMapping("/order") public void wrong(RequestBody Order order) { this.createOrder(order); } Data public class Order { private long itemId; //商品ID private BigDecimal ite…...
解决springboot启动报Failed to start bean ‘subProtocolWebSocketHandler‘;
解决springboot启动报 Failed to start bean subProtocolWebSocketHandler; nested exception is java.lang.IllegalArgumentException: No handlers 问题发现问题解决 问题发现 使用springboot整合websocket,启动时报错,示例代码: EnableW…...
什么是技术架构?架构和框架之间的区别是什么?怎样去做好架构设计?(一)
什么是技术架构?架构和框架之间的区别是什么?怎样去做好架构设计?(一)。 在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解。在不同的书籍上, 不同的作者, 对于架构的定义也不统一, 角度不同, 定义不同。 一、架构是什么 Linux 有架构,MySQL 有架构,J…...
【多线程】认识Thread类及其常用方法
📄前言: 本文是对以往多线程学习中 Thread类 的介绍,以及对其中的部分细节问题进行总结。 文章目录 一. 线程的 创建和启动🍆1. 通过继承 Thread 类创建线程🍅2. 通过实现 Runnable 接口创建线程🥦3. 其他方…...
多用户商业版 whisper 2.1在线搭建教程
1. 准备工作 购买许可证:确保你已经购买了足够数量的用户许可证,以便所有员工或客户都能使用软件。系统要求:检查你的服务器和客户端计算机是否满足软件的最低系统要求。网络配置:确保你的网络环境(如防火墙、路由器等…...
HEXO搭建个人博客
Hexo是一款基于Node.js的静态博客框架,可以生成静态网页托管在GitHub上。中文文档见HEXO 配置环境 安装Git:下载并安装Git 检查git是否正确安装: git --version 安装Node.js:Node.js 为大多数平台提供了官方的安装程序。注意安装…...
Spring MVC学习之——RequestMapping注解
RequestMapping注解 作用 用于建立请求URL和处理请求方法之间的对应关系。 属性 value:指定请求的实际地址,可以是一个字符串或者一个字符串列表。 value可以不写,直接在括号中写,默认就是value值 RequestMapping(value“/hel…...
鸿蒙原生应用/元服务开发-延迟任务开发实现(二)
一、接口说明 接口名接口描述startWork(work: WorkInfo): void;申请延迟任务stopWork(work: WorkInfo, needCancel?: boolean): void;取消延迟任务getWorkStatus(workId: number, callback: AsyncCallback>): void;获取延迟任务状态(Callback形式)g…...
机器学习在什么场景下最常用-九五小庞
机器学习在多个场景中都有广泛的应用,下面是一些常见的应用场景: 自然语言处理(NLP):如语音识别、自动翻译、情感分析、垃圾邮件过滤等。数据挖掘和分析:如市场分析、用户画像、推荐系统、欺诈检测等。智能…...
利用IP应用场景API识别真实用户
引言 在当今数字化时代,随着互联网的普及和应用的广泛,验证用户身份的重要性变得越来越突出。在许多场景中,特别是在涉及安全性、用户体验以及个人隐私保护方面,确定用户的真实身份至关重要。而IP应用场景API则是一种强大的工具&…...
OpenClaw学习助手:Qwen3.5-9B驱动的知识整理与习题生成
OpenClaw学习助手:Qwen3.5-9B驱动的知识整理与习题生成 1. 为什么需要AI学习助手? 去年备考PMP认证时,我每天要处理上百页PDF讲义。最痛苦的不是阅读,而是如何把关键知识点转化成可记忆的卡片和练习题。手动整理不仅耗时&#x…...
Go语言的性能优化:从分析到实践
Go语言的性能优化:从分析到实践 性能优化的重要性 在软件开发中,性能优化是一个永恒的话题。一个高性能的应用程序可以: 提高用户体验,减少响应时间降低服务器成本,提高资源利用率增强系统的可扩展性提升应用程序的竞争…...
三千年的欲望、痕迹与自感:资本批判与伦理中间件
三千年的欲望、痕迹与自感:资本批判与伦理中间件岐金兰 丙午神农---引言:被命名的与未命名的在人类文明的长河中,有一个东西从未缺席,却长期被剥夺了命名的权利。它比语言更古老,比理性更顽强,比任何社会制…...
计算机春考-系统管理与服务器配置-01安装Windows Server 2012 R2操作系统
活动1 创建虚拟机1. 单击VMware 主界面中的【创建新的虚拟机】2. 进入【新建虚拟机向导】界面,选中【典型(推荐)】按钮设置配置类型,点击【下一步】3. 在安装客户机操作系统界面选择【稍后安装操作系统】,单击【下一步…...
LangChain全面解析:从入门到实战,构建你的第一个AI应用
一、什么是LangChain? LangChain是一个专为大型语言模型(LLM)应用开发设计的开源框架,由Harrison Chase于2022年10月发布。它提供了一套标准化的接口和工具,帮助开发者快速构建基于LLM的智能应用程序。 LangChain的核心理念是将LLM与外部数据源、计算资源和其他工具连接…...
5个维度教你掌握游戏自动化与效率工具开发
5个维度教你掌握游戏自动化与效率工具开发 【免费下载链接】JX3Toy 一个自动化测试DPS的小工具 项目地址: https://gitcode.com/GitHub_Trending/jx/JX3Toy 在游戏开发与玩家体验优化领域,游戏脚本开发正成为提升效率的关键技术。本文将系统介绍一款开源项目…...
如何3步轻松备份微博内容:Speechless免费PDF导出完整指南
如何3步轻松备份微博内容:Speechless免费PDF导出完整指南 【免费下载链接】Speechless 把新浪微博的内容,导出成 PDF 文件进行备份的 Chrome Extension。 项目地址: https://gitcode.com/gh_mirrors/sp/Speechless 在信息快速更迭的数字时代&…...
2024IEEE 《基于二次规划的安全关键型多智能体系统的控制》四旋翼 无人机 MATLAB
2024IEEE 《基于二次规划的安全关键型多智能体系统的控制》四旋翼 无人机 MATLAB 代码复现(文献代码)协同控制 规划 无人机 研究了基于二次规划的安全关键型多智能体系统的控制问题。 每个被控智能体被建模为一个积分器和一个不确定非线性驱动系统的级联…...
Ltspice-线性电流控制电流源F/电压源H
上一篇我们聊了功能强大的任意行为源(BV/BI),它们像是一个可以编写任意公式的“万能计算器”。而在实际电路中,还有一类更基础、更经典的元件,它们遵循严格的线性比例关系,这就是我们今天要介绍的线性受控源…...
PyInstaller Extractor完全指南:从可执行文件到Python源代码的高效提取方案
PyInstaller Extractor完全指南:从可执行文件到Python源代码的高效提取方案 【免费下载链接】pyinstxtractor PyInstaller Extractor 项目地址: https://gitcode.com/gh_mirrors/py/pyinstxtractor 问题引入:当你遇到无法打开的Python可执行文件时…...
