Linux 中監(jiān)控磁盤 I/O 性能的最佳工具
摘要:在本指南中,我們將討論在 Linux 服務(wù)器上監(jiān)視和調(diào)試磁盤 I/O 活動(性能)的最佳工具。
Linux 服務(wù)器上要監(jiān)控的一個重要性能指標(biāo)是磁盤 I/O(輸入/輸出)活動,它可以顯著影響 Linux 服務(wù)器的許多方面,特別是文件或數(shù)據(jù)在磁盤上的存儲方式或檢索速度(尤其是在數(shù)據(jù)庫上) )。這對應(yīng)用程序和服務(wù)的性能有重大影響。
1. iostat – 顯示設(shè)備數(shù)據(jù)和統(tǒng)計信息
sysstat 軟件包中的系統(tǒng)監(jiān)視實用程序,這是一種廣泛使用的工具,旨在報告塊設(shè)備和分區(qū)的 CPU 統(tǒng)計信息和 I/O 統(tǒng)計信息。
要在 Linux 服務(wù)器上使用 iostat,您必須使用適合您的 Linux 發(fā)行版的命令在 Linux 操作系統(tǒng)上安裝 sysstat 軟件包。
$sudo apt install sysstate [在Debian、Ubuntu 和 Mint上]
$ sudo yum install sysstat [ 在RHEL / CentOS / Fedora和Rocky Linux / AlmaLinux上
$ sudo emerge -a app-admin/sysstat [在Gentoo Linux上]
$sudo apk 添加系統(tǒng)狀態(tài) [在Alpine Linux上]
$sudo pacman -S sysstate [在Arch Linux上]
$sudo zypper install sysstate [在OpenSUSE上]
-d要顯示簡單的設(shè)備使用情況配置文件,請使用命令行選項運(yùn)行 iostat 。通常,第一個報告給出了自系統(tǒng)啟動以來經(jīng)過的時間(引導(dǎo)時間)的估計,并且任何后續(xù)報告都與經(jīng)過的時間有關(guān)。
用于-x擴(kuò)展會計報告和-t年份標(biāo)記,以便為每個報告留出時間。此外,要排除在報告輸出中不起作用的設(shè)備,請?zhí)砑?z年份標(biāo)志:
# iostat -d -t
或者
#iostat-d-x-t
要以千字節(jié)每秒而不是每秒塊數(shù)顯示統(tǒng)計信息,請?zhí)砑幽攴?k標(biāo)志,或使用-m標(biāo)志以每秒兆字節(jié)顯示統(tǒng)計信息。
# iostat -d -k
或者
# iostat -d -m
iostat還可以以x秒的間隔顯示連續(xù)的機(jī)器信息。例如,以下命令以兩秒間隔顯示數(shù)據(jù):
# iostat-d
與上一個命令相關(guān),您可以以 x 秒間隔顯示 n 個數(shù)據(jù)。以下命令將以兩秒的間隔顯示 10 條通知?;蛘吣梢詫蟾姹4娴轿募幸怨┮院蠓治觯?/span>
# iostat-d
或者
# iostat -d 2 10 > disk_io_report.txt &
有關(guān)數(shù)據(jù)列的更多信息,請閱讀 iostat 手冊頁:
# 男人iostat
2. sar——顯示Linux系統(tǒng)執(zhí)行情況
sar 是另一個有用的實用程序,隨 sysstat 軟件包一起提供,旨在收集、報告或存儲系統(tǒng)活動數(shù)據(jù)。在開始使用之前,您需要按照以下順序進(jìn)行配置。
首先,使其能夠收集 /etc/default/sysstat 文件中的數(shù)據(jù)。
# 我們/etc/default/sysstate
找到以下行并將值更改為“true”,如圖所示。
已啟用=“真”
接下來,您需要減少 sysstat cron 作業(yè)中定義的數(shù)據(jù)收集間隔。最初設(shè)置為每 10 分鐘一次,您可以將其降至每 2 分鐘一次。
您可以在 /etc/cron.d/sysstat 文件中執(zhí)行此操作:
# 我們/etc/cron.d/sysstate
保存并關(guān)閉文件。
最后,啟用 sysstat 服務(wù)并使用以下 systemctl 命令啟動它:
# systemctl 啟用 --now sysstate.service
# systemctl 啟用 sysstate.service
接下來,等待 2 分鐘,然后開始查看 sar 數(shù)據(jù)。使用 sar 命令和-b命令行選項指定 I/O 和傳輸速率統(tǒng)計信息,并-d指定每個塊設(shè)備的性能,如圖所示。
# sar -d -b
3. iotop – 監(jiān)控Linux磁盤I/O使用情況
iotop 的等效工具是一個簡單的工具,允許您監(jiān)視每個進(jìn)程的磁盤 I/O 性能和使用情況。
您可以按如下方式將其安裝在 Linux 服務(wù)器上(請記住運(yùn)行適合您的 Linux 發(fā)行版的命令):
$ sudo apt install iotop [在Debian、Ubuntu 和 Mint上]
$ sudo yum install iotop [在RHEL/CentOS/Fedora和Rocky Linux/AlmaLinux上]
$ sudo emerge -a sys-processs/iotop [在Gentoo Linux上]
$ sudo apk add iotop [在Alpine Linux上]
$sudo pacman-S iotope [在Arch Linux上]
$sudo zypper install iotop [在OpenSUSE上]
要檢查每個進(jìn)程的 I/O 活動,您可以運(yùn)行不帶任何參數(shù)的 iotop,如下所示。默認(rèn)情況下,迭代之間的延遲為 1 秒。您可以-d使用標(biāo)志更改此設(shè)置。
# 碘位素
或者
# 碘位素-d
iotop 默認(rèn)會顯示進(jìn)程的所有線程。要更改此行為以使其僅顯示操作,請使用-P命令行選項。
# 碘位素-P
此外,如果您使用-a該選項,您可以指示它顯示聚合 I/O 而不是帶寬。在這種情況下,iotop 指示自調(diào)用 iotop 以來執(zhí)行的 I/O 操作量。
# 碘位素-P-a
這就是我們?yōu)槟鷾?zhǔn)備的一切!我們想知道您對本指南或上述工具的看法。通過下面的評論表發(fā)表評論。
您還可以讓我們知道您認(rèn)為此列表中缺少但值得出現(xiàn)在此處的應(yīng)用程序。