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

从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 迅速启动所有任务&#xff0c;仅当需要结果才等待任务执行2.2 使用 await 调用异步方法&#xff0c;即使这个异步方法内有 await 也不会同时执行回调和向下执行操作(必…...

设置了uni.chooseLocation,小程序中打不开

设置了uni.chooseLocation&#xff0c;在小程序打不开&#xff0c;点击没反应&#xff0c;地图显现不出来&#xff1b; 解决方案&#xff1a; 1.Hbuilder——微信开发者工具路径没有配置 打开工具——>设置 2.微信小程序服务端口没有开 解决方法&#xff1a;打开微信开发…...

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 多项选择器&#xff0c;内部由多个 checkbox 组成。 <checkbox-group><checkbox checked color"red" value"1"></checkbox> 篮球<!-- disabled:是否禁用 --><checkbox disabled color"rgba(0,0…...

项目开发中安全问题以及解决办法——客户传进来的数据不可信

用户传进来的数据是不可信的&#xff0c;比如下面这种情况下&#xff1a; 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&#xff0c;启动时报错&#xff0c;示例代码&#xff1a; EnableW…...

什么是技术架构?架构和框架之间的区别是什么?怎样去做好架构设计?(一)

什么是技术架构?架构和框架之间的区别是什么?怎样去做好架构设计?(一)。 在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解。在不同的书籍上, 不同的作者, 对于架构的定义也不统一, 角度不同, 定义不同。 一、架构是什么 Linux 有架构,MySQL 有架构,J…...

【多线程】认识Thread类及其常用方法

&#x1f4c4;前言&#xff1a; 本文是对以往多线程学习中 Thread类 的介绍&#xff0c;以及对其中的部分细节问题进行总结。 文章目录 一. 线程的 创建和启动&#x1f346;1. 通过继承 Thread 类创建线程&#x1f345;2. 通过实现 Runnable 接口创建线程&#x1f966;3. 其他方…...

多用户商业版 whisper 2.1在线搭建教程

1. 准备工作 购买许可证&#xff1a;确保你已经购买了足够数量的用户许可证&#xff0c;以便所有员工或客户都能使用软件。系统要求&#xff1a;检查你的服务器和客户端计算机是否满足软件的最低系统要求。网络配置&#xff1a;确保你的网络环境&#xff08;如防火墙、路由器等…...

HEXO搭建个人博客

Hexo是一款基于Node.js的静态博客框架&#xff0c;可以生成静态网页托管在GitHub上。中文文档见HEXO 配置环境 安装Git&#xff1a;下载并安装Git 检查git是否正确安装&#xff1a; git --version 安装Node.js&#xff1a;Node.js 为大多数平台提供了官方的安装程序。注意安装…...

Spring MVC学习之——RequestMapping注解

RequestMapping注解 作用 用于建立请求URL和处理请求方法之间的对应关系。 属性 value&#xff1a;指定请求的实际地址&#xff0c;可以是一个字符串或者一个字符串列表。 value可以不写&#xff0c;直接在括号中写&#xff0c;默认就是value值 RequestMapping(value“/hel…...

鸿蒙原生应用/元服务开发-延迟任务开发实现(二)

一、接口说明 接口名接口描述startWork(work: WorkInfo): void;申请延迟任务stopWork(work: WorkInfo, needCancel?: boolean): void;取消延迟任务getWorkStatus(workId: number, callback: AsyncCallback>): void;获取延迟任务状态&#xff08;Callback形式&#xff09;g…...

机器学习在什么场景下最常用-九五小庞

机器学习在多个场景中都有广泛的应用&#xff0c;下面是一些常见的应用场景&#xff1a; 自然语言处理&#xff08;NLP&#xff09;&#xff1a;如语音识别、自动翻译、情感分析、垃圾邮件过滤等。数据挖掘和分析&#xff1a;如市场分析、用户画像、推荐系统、欺诈检测等。智能…...

利用IP应用场景API识别真实用户

引言 在当今数字化时代&#xff0c;随着互联网的普及和应用的广泛&#xff0c;验证用户身份的重要性变得越来越突出。在许多场景中&#xff0c;特别是在涉及安全性、用户体验以及个人隐私保护方面&#xff0c;确定用户的真实身份至关重要。而IP应用场景API则是一种强大的工具&…...

