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

【Linux】如何通过uptime查看系统负载是否过高?

👨‍🎓博主简介

  🏅CSDN博客专家
  🏅云计算领域优质创作者
  🏅华为云开发者社区专家博主
  🏅阿里云开发者社区专家博主
💊交流社区:运维交流社区 欢迎大家的加入!
🐋 希望大家多多支持,我们一起进步!😄
🎉如果文章对你有帮助的话,欢迎 点赞 👍🏻 评论 💬 收藏 ⭐️ 加关注+💗


文章目录

    • 1. 什么是负载(load average)?
    • 2. 快速判断负载是否过高公式
    • 3. 一条命令判断当前状态
    • 4. 场景举例
    • 5. 如何肉眼来判断负载是否过高?
    • 6. 负载高 ≠ 问题定界,可以继续进行深挖排查是什么导致的

1. 什么是负载(load average)?

  • 定义:单位时间内处于 可运行(R)不可中断睡眠(D) 状态的 平均任务数
  • 来源:内核统计,用户态通过 /proc/loadavg 读取。
  • 三个值依次代表 1 分钟、5 分钟、15 分钟 的采样结果。
  • 可通过:uptimetophtop 等命令查看。
[root@k8s-node1 a]# uptime17:16:23 up 49 days, 6:35, 4 users, load average: 1.04, 1.37, 1.65

2. 快速判断负载是否过高公式

饱和度 = loadavg / 逻辑 CPU 核数

获取CPU核数(以下命令都可):

nproc               
grep -c ^processor /proc/cpuinfo
lscpu | grep -i cpu\(s\)\: | awk '{print $2}'

例如:

- cpu核数:32
- loadavg:6.21# 计算(保留一位即可,第二位可四舍五入)
6.21/32=0.2
# 0.2,属于非常空闲的状态
饱和度区间经验含义建议
< 0.5空闲资源充足
0.5–0.7健康正常业务
0.7–1.0繁忙有排队,可接受
1.0–1.5重载需要观察
> 1.5过载立即排查

延迟敏感 服务(API、游戏)可把红线降到 0.7


3. 一条命令判断当前状态

  • ①、写个脚本来获取当前负载的百分比
  • load_check.sh
#!/bin/bash
cores=$(nproc)
read one five fifteen < /proc/loadavg
sat1=$(awk -v c="$cores" -v l="$one"     'BEGIN{printf "%.0f%%",l/c*100}')
sat5=$(awk -v c="$cores" -v l="$five"    'BEGIN{printf "%.0f%%",l/c*100}')
sat15=$(awk -v c="$cores" -v l="$fifteen" 'BEGIN{printf "%.0f%%",l/c*100}')
printf "CPU饱和度:\n1 min\t5 min\t15 min\n%s\t%s\t%s\n" "$sat1" "$sat5" "$sat15"
  • ②、配置别名

别名可以根据自己的喜好去自定义,定义之前请确保不要和命令冲突;

alias load="sh /路径/load_check.sh"
  • ③、并写到~/.bashrc配置里
vim ~/.bashrc
# 在最后一行追加
alias load="sh /路径/load_check.sh"# 保存退出
# source使其生效
sorce ~/.bashrc
  • ④、执行别名进行测试
[root@localhost ~]# load
CPU饱和度:
1 min	5 min	15 min
1%	1%	2%

就可以很明显的看到负载的饱和度,再结合上面的饱和度表,来判断是否过载;

4. 场景举例

例 1:4 核机器 load=6
饱和度 = 6/4 = 150 %(1.5)过载,需进一步排查。
          ↑   ↑
         百分比 小数点

例 2:64 核机器 load=32
饱和度 = 32/64 = 50 %(0.5)健康,但需确认是否 IO 等待。

例 3:64 核机器 load=12
饱和度 = 12/64 = 18 %(0.18)空闲,不用管,资源很充足。


5. 如何肉眼来判断负载是否过高?

  • 1、首先需要记住此服务器的核心数
nproc

例:回显 32 心里就记住 ≈30 这条线。

  • 2、把 uptime 输出切成三档 肉眼标尺
load average: 6.21, 7.50, 9.00↑     ↑      ↑1min  5min   15min
  • 小于核数一半 → 空闲(32 核看 16)
  • 接近核数 → 满载(32 核看 30~35)
  • 明显超过核数 → 过载(>40 就红)

所以 6.21 远 < 16,秒判空闲

  • 3、口诀总结

load 数字小于核数一半 → 空;
接近核数 → 满;
远超核数 → 爆。

6. 负载高 ≠ 问题定界,可以继续进行深挖排查是什么导致的

工具看啥
top / htop1 展开每核,观察 CPU 是否跑满
或者top P,查看哪个cpu占用最高。
iostat -x 1%util / await,确认 磁盘 IO 瓶颈
utils大于80磁盘io过高
awaitSSD而言,1–2就很大了,但对机械盘大于10明显感觉卡
vmstat 1观察 r 列(运行队列)b 列(阻塞队列)
r正在运行 + 等待 CPU 的任务数(长期) > 核数 = cpu很堵
b处于不可中断睡眠(D 状态)的任务数 > 0 = 达到了磁盘/网络 IO 瓶颈

http://www.dtcms.com/a/403502.html

相关文章:

  • PostgreSQL 16 Administration Cookbook 读书笔记:第10章 Performance and Concurrency
  • Elasticsearch 7.15索引模板介绍
  • 做海外房产最好的网站济南企业网站建设
  • STM32学习-UART串口通信:物理层/协议层/UART基本架构/代码实战
  • [C++——lesson11.static关键字]
  • 小说网站开发流程具体app开发公司 上海
  • 【阿里DeepResearch】写作组件WebWeaver详解
  • 汽车面向服务架构(SOA)网络安全对策
  • 视频网站用php做做视频网站需要什么职位工作
  • Git 无法访问 GitHub(Recv failure: Connection was reset)问题解决教程
  • 佛山网站设计是学校网站建设项目需求报告
  • (8)ASP.NET Core2.2 中的MVC路由一
  • pytest中的assert断言
  • C++开源库使用:nlohmann/json
  • Appium笔记
  • 找人做彩票网站多少钱专业网站优化公司报价
  • 天津平台网站建设公司东莞市南城区
  • 【开题答辩全过程】以 Java医院就医平台系统为例,包含答辩的问题和答案
  • 11.路由器的接口及其相关知识(2025年9月25日)
  • C#调用基于python打包的税务申报期限解析器exe工具
  • 沧州市东光建设局 网站技术教程优化搜索引擎整站
  • Java线程安全:synchronized锁机制详解
  • 浅谈Linux内核的LRU算法作用和原理
  • 自己做网站 最好的软件下载win10一键优化
  • Vue3 + Ant Design Vue 实现表格无限滚动加载(自定义指令版)
  • Golang语言基础篇006_Golang流程控制
  • 襄樊网站网站建设网站建设中管理员登录的代码怎么写
  • 打工人日报#20250924
  • 网站的构思重庆建设工程造价信息
  • 【lua】luajit 命令行使用指南