Linux查看IO

一、Linux查看IO速度

Linux可以通過`dd`命令來測試磁碟IO的速度,例如測試磁碟寫入速度,執行以下命令:

dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync

這裡會將/dev/zero設備中的數據寫入到test文件中,其中`bs`是塊大小,`count`是塊數,`conv`是數據處理方式,`fdatasync`表示將數據同步到磁碟。執行後會看到如下輸出信息:

16384+0 records in
16384+0 records out
1073741824 bytes (1.1 GB) copied, 11.3468 s, 94.6 MB/s

其中`MB/s`表示磁碟寫入速度,此處為94.6MB/s。

二、Linux查看磁碟IO命令

Linux中有多個命令可以查看磁碟IO情況,其中比較常用的有`iostat`、`iotop`和`dstat`。這裡簡單介紹一下這幾個命令。

(1)iostat

iostat -x 1

-iostat命令可以查看磁碟IO使用情況,其中`-x`參數表示顯示更詳細的信息。執行後會顯示如下信息:

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.00    0.00    0.01    0.01    0.00   99.99

Device:  rrqm/s  wrqm/s    r/s    w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda        0.03    0.00    0.04   0.01     1.65    62.33    968.10     0.00    1.71   0.73   0.00

其中比較重要的是`%iowait`和`%util`,前者表示IO等待時間的佔用率,後者表示磁碟的IO使用率。此處`%iowait`為0.01%、`%util`為0%,磁碟的使用情況比較輕。

(2)iotop

iotop

iotop可以實時地查看IO的情況,並且可以根據IO情況進行排序。執行後會顯示如下信息:

Total DISK READ :      20.32 K/s | Total DISK WRITE :      13.39 K/s
Current DISK READ:       0.00 B/s | Current DISK WRITE:       0.00 B/s
    TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN      IO    COMMAND
  57124 be/4 root          0.00 B     24.00 K  0.00 %  0.00 % tumblerd
  57689 be/4 test          4.00 K      8.00 K  0.00 %  0.00 % bash

其中顯示了進程的IO情況,包括進程的ID、用戶、讀寫速度等。

(3)dstat

dstat -d

dstat可以給出當前系統的各種狀態信息,其中`-d`參數表示只顯示磁碟相關的信息。執行後會顯示如下信息:

---dsk/sda---- -dsk/sdb-- -dsk/sdc-- -dsk/sdd--
 read  writ| read  writ| read  writ| read  writ
  34M    0 |  44k    0 |   0     0 |   0     0

其中顯示了各個磁碟的讀寫速度情況。

三、Linux查看IO使用情況

Linux可以通過`iostat`命令查看系統的IO使用情況,其中包括磁碟、CPU等方面的信息。如果想要查看某個進程的IO使用情況,可以使用`pidstat`命令。例如想要查看進程ID為1111的進程的IO使用情況,執行以下命令:

pidstat -d 1 1111

其中`-d`參數表示顯示磁碟使用情況,`1`表示每秒更新一次,`1111`表示進程的ID。執行後會顯示如下信息:

Linux 3.10.0-693.11.6.el7.x86_64 (localhost)     08/13/18     _x86_64_    (8 CPU)

#  Time   UID     PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
09:58:43  1000   1111      0.00     32.00      0.00  java
09:58:44  1000   1111      0.00    128.00      0.00  java

其中顯示了進程的ID、磁碟的讀寫速度等信息。

四、Linux查看IO阻塞

Linux可以通過`iostat`命令查看磁碟IO的阻塞情況。例如想要查看磁碟的IO阻塞情況,執行以下命令:

iostat -xz 1

其中`-x`參數表示顯示更詳細的信息,`-z`參數表示將等待時間作為磁碟使用情況的一項。執行後會顯示如下信息:

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.01    0.00    0.02    0.01    0.00   99.96

Device:  rrqm/s  wrqm/s    r/s    w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda        0.16    0.00    0.17   0.03     3.28    71.00   1088.82     0.01   34.22   1.30   0.03

其中`%iowait`表示IO等待時間的佔用率,此處為0.01%。如果`%iowait`一直比較高,說明可能存在IO阻塞情況。

五、Linux查看IO情況

Linux可以通過命令`iostat`來查看IO情況,該命令可以顯示設備的IO統計信息。例如想要查看設備sda的IO情況,執行以下命令:

iostat -x 1 sda

其中`-x`參數表示顯示更詳細的信息,`1`表示每秒更新一次,`sda`表示要監控的設備名稱。執行後會顯示如下信息:

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.00    0.00    0.00    0.02    0.00   99.98

Device:  rrqm/s  wrqm/s    r/s    w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda        0.00    0.00    0.01   0.00     0.11     0.00     7.12     0.00    3.19   0.20   0.00

其中顯示了設備的IO情況,包括讀寫速率、等待時間、使用率等信息。如果發現設備的IO使用率比較高,說明設備正在被佔用,需要排查一下原因。

六、Linux查看IO佔用率

Linux可以通過命令`iostat`來查看IO的佔用率,該命令可以顯示設備的IO統計信息。例如想要查看設備sda的IO佔用率,執行以下命令:

iostat -d 1 sda | awk '/sda/ {print $14}'

其中`-d`參數表示只顯示磁碟相關的信息,`1`表示每秒更新一次,`sda`表示要監控的設備名稱。執行後會顯示當前設備的IO使用率。