网站设计:抓住这3点细节,用户体验感飙升!

网站制作要不要做得那么细呢&#xff1f;实际上&#xff0c;当我们发现很多网站制作得很优秀时&#xff0c;怎么看都不知道是如何做好的&#xff0c;但就是感觉不错&#xff0c;实际上这就体现在了制作网站细节上。很多时候设计网站往往容易忽视这三个细节&#xff1a;1、网页图…...

性能测试专家养成记:工具、思维、实战全解析

在软件质量保障体系中&#xff0c;性能测试正从一个可选的“加分项”演变为关乎用户体验与业务存续的“必答题”。对于广大软件测试从业者而言&#xff0c;成长为一名性能测试专家&#xff0c;不仅意味着技术深度的拓展&#xff0c;更代表着从“验证功能”到“保障体验”乃至“…...

如何利用 SEO 工具提取网站的外部链接

如何利用 SEO 工具提取网站的外部链接 在当今竞争激烈的网络环境中&#xff0c;外部链接&#xff08;即指向你网站的其他网站的链接&#xff09;已经成为提升网站搜索引擎排名的重要因素。利用 SEO 工具提取网站的外部链接&#xff0c;不仅能帮助你更好地了解你的网站链接情况…...

紧固件模具是什么?生产工艺、类型及应用详解_FES上海紧固件展

2026第十六届上海紧固件专业展Fastener Expo Shanghai 2026将于6月24日至26日在国家会展中心&#xff08;上海&#xff09;举行。展会由上海上搜展览与华人螺丝网联合主办&#xff0c;并获得中国五矿化工进出口商会五金紧固件分会支持&#xff0c;整体展览规模约70,000平方米&a…...

利用快马平台与openclaw快速构建电商数据抓取原型

最近在做一个电商数据分析的小项目&#xff0c;需要快速验证数据抓取的可行性。传统方式从零搭建爬虫环境太费时间&#xff0c;正好发现了InsCode(快马)平台这个神器&#xff0c;配合openclaw库可以快速完成原型开发。这里记录下我的实践过程&#xff0c;特别适合需要快速验证想…...

若依(ruoyi)RuoYiApp版—页面

ruoyiApp中的页面是一个符合vue规范的文件&#xff0c;如果你熟悉vue&#xff0c;这里将非常快速上手。 1.如何新增页面 uni-app中的页面&#xff0c;默认保存在工程根目录下的pages目录下。 每次新建页面&#xff0c;均需在pages.json中配置pages列表&#xff1b;未在pages.js…...

ChatGPT上车CarPlay:智能交互新突破与安全边界的平衡

ChatGPT集成CarPlay&#xff1a;行车途中的语音智能交互4月3日&#xff0c;OpenAI宣布ChatGPT正式获得苹果CarPlay系统的集成支持。这一更新让CarPlay用户能够在车载仪表盘界面直接通过语音与ChatGPT进行交互&#xff0c;实现了行车途中的免提提问与请求服务。该功能的实现得益…...

Windows运行库终极解决方案:VisualCppRedist AIO完全指南

Windows运行库终极解决方案&#xff1a;VisualCppRedist AIO完全指南 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这种情况&#xff1a;满怀…...

禅道最新22.0+ 手动删除无法安装之清理卸载办法

禅道项目管理软件卸载方法详解&#xff1a;如何彻底清除所有相关文件和配置在企业或个人开发环境中&#xff0c;禅道&#xff08;Zentao&#xff09;作为一款广受欢迎的开源项目管理工具&#xff0c;因其功能全面、易用性强而被广泛使用。然而&#xff0c;在某些情况下&#xf…...

PCB封装核心构成—焊盘,电气连接的基石

在电子设计与制造领域&#xff0c;PCB 封装是连接虚拟电路设计与实体元器件的关键纽带&#xff0c;而焊盘则是 PCB 封装中最核心、最基础的构成要素&#xff0c;堪称电气连接的 “基石”。没有精准设计的焊盘&#xff0c;元器件与电路板之间的电气连接便无从谈起&#xff0c;整…...