自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

面試官提問:Linux 系統(tǒng)故障時,你會用哪些工具排查?

系統(tǒng) Linux
你當前的系統(tǒng)狀態(tài)非常良好,CPU 負載輕,I/O 等待時間短,無需額外優(yōu)化。如果某個 CPU 核心的負載過高或 %iowait 增加,可能需要進一步分析具體的進程或任務(wù)。

引言

正如標題所言:如果面試官問你,如果在 Linux 中系統(tǒng)出現(xiàn)了問題,你會使用哪些工具排查呢?

那就把下面的三分之一記住就足夠了,如果面試官不服氣,那就把下面所有的都給他說一遍,讓他啞口無言。

開始

簡介

性能分析

? top: 實時顯示系統(tǒng)的 CPU、內(nèi)存使用情況,以及各個進程的資源消耗。

? htop: top 命令的增強版,界面更友好,支持鼠標操作,可以更加方便地查看和管理進程。

? mpstat: 顯示各個 CPU 核心的使用情況,分析多核系統(tǒng)中的 CPU 負載。

? sar: 系統(tǒng)活動報告工具,可以監(jiān)控 CPU、內(nèi)存、I/O 等系統(tǒng)資源的使用情況。它可以在長時間內(nèi)進行系統(tǒng)性能的數(shù)據(jù)采集。

? vmstat: 查看 CPU、內(nèi)存、交換分區(qū)的性能,能夠檢測 CPU 的等待時間和系統(tǒng)瓶頸。

內(nèi)存性能分析

? free: 顯示系統(tǒng)當前的內(nèi)存和交換分區(qū)使用情況。

? vmstat: 顯示內(nèi)存、進程、I/O 系統(tǒng)的性能狀態(tài)。可以幫助分析內(nèi)存的使用情況。

? smem: 詳細列出每個進程的內(nèi)存消耗情況。

? top / htop: 可以查看每個進程的內(nèi)存使用情況。

? slabtop: 顯示內(nèi)核 slab 緩存的使用情況,有助于了解內(nèi)存中緩存數(shù)據(jù)塊的分布。

磁盤性能分析

? iostat: 顯示磁盤 I/O 的性能統(tǒng)計信息,尤其是在分析磁盤讀寫性能時非常有用。

? iotop: 類似于 top,但專注于磁盤 I/O,能夠按進程顯示實時 I/O 活動。

? df: 顯示文件系統(tǒng)的磁盤使用情況。

? du: 顯示文件或目錄的磁盤空間使用情況。

? lsblk: 列出所有存儲設(shè)備和分區(qū)信息。

? blktrace: 對塊設(shè)備進行詳細的 I/O 跟蹤分析。

網(wǎng)絡(luò)性能分析

? ifconfig / ip: 顯示和配置網(wǎng)絡(luò)接口的信息。

? netstat: 查看網(wǎng)絡(luò)連接、路由表、接口狀態(tài)、協(xié)議統(tǒng)計等。

? ss: 替代 netstat 的工具,功能更強大,速度更快,分析網(wǎng)絡(luò)連接和套接字。

? iftop: 實時監(jiān)控網(wǎng)絡(luò)帶寬使用情況,顯示每個網(wǎng)絡(luò)連接的實時流量。

? nload: 實時查看網(wǎng)絡(luò)流量的工具,能夠顯示出入口和出口的帶寬使用情況。

? ping: 測試與遠程主機的網(wǎng)絡(luò)連通性,測量網(wǎng)絡(luò)延遲。

? traceroute: 查看數(shù)據(jù)包從本地主機到目標主機經(jīng)過的路由信息。

? tcpdump: 強大的網(wǎng)絡(luò)抓包工具,能夠捕獲和分析網(wǎng)絡(luò)數(shù)據(jù)包。

? nmap: 網(wǎng)絡(luò)掃描工具,檢查開放端口、主機發(fā)現(xiàn)和網(wǎng)絡(luò)服務(wù)。

進程管理

? ps: 列出當前正在運行的進程。

? top / htop: 查看實時進程資源消耗情況。

? pstree: 以樹形結(jié)構(gòu)展示進程關(guān)系。

? kill: 終止特定的進程。

? strace: 跟蹤系統(tǒng)調(diào)用和信號,分析進程執(zhí)行的系統(tǒng)調(diào)用,非常適合調(diào)試和跟蹤進程的運行狀態(tài)。

綜合性能分析

? dstat: 結(jié)合 vmstat、iostat、netstat 等工具的功能,實時顯示 CPU、內(nèi)存、磁盤 I/O、網(wǎng)絡(luò)等資源的使用情況。

