提升Linux系統性能的5大必備監控命令,讓你輕鬆掌控伺服器狀態

5個Linux效能監控命令

1. vmstat – 報告虛擬記憶體統計資料

vmstat 命令可列印有關記憶體、交換、I/O 和 CPU 活動的詳細報告。其中包括已用/可用記憶體、交換入/出、磁碟塊讀/寫和 CPU 程序/閒置時間等指標。
例子:
vmstat 5
其他有用的 vmstat 選項:
  • • -a – 顯示活動和非活動記憶體
  • • -s – 顯示事件計數器和記憶體統計資訊
  • • -S – 以 KB 而不是塊為單位輸出
  • • 5 – 每 5 秒重新整理一次輸出。
上面的示例每 5 秒輸出一次記憶體和 CPU 資料,直到中斷為止,這對監控即時系統效能非常有用。
[root@xx web]# vmstat 5procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st 0  0      0 115732      0 952956    0    0     0     2    2    4  0  0 99  0  0
每一列代表的意思:
procs: 程序統計資訊
  • • r: 執行佇列中正在執行的程序數
  • • b: 等待執行的程序數
memory: 記憶體統計資訊
  • • swpd: 使用的交換空間大小(單位為KB)
  • • free: 空閒記憶體大小(單位為KB)
  • • buff: 用於緩衝的記憶體大小(單位為KB)
  • • cache: 用於快取的記憶體大小(單位為KB)
swap: 交換空間統計資訊
  • • si: 從磁碟讀取到交換空間的資料大小(單位為KB/s)
  • • so: 從交換空間寫入到磁碟的資料大小(單位為KB/s)
io: I/O 統計資訊
  • • bi: 塊裝置接收的塊數(單位為塊/s)
  • • bo: 塊裝置傳送的塊數(單位為塊/s)
system: 系統統計資訊
  • • in: 每秒中斷的數量
  • • cs: 每秒上下文切換的數量
cpu: CPU 統計資訊
  • • us: 使用者程序使用 CPU 的時間百分比
  • • sy: 系統程序使用 CPU 的時間百分比
  • • id: CPU 處於空閒狀態的時間百分比
  • • wa: CPU 正在等待 I/O 完成的時間百分比
  • • st: 被虛擬化環境(例如虛擬機器)偷取的時間百分比

2. iostat – 報告 CPU 和 I/O 統計資料

iostat 命令監控並顯示 CPU 利用率和磁碟 I/O 指標。其中包括 CPU 負載、IOPS、讀/寫吞吐量等。
一些 iostat 選項:
  • • c – 顯示 CPU 使用率資訊
  • • t – 為每份報告列印時間戳
  • • x – 顯示服務時間和等待計數等擴充套件統計資訊
  • • d – 顯示每個磁碟/分割槽的詳細統計資訊,而不是合計總數
  • • p – 顯示特定磁碟裝置的統計資訊
下面每 5 秒鐘顯示一次 sda 每個裝置的詳細 I/O 統計資訊。
iostat -d -p sda 5
iostat 可幫助分析磁碟子系統的效能,找出硬體瓶頸。
[root@xx web]# iostatLinux 4.19.188-10.el7.ucloud.x86_64 (10-50-90-250)     01/11/2024     _x86_64_    (2 CPU)avg-cpu:  %user   %nice %system %iowait  %steal   %idle           0.41    0.00    0.36    0.00    0.00   99.23Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtnvda               0.45         0.10         4.60     433948   19644449
每一列引數代表的意思:
avg-cpu:這一行統計了 CPU 使用情況的平均值。
  • • %user:使用者態程序使用 CPU 的百分比。
  • • %nice:以較高優先順序執行的使用者態程序使用 CPU 的百分比(優先順序較低的使用者態程序)。
  • • %system:核心程序使用 CPU 的百分比。
  • • %iowait:CPU 等待 I/O 完成的百分比。
  • • %steal:當 hypervisor(虛擬化環境中的宿主機)需要讓出 CPU 給其他虛擬機器時,該 CPU 被偷取的百分比。
  • • %idle:CPU 空閒時間的百分比。
Device:這一行顯示了每個磁碟裝置的統計資料。
  • • tps:每秒傳輸的 I/O 請求數。這個值反映了磁碟裝置的工作負載。
  • • kB_read/s:每秒從裝置讀取的資料量,以千位元組 (KB) 為單位。
  • • kB_wrtn/s:每秒寫入裝置的資料量,以千位元組 (KB) 為單位。
  • • kB_read:從裝置讀取的總資料量,以千位元組 (KB) 為單位。
  • • kB_wrtn:寫入裝置的總資料量,以千位元組 (KB) 為單位。

3. free – 顯示可用和已用記憶體量

free 命令顯示系統中物理記憶體和交換記憶體的總量、已用量和空閒量。這將提供可用記憶體的總體情況。
例子:
free -h
free 命令的一些選項:
  • • b – 以位元組為單位顯示輸出
  • • k – 以 KB(而非預設位元組)為單位顯示輸出結果
  • • m – 以 MB 為單位顯示輸出,而不是以位元組為單位
  • • h – 以 GB、MB 等人類可讀格式列印統計資料,而不是位元組。
