Linux通過uptime查看系統(tǒng)負(fù)載是否過高的方法
1. 什么是負(fù)載(load average)?
- 定義:單位時間內(nèi)處于 可運(yùn)行(R) 或 不可中斷睡眠(D) 狀態(tài)的 平均任務(wù)數(shù)。
- 來源:內(nèi)核統(tǒng)計(jì),用戶態(tài)通過
/proc/loadavg讀取。 - 三個值依次代表 1 分鐘、5 分鐘、15 分鐘 的采樣結(jié)果。
- 可通過:
uptime、top、htop等命令查看。
[root@k8s-node1 a]# uptime 17:16:23 up 49 days, 6:35, 4 users, load average: 1.04, 1.37, 1.65
2. 快速判斷負(fù)載是否過高公式
飽和度 = loadavg / 邏輯 CPU 核數(shù)
獲取CPU核數(shù)(以下命令都可):
nproc
grep -c ^processor /proc/cpuinfo
lscpu | grep -i cpu\(s\)\: | awk '{print $2}'
例如:
- cpu核數(shù):32 - loadavg:6.21 # 計(jì)算(保留一位即可,第二位可四舍五入) 6.21/32=0.2 # 0.2,屬于非??臻e的狀態(tài)
| 飽和度區(qū)間 | 經(jīng)驗(yàn)含義 | 建議 |
|---|---|---|
| < 0.5 | 空閑 | 資源充足 |
| 0.5–0.7 | 健康 | 正常業(yè)務(wù) |
| 0.7–1.0 | 繁忙 | 有排隊(duì),可接受 |
| 1.0–1.5 | 重載 | 需要觀察 |
| > 1.5 | 過載 | 立即排查 |
對 延遲敏感 服務(wù)(API、游戲)可把紅線降到 0.7。
3. 一條命令判斷當(dāng)前狀態(tài)
- ①、寫個腳本來獲取當(dāng)前負(fù)載的百分比
- 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"
- ②、配置別名
別名可以根據(jù)自己的喜好去自定義,定義之前請確保不要和命令沖突;
alias load="sh /路徑/load_check.sh"
- ③、并寫到
~/.bashrc配置里
vim ~/.bashrc # 在最后一行追加 alias load="sh /路徑/load_check.sh" # 保存退出 # source使其生效 sorce ~/.bashrc
- ④、執(zhí)行別名進(jìn)行測試
[root@localhost ~]# load CPU飽和度: 1 min 5 min 15 min 1% 1% 2%
就可以很明顯的看到負(fù)載的飽和度,再結(jié)合上面的飽和度表,來判斷是否過載;
4. 場景舉例
例 1:4 核機(jī)器 load=6
飽和度 = 6/4 = 150 %(1.5) → 過載,需進(jìn)一步排查。
↑ ↑
百分比 小數(shù)點(diǎn)
例 2:64 核機(jī)器 load=32
飽和度 = 32/64 = 50 %(0.5) → 健康,但需確認(rèn)是否 IO 等待。
例 3:64 核機(jī)器 load=12
飽和度 = 12/64 = 18 %(0.18) → 空閑,不用管,資源很充足。
5. 如何肉眼來判斷負(fù)載是否過高?
- 1、首先需要記住此服務(wù)器的核心數(shù)
nproc
例:回顯 32 心里就記住 ≈30 這條線。
- 2、把 uptime 輸出切成三檔 肉眼標(biāo)尺
load average: 6.21, 7.50, 9.00
↑ ↑ ↑
1min 5min 15min
- 小于核數(shù)一半 → 空閑(32 核看 16)
- 接近核數(shù) → 滿載(32 核看 30~35)
- 明顯超過核數(shù) → 過載(>40 就紅)
所以 6.21 遠(yuǎn) < 16,秒判空閑。
- 3、口訣總結(jié)
load 數(shù)字小于核數(shù)一半 → 空;
接近核數(shù) → 滿;
遠(yuǎn)超核數(shù) → 爆。
6. 負(fù)載高 ≠ 問題定界,可以繼續(xù)進(jìn)行深挖排查是什么導(dǎo)致的
| 工具 | 看啥 |
|---|---|
| top / htop | 按 1 展開每核,觀察 CPU 是否跑滿 或者top P,查看哪個cpu占用最高。 |
| iostat -x 1 | 看 %util / await,確認(rèn) 磁盤 IO 瓶頸 utils大于80磁盤io過高 await對SSD而言,1–2就很大了,但對機(jī)械盤大于10明顯感覺卡 |
| vmstat 1 | 觀察 r 列(運(yùn)行隊(duì)列) 與 b 列(阻塞隊(duì)列) r正在運(yùn)行 + 等待 CPU 的任務(wù)數(shù)(長期) > 核數(shù) = cpu很堵 b處于不可中斷睡眠(D 狀態(tài))的任務(wù)數(shù) > 0 = 達(dá)到了磁盤/網(wǎng)絡(luò) IO 瓶頸 |
以上就是Linux通過uptime查看系統(tǒng)負(fù)載是否過高的方法的詳細(xì)內(nèi)容,更多關(guān)于Linux uptime查看系統(tǒng)負(fù)載的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Linux文件服務(wù)器實(shí)戰(zhàn)詳解(系統(tǒng)用戶)
這篇文章主要介紹了Linux文件服務(wù)器實(shí)戰(zhàn)詳解(系統(tǒng)用戶),非常不錯,具有參考借鑒價值,需要的朋友可以參考下2018-06-06
Linux實(shí)現(xiàn)搭建ssh并允許使用root遠(yuǎn)程
這篇文章主要介紹了Linux實(shí)現(xiàn)搭建ssh并允許使用root遠(yuǎn)程方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-02-02
Apache中Virtual Host虛擬主機(jī)配置及rewrite參數(shù)說明
這篇文章主要介紹了Apache中Virtual Host虛擬主機(jī)配置及rewrite模塊中的重要參數(shù)說明,是在同一個Apache服務(wù)器軟件上部署多個站點(diǎn)的基礎(chǔ)方法,需要的朋友可以參考下2016-03-03
Linux進(jìn)程信號的捕捉&&信號補(bǔ)充內(nèi)容方式
信號處理在進(jìn)程從內(nèi)核態(tài)返回用戶態(tài)時觸發(fā),涉及狀態(tài)切換與權(quán)限管理,sigaction用于自定義信號處理,支持屏蔽信號,volatile確保變量內(nèi)存可見性,防止編譯器優(yōu)化導(dǎo)致的信號響應(yīng)異常2025-08-08
Ubuntu20.04沒有wifi的解決方案(Realtek版本)
本文介紹了如何在Ubuntu下手動安裝無線網(wǎng)卡驅(qū)動,避免了需要在Windows下查看網(wǎng)卡型號的麻煩,通過終端命令查看網(wǎng)卡型號,使用git下載驅(qū)動文件并將其放置在/lib/firmware/rtw89目錄下,然后激活相應(yīng)內(nèi)核,最后重啟系統(tǒng)以解決沒有WiFi的問題2026-03-03