? perf: 內(nèi)核提供的強大性能分析工具,支持采樣、跟蹤和性能分析,適合開發(fā)人員和高級用戶進行深入的性能調(diào)優(yōu)。

? sar: 系統(tǒng)監(jiān)控和報告工具,可以詳細記錄 CPU、內(nèi)存、網(wǎng)絡(luò)、I/O 等各方面的性能。

? sysstat: 包含 iostat、mpstat、sar 等多種工具的綜合工具包。

? glances: 類似于 htop 和 dstat 的結(jié)合,實時監(jiān)控 CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)、進程等多項系統(tǒng)性能指標。

最佳實踐

一、性能分析

1. top

? 用途: 實時監(jiān)控 CPU、內(nèi)存及進程資源消耗。

? 快捷鍵:

a:按 CPU 使用率排序。

b:按內(nèi)存使用率排序。

c :退出。

? 示例:

top -c  # 顯示完整進程命令行

2. htop (需安裝)

? 用途: 增強版 top,支持鼠標操作、多核負載可視化。

? 安裝:

sudo apt install htop  # Debian/Ubuntu

? 示例:

htop  # 查看線程級 CPU 使用
3. mpstat (需安裝 sysstat )

? 用途: 監(jiān)控多核 CPU 各核心利用率。

? 示例:

mpstat -P ALL 1  # 每秒刷新所有核心狀態(tài)
4. perf

? 用途: 深入分析 CPU 性能事件(如函數(shù)熱點、緩存命中率)。

? 示例:

perf top       # 實時查看 CPU 熱點
perf record -g # 生成火焰圖數(shù)據(jù)
5. sar(需安裝 sysstat)

? 用途: 長期記錄 CPU 使用率、上下文切換等。

? 示例:

sar -u 1 5  # 查看過去 5 秒 CPU 使用率

二、內(nèi)存性能分析

1. free

? 用途: 快速查看內(nèi)存和 Swap 使用量。

? 示例:

free -h  # 以 GB/MB 顯示
2. vmstat

? 用途: 綜合監(jiān)控內(nèi)存、Swap、進程隊列和 I/O。

? 示例:

vmstat 1  # 每秒刷新一次
3. smem(需安裝)

? 用途: 按進程統(tǒng)計實際物理內(nèi)存占用(USS/PSS/RSS)。

? 安裝:

sudo apt install smem  # Debian/Ubuntu

? 示例:

smem -u  # 按用戶統(tǒng)計內(nèi)存
4. slabtop

? 用途: 分析內(nèi)核 Slab 緩存(內(nèi)核對象占用內(nèi)存)。

? 示例:

slabtop -s c  # 按緩存大小排序

三、磁盤性能分析

1. iostat(需安裝 sysstat)

? 用途: 監(jiān)控磁盤吞吐量、延遲和利用率。

? 示例:

iostat -xz 1  # 查看詳細 I/O 統(tǒng)計
2. iotop(需安裝)

? 用途: 按進程實時顯示磁盤 I/O 活動。

? 安裝:

sudo apt install iotop  # Debian/Ubuntu

? 示例:

iotop -o  # 僅顯示活躍 I/O 進程
3. blktrace(需安裝)

? 用途: 深度跟蹤塊設(shè)備 I/O 請求(調(diào)試磁盤性能瓶頸)。

? 示例:

blktrace -d /dev/sda -o trace  # 跟蹤 sda 設(shè)備

四、網(wǎng)絡(luò)性能分析

1. iftop(需安裝)

? 用途: 實時監(jiān)控網(wǎng)絡(luò)連接帶寬。

? 示例:

sudo iftop -i eth0  # 指定網(wǎng)卡監(jiān)控
2. nethogs(需安裝)

? 用途: 按進程統(tǒng)計網(wǎng)絡(luò)流量。

? 示例:

nethogs eth0  # 查看指定網(wǎng)卡流量
3. ss

? 用途: 替代 netstat,快速查看連接和端口狀態(tài)。

? 示例:

ss -tunlp  # 顯示所有 TCP/UDP 連接及進程
4. tcpdump

? 用途: 抓包分析網(wǎng)絡(luò)流量(需 root 權(quán)限)。

? 示例:

tcpdump -i eth0 port 80  # 抓取 HTTP 流量

五、進程級分析

1. pidstat(需安裝 sysstat )

? 用途: 監(jiān)控進程的 CPU、內(nèi)存、I/O。

? 示例:

pidstat -d -p 1234 1  # 監(jiān)控 PID 1234 的磁盤 I/O
2. strace

? 用途: 跟蹤進程的系統(tǒng)調(diào)用和信號。