以人類可讀格式(GB、MB 等)列印記憶體統計資料。當你想快速瞭解記憶體容量時,它非常有用。

4. df – 報告檔案系統磁碟空間使用情況

df 命令顯示檔案系統的磁碟空間使用情況。它會顯示檔案系統名稱、總/已用/可用空間和容量。
常用的引數選項:
  • • -h :以人類可讀的格式顯示磁碟使用情況,以 K、M、G 等單位表示檔案系統的大小和可用空間。
  • • -T :顯示檔案系統型別。
  • • -i :顯示 inode 的使用情況而不是磁碟空間。
  • • -a :顯示所有檔案系統,包括系統特有的檔案系統。
  • • -x type :排除指定型別的檔案系統。例如,-x tmpfs 將排除 tmpfs 型別的檔案系統。
  • • -hT :同時使用 -h 和 -T 引數,以人類可讀的格式顯示檔案系統以及各個檔案系統型別。
  • • –total :在最後一行顯示所有檔案系統的總空間和已使用空間。
  • • –help :顯示 df 命令的幫助資訊,包括所有可用的引數選項和用法示例。
例子:
df -h
上述命令將以人類可讀的格式列印磁碟利用率。也可以不帶引數執行該命令,以塊大小獲得相同的資料。
[root@xx web]# df -TFilesystem     Type     1K-blocks    Used Available Use% Mounted ondevtmpfs       devtmpfs    891628       0    891628   0% /devtmpfs          tmpfs       904464       0    904464   0% /dev/shmtmpfs          tmpfs       904464  107052    797412  12% /runtmpfs          tmpfs       904464       0    904464   0% /sys/fs/cgroup/dev/vda1      xfs       62903276 4308344  58594932   7% /tmpfs          tmpfs       180896       0    180896   0% /run/user/0
各列的含義:
  • • Filesystem:檔案系統的名稱或掛載點名稱。
  • • Type:檔案系統的型別。
  • • 1K-blocks:檔案系統的總塊數(以千位元組為單位)。
  • • Used:已使用的塊數(以千位元組為單位)。
  • • Available:可用的塊數(以千位元組為單位)。
  • • Use%:已使用空間佔總空間的百分比。
  • • Mounted on:檔案系統的掛載點。

5. sar – 收集和報告系統活動

sar 工具收集並記錄一段時間內 CPU、記憶體、I/O、網路等系統活動資訊。透過分析這些資料,可以發現效能問題。
語法:
sar [options] [interval [count]]
其中,[options] 是可選的命令選項,[interval] 是資料收集的時間間隔(以秒為單位),[count] 是指定收集的次數。
一些常用的 sar 引數選項和示例:
  • • -u:顯示 CPU 使用率統計資料。示例:sar -u
  • • -r:顯示記憶體使用情況統計資料。示例:sar -r
  • • -b:顯示磁碟 I/O 統計資料。示例:sar -b
  • • -n DEV:顯示網路介面的統計資料,其中 DEV 是網路介面的名稱,如 eth0。示例:sar -n DEV
  • • -q:顯示執行佇列和負載平均值的統計資料。示例:sar -q
  • • -A:顯示所有可用的統計資料。示例:sar -A
  • • -s HH:MM:SS:從指定的起始時間開始顯示統計資料。示例:sar -s 10:00:00
  • • -e HH:MM:SS:顯示到指定的結束時間的統計資料。示例:sar -e 12:00:00
  • • -f FILE:指定 sar 資料檔案的路徑,用於讀取預先記錄的資料。在 Linux 系統上,預設情況下,sar 資料檔案儲存在 /var/log/sa/ 目錄下,檔名以 sa 開頭,後面跟著日期的數字表示,如 sa01、sa02 等。每個資料檔案包含了特定日期的系統活動報告資料。示例:sar -f /var/log/sa/sa01
  • • -o OUTPUT_FILE:將統計資料寫入指定的輸出檔案中,以便後續使用。示例:sar -o output.txt
例子:
sar -u 5 60
每 5 秒取樣一次 CPU 使用情況,持續 60 次。
sar 提供了即時工具無法提供的詳細歷史系統性能資料。
連結:https://blog.csdn.net/heshihu2019/article/details/135538993?ops_request_misc=&request_id=&biz_id=102&utm_term=linux%E7%9B%91%E6%8E%A7&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-3-135538993.142^v102^pc_search_result_base6&spm=1018.2226.3001.4187
(版權歸原作者所有,侵刪)
文末福利
就目前來說,傳統運維衝擊年薪30W+的轉型方向就是SRE&DevOps崗位。
為了幫助大家早日擺脫繁瑣的基層運維工作,給大家整理了一套高階運維工程師必備技能資料包,內容有多詳實豐富看下圖!
共有 20 個模組
1.38張最全工程師技能圖譜
2.面試大禮包
3.Linux書籍
4.go書籍
······
6.自動化運維工具
18.訊息佇列合集
 以上所有資料獲取請掃碼
備註:最新運維資料
100%免費領取
(後臺不再回復,掃碼一鍵領取


相關文章