搜尋
首頁運維linux運維Linux平均負載Load問題的詳解

Linux平均負載Load問題的詳解

Mar 12, 2019 pm 05:24 PM
linux

這篇文章帶給大家的內容是關於Linux平均負載Load問題的詳解,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

有一回面試,面試官提了一個問題,cpu 使用率不高,但是 Load (平均負荷) 很高,你如何找出問題?

當時我不明白 Load 的意思,面試官解釋這個指標反映不可中斷狀態的進程比較多。我遂根據過往後端開發經驗,回答可能係統中io 阻塞比較多,多發於網絡io 問題,用命令 netstat -tnp 看看tcp 連接中time_wait 狀態多不多...

#我知道我的回答很片面,事後複習,做筆記。

什麼是平均負載

熟悉 Linux 者知道,使用 top uptime 指令可以檢視 load average 指標。

使用 man uptime 查看Load average 解釋:

System load averages is the average number of processes that are either in a runnable or uninterruptable state.   A  process  in ables  or waiting to use the CPU.  A process in uninterruptable state is waiting for some I/O access, eg waiting for disk.  The averages are taken over the three time intervals.  Load averages system not avers ined the number intervals.  Load avernorage system not avers injare not avers in the not avers in the not avers in the nad avers in. so a  load average of 1 means a single CPU system is loaded all the time while on a 4 CPU system it means it was idle 75% of the time.

理解關鍵地方,平均負載是指,在單位時間內,系統中處於 可運作狀態 與 不可中斷狀態 的平均行程數,簡稱平均活躍行程數。值得注意的是,它與CPU 使用率沒有直接關係

使用指令 ps aux 可以檢視進程的狀態stat,如本文要注意的:

R 狀態,可運作狀態( Running / Runnable ),正在使用CPU 或正在等待CPU 的進程D 狀態,不可中斷狀態( Uninterruptitle Sleep, 又稱Disk Sleep ),正處於內核態關鍵流程中的進程,並且是不可中斷的。

D 狀態為何不可打斷呢,舉個例子,系統調用起硬體設備的I/O 響應,為了保證數據的一致性,在磁碟設備返回數據前,它是不能倍其他進程或者中斷打斷的,如果被打斷,就容易造成磁碟資料與流程資料不一致的問題。於是,不可中斷(D)狀態是系統對程序與硬體設備的一種保護機制。

平均活躍進程數,嚴格意義上,它是活躍進程數的指數衰減平均值(某個量的下降速度和它的值成比例)。通常情況下,理解為單位時間上的活躍進程數即可。

CPU 使用率與平衡負載

從CPU 角度來說,Load average 只是反映單位時間內佔用CPU 的進程數量,而CPU 使用率與進程數沒有直接關係,我們可以使用指令 top vmstat 查看CPU 的使用率,有以下幾個指標:

%us:表示使用者空間程式的cpu使用率(沒有透過nice調度)%sy:表示系統空間的cpu使用率,主要是內核程式。 %ni:表示用戶空間且透過nice調度過的程式的cpu使用率。 %id:空閒cpu%wa:cpu運作時在等待io的時間%hi:cpu處理硬中斷的數量%si:cpu處理軟中斷的數量%st:被虛擬機偷走的cpu

如何衡量合理的平均負載

一般來講,Load average 低於CPU 數量的話,機器性能滿足服務需求,超出一些也沒關係,Load average 不直接代表CPU 利用率,可能是io 阻塞比較多。當 Load average 高於 CPU 數量的 70%,就可能導致進程回應變慢,進而影響服務的正常功能。

從歷史變化量來看

一般來講,top uptime 提供 load average 三個時間點的指標,分別是:1分鐘、5分鐘、15分鐘。這反映了系統最近的狀態變化趨勢。在實際生產環境中,我們需要做長期的監控記錄。如果有異常的數值變化,例如平均負載數是CPU的兩倍,則需要分析調查問題。

從平衡負載與CPU 使用率這兩類指標綜合分析

兩類指標的不同,組合出下列幾種可能情況:

Load average 高,CPU use 高,要么運行了CPU 密集型進程(線程),要么有大量等待CPU 的進程(線程)調度Load average 高,CPU use 底,運行了IO 密集型進程兩者都比較低,正常Load average 底, CPU use 高,這是不存在的

模擬案例與工具

我們如何分析平衡負載與CPU 使用率這兩類指標不同組合的案例,尋找造成指標變化的來源?

以下環境為Linux Arch 4.19 / 4 CPU / 8G Memory

工具清單

stress 系統壓力測試工具

sysstat 效能分析工具包:

mpstat 多核心 CPU 分析效能工具,mp 的意思是 multi processors (多處理器)pidstat 進程效能分析工具,pid 意為進程 ID。它用於查看進程的CPU、記憶體、I/O以及上下文切換等指標