? 示例:

strace -p 1234 -T  # 跟蹤 PID 1234 的調(diào)用耗時

六、綜合工具與場景指南

1. 一站式監(jiān)控工具

? glances(需安裝)

glances  # 實時監(jiān)控 CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)

? dstat(需安裝)

dstat -c -m -d -n  # 綜合顯示 CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)
2. 高頻場景速查

? 系統(tǒng)卡頓:

top → vmstat 1 → iostat 1 → pidstat 1  # 逐層定位瓶頸

? 網(wǎng)絡(luò)延遲:

ping 8.8.8.8 → traceroute google.com → tcpdump -i eth0  # 逐步排查

? 進程異常:

strace -p <PID> → perf record -g -p <PID>  # 分析系統(tǒng)調(diào)用和 CPU 熱點
3. 實用組合命令

? 查找 CPU/內(nèi)存占用 Top 進程:

ps aux --sort=-%cpu | head -10  # Top 10 CPU 進程
ps aux --sort=-%mem | head -10  # Top 10 內(nèi)存進程

? 持續(xù)監(jiān)控磁盤空間:

watch -n 1 'df -h'  # 每秒刷新磁盤使用

七、使用場景總結(jié)

? 系統(tǒng)變慢: 先用 top 或 htop 查看整體負載,再用 vmstat/iostat 定位 CPU、磁盤或內(nèi)存瓶頸。

? 網(wǎng)絡(luò)延遲: iftop 或 nethogs 查看流量,tcpdump 抓包分析。

? 進程卡死: strace 跟蹤系統(tǒng)調(diào)用,perf 分析 CPU 熱點。

實際案例解說

這邊選擇幾個有代表性的把參數(shù)詳細聊聊。

圖片

vmstat 命令顯示了 系統(tǒng)資源的實時狀態(tài),幫助你監(jiān)控 CPU、內(nèi)存、IO、進程等資源的使用情況。

(進程相關(guān))

? r: 運行隊列中等待 CPU 的進程數(shù)。如果這個數(shù)值大于 CPU 核心數(shù)量,說明系統(tǒng) CPU 資源不足。

? b: 不可中斷睡眠的進程數(shù)(一般是等待 I/O 的進程)。

(內(nèi)存相關(guān))

? swpd: 使用的 swap 空間(單位:KB)。如果非 0,表示系統(tǒng)已經(jīng)在使用 swap 分區(qū),可能會影響性能。

? free: 空閑內(nèi)存(單位:KB)。

? buff: 用于緩沖區(qū)的內(nèi)存(單位:KB),用于存儲文件系統(tǒng)的元數(shù)據(jù)。

? cache: 用于緩存的內(nèi)存(單位:KB),加速數(shù)據(jù)讀取。如果緩存命中率高,會減少 I/O 壓力。

(交換分區(qū)相關(guān))

? si(swap in): 從 swap 分區(qū)交換到內(nèi)存的大小(單位:KB/秒)。

? so(swap out): 從內(nèi)存交換到 swap 分區(qū)的大小(單位:KB/秒)。

? 如果 si 和 so 值較大,說明系統(tǒng)內(nèi)存不足,需要頻繁使用 swap,這會降低性能。

(相關(guān))

? bi(block in): 從塊設(shè)備(如磁盤)讀取的數(shù)據(jù)量(單位:塊/秒)。

? bo(block out): 寫入塊設(shè)備(如磁盤)的數(shù)據(jù)量(單位:塊/秒)。

? 這兩個值高時,說明磁盤 I/O 活動頻繁,可能會成為系統(tǒng)瓶頸。

(系統(tǒng)相關(guān))

? in: 每秒中斷次數(shù),包括硬件和系統(tǒng)時鐘中斷。

? cs(context switches): 每秒上下文切換次數(shù)。上下文切換多說明進程頻繁切換,可能影響性能。

(相關(guān))

? us(user time): CPU 花費在用戶進程上的時間百分比。用戶進程是指非內(nèi)核的應(yīng)用程序。

? sy(system time): CPU 花費在系統(tǒng)內(nèi)核進程上的時間百分比。

? id(idle time): CPU 的空閑時間百分比。如果值很高,說明 CPU 比較空閑。

? wa(wait time): CPU 等待 I/O 的時間百分比。如果值高,說明 I/O 成為系統(tǒng)瓶頸。

? st(steal time): 虛擬機中,CPU 被其他虛擬機占用的時間百分比。如果值高,說明虛擬化資源不足。

如何分析圖中的數(shù)據(jù):

? r 為 0: 沒有等待 CPU 的進程,CPU 資源充足。

