Linux通过uptime查看系统负载是否过高的方法

 更新时间:2025年09月25日 09:07:30   作者:A-刘晨阳  
uptime 命令是Linux系统中一个非常基础且重要的工具,它主要用于获取主机的运行时间和查询系统的负载情况,通过这个命令,用户可以快速了解服务器的稳定性、当前活跃的用户数量以及系统的平均负载,所以本文给大家介绍了Linux通过uptime查看系统负载是否过高的方法

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

  • 定义:单位时间内处于 可运行(R)不可中断睡眠(D) 状态的 平均任务数
  • 来源:内核统计,用户态通过 /proc/loadavg 读取。
  • 三个值依次代表 1 分钟、5 分钟、15 分钟 的采样结果。
  • 可通过:uptimetophtop 等命令查看。
[root@k8s-node1 a]# uptime
 17: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 / htop按 1 展开每核,观察 CPU 是否跑满
或者top P,查看哪个cpu占用最高。
iostat -x 1%util / await,确认 磁盘 IO 瓶颈
utils大于80磁盘io过高
await对SSD而言,1–2就很大了,但对机械盘大于10明显感觉卡
vmstat 1观察 r 列(运行队列)b 列(阻塞队列)
r正在运行 + 等待 CPU 的任务数(长期) > 核数 = cpu很堵
b处于不可中断睡眠(D 状态)的任务数 > 0 = 达到了磁盘/网络 IO 瓶颈

以上就是Linux通过uptime查看系统负载是否过高的方法的详细内容,更多关于Linux uptime查看系统负载的资料请关注脚本之家其它相关文章!

相关文章

  • Linux文件服务器实战详解(系统用户)

    Linux文件服务器实战详解(系统用户)

    这篇文章主要介绍了Linux文件服务器实战详解(系统用户),非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2018-06-06
  • Linux实现搭建ssh并允许使用root远程

    Linux实现搭建ssh并允许使用root远程

    这篇文章主要介绍了Linux实现搭建ssh并允许使用root远程方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • 解决虚拟机输入IP addr不显示ip问题

    解决虚拟机输入IP addr不显示ip问题

    在虚拟机中配置网络接口时,若输入IP地址后不显示,可以通过修改`/etc/sysconfig/network-scripts/ifcfg-ens33`文件,将`ONBOOT=no`改为`ONBOOT=yes`来解决,修改后重启网络服务即可获取IP地址
    2025-11-11
  • Linux使用sed命令替换字符串教程

    Linux使用sed命令替换字符串教程

    在本篇文章中小编给大家分享了关于Linux下如何使用sed命令替换字符串的相关知识点内容,有需要的朋友们学习下。
    2019-01-01
  • Apache中Virtual Host虚拟主机配置及rewrite参数说明

    Apache中Virtual Host虚拟主机配置及rewrite参数说明

    这篇文章主要介绍了Apache中Virtual Host虚拟主机配置及rewrite模块中的重要参数说明,是在同一个Apache服务器软件上部署多个站点的基础方法,需要的朋友可以参考下
    2016-03-03
  • Linux磁盘空间释放问题整理

    Linux磁盘空间释放问题整理

    在本篇文章里小编给大家分享了一篇关于Linux磁盘空间释放问题整理内容,有需要的朋友们可以学习参考下。
    2020-12-12
  • shell脚本设置防止暴力破解ssh

    shell脚本设置防止暴力破解ssh

    大家好,本篇文章主要讲的是shell脚本设置防止暴力破解ssh,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2022-01-01
  • Linux进程信号的捕捉&&信号补充内容方式

    Linux进程信号的捕捉&&信号补充内容方式

    信号处理在进程从内核态返回用户态时触发,涉及状态切换与权限管理,sigaction用于自定义信号处理,支持屏蔽信号,volatile确保变量内存可见性,防止编译器优化导致的信号响应异常
    2025-08-08
  • Ubuntu20.04没有wifi的解决方案(Realtek版本)

    Ubuntu20.04没有wifi的解决方案(Realtek版本)

    本文介绍了如何在Ubuntu下手动安装无线网卡驱动,避免了需要在Windows下查看网卡型号的麻烦,通过终端命令查看网卡型号,使用git下载驱动文件并将其放置在/lib/firmware/rtw89目录下,然后激活相应内核,最后重启系统以解决没有WiFi的问题
    2026-03-03
  • linux隐藏文件实现打开查看

    linux隐藏文件实现打开查看

    本文详细介绍了在Linux系统中查看隐藏文件的方法,包括图形界面(如Ctrl+H快捷键和菜单操作)和命令行(如ls -a和ls -la命令),并举例说明了如何查看和编辑隐藏文件内容
    2025-12-12

最新评论