#模擬場景

#使用stress 可以模擬以下場景

CPU密集型進程

# 模拟一个进程, 对 cpu 使用率 100%,限时 600s
stress --cpu 1 --timeout 600

IO 密集型進程

stress 的 -i 選項,spawn N workers spinning on sync()

# 模拟一个进程不停的执行 sync
stress -i 1 --timeout 600
大量進程的場景
# 模拟16个进程, 对 cpu 使用率 100%,限时 600s
stress --cpu 16 --timeout 600

工具指標

mpstat -P ALL 5 監控所有CPU,每隔5秒輸出一組數據,注意指標 %usr 使用率,%iowait IO 阻塞時間,從這可以判斷是CPU 密集型還是IO 密集型pidstat - u 5 1 統計間隔5秒內,使用過CPU 的進程的數據,注意指標 %usr 使用率,%wait 等待使用CPU 的時間,從這可以判斷是否進程(線程)過多

以上是Linux平均負載Load問題的詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:segmentfault。如有侵權,請聯絡admin@php.cn刪除
Linux:進入和退出維護模式Linux:進入和退出維護模式May 02, 2025 am 12:01 AM

進入Linux維護模式的方法包括:1.編輯GRUB配置文件,添加"single"或"1"參數並更新GRUB配置;2.在GRUB菜單中編輯啟動參數,添加"single"或"1"。退出維護模式只需重啟系統。通過這些步驟,你可以在需要時快速進入維護模式,並安全地退出,確保系統的穩定性和安全性。

了解Linux:定義的核心組件了解Linux:定義的核心組件May 01, 2025 am 12:19 AM

Linux的核心組件包括內核、shell、文件系統、進程管理和內存管理。 1)內核管理系統資源,2)shell提供用戶交互界面,3)文件系統支持多種格式,4)進程管理通過fork等系統調用實現,5)內存管理使用虛擬內存技術。

Linux的構建塊:關鍵組件解釋了Linux的構建塊:關鍵組件解釋了Apr 30, 2025 am 12:26 AM

Linux系統的核心組成部分包括內核、文件系統和用戶空間。 1.內核管理硬件資源並提供基本服務。 2.文件系統負責數據存儲和組織。 3.用戶空間運行用戶程序和服務。

使用維護模式:故障排除和修復Linux使用維護模式:故障排除和修復LinuxApr 29, 2025 am 12:28 AM

維護模式是Linux系統中通過單用戶模式或救援模式進入的特殊運行級別,用於系統維護和修復。 1.進入維護模式使用命令“sudosystemctlisolaterescue.target”。 2.在維護模式中,可以檢查並修復文件系統,使用命令“fsck/dev/sda1”。 3.高級用法包括重置root用戶密碼,需掛載文件系統為讀寫模式並編輯密碼文件。

Linux維護模式:了解目的Linux維護模式:了解目的Apr 28, 2025 am 12:01 AM

維護模式用於系統維護和修復,允許管理員在簡化環境中工作。 1.系統修復:修復損壞的文件系統和啟動加載器。 2.密碼重置:重置root用戶密碼。 3.軟件包管理:安裝、更新或刪除軟件包。通過修改GRUB配置或使用特定鍵進入維護模式,執行維護任務後可安全退出。

Linux操作:網絡和網絡配置Linux操作:網絡和網絡配置Apr 27, 2025 am 12:09 AM

Linux網絡配置可以通過以下步驟完成:1.配置網絡接口,使用ip命令臨時設置或編輯配置文件持久化設置。 2.設置靜態IP,適合需要固定IP的設備。 3.管理防火牆,使用iptables或firewalld工具來控製網絡流量。

Linux中的維護模式:系統管理員指南Linux中的維護模式:系統管理員指南Apr 26, 2025 am 12:20 AM

維護模式在Linux系統管理中扮演關鍵角色,幫助進行系統修復、升級和配置變更。 1.進入維護模式可以通過GRUB菜單選擇或使用命令“sudosystemctlisolaterescue.target”。 2.在維護模式下,可以執行文件系統修復和系統更新等操作。 3.高級用法包括重置root密碼等任務。 4.常見錯誤如無法進入維護模式或掛載文件系統,可通過檢查GRUB配置和使用fsck命令修復。

Linux中的維護模式:何時以及為什麼使用它Linux中的維護模式:何時以及為什麼使用它Apr 25, 2025 am 12:15 AM

使用Linux維護模式的時機和原因:1)系統啟動問題時,2)進行重大系統更新或升級時,3)執行文件系統維護時。維護模式提供安全、控制的環境,確保操作的安全性和效率,減少對用戶的影響,並增強系統的安全性。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器