? id 高達 98-97%: CPU 基本處于空閑狀態(tài),系統(tǒng)負載很低。

? wa 為 0%: 沒有 CPU 等待 I/O,I/O 性能正常。

? si 和 so 為 0: 系統(tǒng)沒有使用 swap,內(nèi)存充足。

? bi 和 bo 較低: 磁盤 I/O 壓力不大。

總結(jié):

從截圖來看,系統(tǒng)整體運行狀態(tài)非常良好:

? CPU 基本處于空閑狀態(tài)(id 很高)。

? 沒有使用 swap(swpd、si、so 都是 0)。

? 沒有等待 CPU 或 I/O 的進程(r、b 和 wa 都接近 0)。

這表明當前系統(tǒng)負載很低,沒有出現(xiàn)任何性能瓶頸。

圖片圖片

你的截圖顯示了 iostat -d 3 命令的輸出,它展示了 磁盤設(shè)備的性能數(shù)據(jù)。

iostat -d 3 輸出字段解釋

1. Device:

? 顯示監(jiān)控的磁盤設(shè)備名稱(如 vda 和 vdb)。

? 這些是塊設(shè)備,如虛擬機中的磁盤、物理磁盤或分區(qū)。

2. tps(Transactions per Second):

? 每秒對該設(shè)備發(fā)起的 I/O 請求數(shù)(讀或?qū)懀?/p>

? 這個值越高,說明設(shè)備的 I/O 活動越頻繁。

3. kB_read/s:

? 每秒從設(shè)備讀取的 數(shù)據(jù)量(單位:KB)。

? 如果這個值持續(xù)較高,說明系統(tǒng)在頻繁讀取數(shù)據(jù)。

4. kB_wrtn/s:

? 每秒寫入設(shè)備的 數(shù)據(jù)量(單位:KB)。

? 如果寫入數(shù)據(jù)量較高,說明系統(tǒng)在頻繁寫數(shù)據(jù)到磁盤。

5. kB_dscd/s(discarded data per second):

? 每秒丟棄的數(shù)據(jù)量(單位:KB)。通常用于監(jiān)控 SSD 設(shè)備的 TRIM 操作。

? 在你的輸出中,該值為 0,說明當前沒有丟棄操作。

6. kB_read:

? 從啟動以來總共讀取的數(shù)據(jù)量(單位:KB)。

7. kB_wrtn:

? 從啟動以來總共寫入的數(shù)據(jù)量(單位:KB)。

8. kB_dscd:

? 從啟動以來總共丟棄的數(shù)據(jù)量(單位:KB)。在你截圖中為 0。

分析你的輸出

? vda 設(shè)備:

? tps:3.74,每秒有 3.74 個 I/O 操作。

? 讀取速率:每秒讀取 0.52 KB。

? 寫入速率:每秒寫入 65.88 KB。

? 說明:vda 設(shè)備的寫入操作較為頻繁,性能上主要是寫密集型。

? vdb 設(shè)備:

? tps:0.10,每秒只有 0.10 個 I/O 操作。

? 讀取和寫入速率:讀取和寫入數(shù)據(jù)量都很小(約 0.52 KB 和 2.10 KB/s)。

? 說明:vdb 設(shè)備 I/O 活動較少,讀寫需求不高。

如何解讀這些數(shù)據(jù)

1. I/O 活動:

? vda 設(shè)備 I/O 活動相對較高,且主要以寫操作為主(每秒寫入 65.88 KB)。

? vdb 活動非常少,基本沒有大量的讀寫需求。

2. 性能分析:

? 如果寫入操作頻繁且 I/O 性能出現(xiàn)瓶頸(如 tps 和 kB_wrtn/s 高得離譜),可能需要檢查設(shè)備是否需要優(yōu)化或擴展。

? 如果讀取較慢,可能需要檢查是否有必要優(yōu)化緩存。

總結(jié)

? vda 設(shè)備 主要是寫操作頻繁,需要密切監(jiān)控寫入性能。

? vdb 設(shè)備 活動很少,沒有明顯的性能壓力。

你可以繼續(xù)使用 iostat 命令來實時監(jiān)控設(shè)備的 I/O 性能,并觀察這些值是否在高峰期發(fā)生顯著變化。如有必要,也可以結(jié)合 iotop 或 dstat 等工具進行進一步分析。

圖片圖片

該命令顯示 每個 CPU 核心 的詳細使用情況,并每 3 秒更新一次。

字段解釋:

1. CPU:

? 顯示是哪一個 CPU 核心。

? all 表示所有 CPU 核心的平均值。