七、Linux查看IO性能

Linux可以通過命令`fio`來測試磁碟的IO性能,該命令可以模擬多種IO負載場景,例如順序讀寫、隨機讀寫等等。例如模擬4K隨機讀寫負載,執行以下命令:

fio --name=randwrite --ioengine=sync --rw=randwrite --bs=4k --numjobs=16 --size=1g --runtime=300s --time_based

其中`–name`表示任務名稱,`–ioengine`表示IO引擎,`–rw`表示讀寫方式,`–bs`表示塊大小,`–numjobs`表示線程數,`–size`表示數據量,`–runtime`表示運行時間,`–time_based`表示按時間運行而不是按次數運行。執行後會顯示測試結果。

八、Linux查看IO命令

Linux可以通過命令`iostat`、`iotop`、`dstat`等來查看IO情況,同時也可以通過命令`fio`來測試IO性能。這裡再列舉幾個命令:

(1)`cat /proc/diskstats`:查看各個磁碟的統計信息;

(2)`sar -d`:查看磁碟IO使用情況;

(3)`lsof -c `:查看指定進程的打開的文件列表,其中也包含進行讀寫的文件;

(4)`strace -e trace=file `:查看命令執行時涉及到的文件IO操作。

九、Linux查看IO讀寫情況

Linux可以通過命令`iotop`來查看IO讀寫情況,該命令可以實時地顯示進程的IO情況,並且可以按照IO讀寫速度排序。例如執行以下命令:

iotop -a

其中`-a`參數表示顯示所有進程的IO情況,不僅僅是當前用戶的進程。執行後會按照IO讀寫速度進行排序並實時顯示進程的IO情況。

十、Linux查看IO負載情況

Linux可以通過命令`pidstat`來查看進程的IO負載情況,該命令可以顯示進程在不同狀態下的CPU、內存、IO等資源的使用情況。例如想要查看進程ID為1111的進程的IO負載情況,執行以下命令:

pidstat -d 1 1111

其中`-d`參數表示顯示磁碟使用情況,`1`表示每秒更新一次,`1111`表示進程的ID。執行後會顯示如下信息:

Linux 3.10.0-693.11.

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/186404.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-27 05:46
下一篇 2024-11-27 05:46

相關推薦

  • gateway io.netty.buffer.poolchunk

    在本文中,我們將深入探討Netty中的一個基礎組件——PoolChunk,它是Netty中ByteBuf的一個關鍵實現,負責對ByteBuf進行緩存和管理。我們將從多個方面對該組件…

    編程 2025-04-28
  • 如何在Linux中添加用戶並修改配置文件

    本文將從多個方面詳細介紹在Linux系統下如何添加新用戶並修改配置文件 一、添加新用戶 在Linux系統下創建新用戶非常簡單,只需使用adduser命令即可。使用以下命令添加新用戶…

    編程 2025-04-27
  • 如何解決linux jar包 invalid or corrupt jarfile問題

    對於許多開發人員和系統管理員在Linux環境下使用Java開發過程中遇到的一個常見的問題是 invalid or corrupt jarfile(無效或損壞的jar文件)錯誤。當您…

    編程 2025-04-27
  • 在Linux上安裝JRE並配置環境變數

    本文將從以下幾個方面為您詳細闡述如何在Linux系統上,通過自己賬戶安裝JRE,並且配置環境變數。 一、安裝JRE 在進行安裝前,我們需要下載JRE的安裝包並解壓,可以從官方網站下…

    編程 2025-04-27
  • GTKAM:Linux下的照片管理器

    GTKAM是用於Linux操作系統的一款照片管理器,它支持多種相機及存儲設備,並提供了一系列強大的工具,讓用戶可以方便地瀏覽、管理、編輯和導出照片。本文將從多個方面對GTKAM進行…

    編程 2025-04-27
  • Linux sync詳解

    一、sync概述 sync是Linux中一個非常重要的命令,它可以將文件系統緩存中的內容,強制寫入磁碟中。在執行sync之前,所有的文件系統更新將不會立即寫入磁碟,而是先緩存在內存…

    編程 2025-04-25
  • Linux修改文件名命令詳解

    在Linux系統中,修改文件名是一個很常見的操作。Linux提供了多種方式來修改文件名,這篇文章將介紹Linux修改文件名的詳細操作。 一、mv命令 mv命令是Linux下的常用命…

    編程 2025-04-25
  • Linux網路連接激活失敗原因及解決方法

    一、網卡驅動問題 1、缺少網卡驅動 若使用新的網卡,需要安裝對應網卡驅動,否則會導致網路連接激活失敗。可通過以下命令查看當前系統中是否存在網卡驅動: lsmod | grep et…

    編程 2025-04-25
  • 如何在Windows/Linux/MacOS下安裝Python

    如果你對Python安裝一無所知,本文將從多個方面對Python在Windows/Linux/MacOS下的安裝做出詳細闡述,為初學者提供幫助。 一、Windows下Python的…

    編程 2025-04-25
  • Linux Redis 重啟

    一、概述 Redis 是一款高性能的 NoSQL 資料庫,常用於各種應用場景的數據緩存、消息隊列、實時數據分析等等。在使用 Redis 過程中,如果出現了某些問題,有時候只需要重啟…

    編程 2025-04-25

發表回復

登錄後才能評論