? 接下來的每一行代表一個具體的 CPU 核心(例如 0 到 7 代表系統(tǒng)中的 8 個核心)。

2. %usr(User Time):

? 用戶進程消耗的 CPU 百分比(不包括內(nèi)核進程)。

? 這個值較高時,說明系統(tǒng)在運行大量的用戶級應(yīng)用程序。

3. %nice(Nice Time):

? 被調(diào)整優(yōu)先級(nice 級別)的進程消耗的 CPU 百分比。

? 如果有低優(yōu)先級任務(wù)占用大量 CPU 時間,這個值會增加。

4. %sys(System Time):

? 內(nèi)核進程消耗的 CPU 百分比。

? 如果這個值較高,說明內(nèi)核級的任務(wù)或 I/O 操作占用了大量 CPU 時間。

5. %iowait(I/O Wait):

? CPU 等待 I/O 操作完成的時間百分比。

? 如果這個值較高,說明 CPU 大量時間被耗費在等待磁盤或網(wǎng)絡(luò) I/O 上。

6. %irq(Interrupt Requests):

? CPU 處理硬件中斷(IRQ)請求的時間百分比。

? 高值表明系統(tǒng)中有頻繁的硬件中斷(如網(wǎng)絡(luò)或磁盤活動)。

7. %soft(Soft IRQs):

? 軟中斷占用的 CPU 時間百分比。

? 軟中斷多與網(wǎng)絡(luò)或驅(qū)動程序相關(guān)。

8. %steal(Steal Time):

? 在虛擬化環(huán)境中,CPU 被其他虛擬機占用的時間百分比。

? 如果值較高,說明虛擬機沒有獲得足夠的 CPU 資源。

9. %guest(Guest Time):

? CPU 用于運行虛擬機內(nèi)進程的時間百分比。

10. %gnice(Guest Nice Time):

? 虛擬機中被調(diào)整了優(yōu)先級的進程消耗的時間。

11. %idle(Idle Time):

? CPU 空閑的時間百分比。

? 如果該值高,說明系統(tǒng)比較空閑;如果低,說明 CPU 資源繁忙。

分析你的輸出:

1. 所有 CPU 核心的平均情況(all 行):

? %usr: 2.59%——用戶進程占用少量 CPU 時間。

? %sys: 2.30%——內(nèi)核進程也占用了一些時間。

? %iowait: 0.17%——CPU 花在等待 I/O 的時間很少。

? %idle: 94.95%——整體來看,CPU 大部分時間處于空閑狀態(tài)。

2. 各個 CPU 核心的情況:

? CPU 6: %usr 為 7.33%,CPU 活動稍高。

? 其余核心: 大部分核心的 %idle 在 90% 以上,表明它們大部分時間處于空閑狀態(tài)。

結(jié)論:

? 系統(tǒng)整體負載較低,因為所有 CPU 的空閑時間 %idle 都很高(94% 以上)。

? CPU 6 相較于其他核心稍微活躍,但沒有出現(xiàn)過高的負載,說明系統(tǒng)沒有性能瓶頸。

? I/O 等待時間 %iowait 很低(0.17%),說明磁盤和網(wǎng)絡(luò) I/O 不存在明顯的瓶頸。

你當前的系統(tǒng)狀態(tài)非常良好,CPU 負載輕,I/O 等待時間短,無需額外優(yōu)化。如果某個 CPU 核心的負載過高或 %iowait 增加,可能需要進一步分析具體的進程或任務(wù)。

責任編輯:武曉燕 來源: 云原生運維圈
相關(guān)推薦

2014-05-09 14:33:35

2013-04-10 13:52:23

2020-08-17 07:40:19

消息隊列

2023-02-16 08:10:40

死鎖線程

2021-12-08 06:53:29

面試動態(tài)代理

2022-09-29 07:30:57

數(shù)據(jù)庫索引字段

2018-11-26 08:40:43

2024-11-14 09:29:38

2013-05-16 09:11:15

系統(tǒng)故障故障排查

2015-08-13 10:29:12

面試面試官

2024-07-23 08:21:19

2024-07-26 08:10:10

2023-02-20 08:08:48

限流算法計數(shù)器算法令牌桶算法

2021-05-11 09:20:38

Webpack工具模塊

2024-05-11 15:11:44

系統(tǒng)軟件部署

2025-03-04 08:06:17

2021-08-20 08:33:19

操作系統(tǒng)OS

2019-08-19 14:51:56

Linux 系統(tǒng) 數(shù)據(jù)

2024-07-26 08:47:07

2023-12-19 09:24:22

LinuxBIOSUEFI
點贊
收藏

51CTO技術(shù)棧公眾號