當前位置:首頁 » 硬碟大全 » linux硬碟io
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

linux硬碟io

發布時間: 2023-06-03 19:14:04

1. Linux磁碟I/O子系統

上文學到 不管什麼文件系統類型,都通過VFS(虛擬文件系統層)讀和寫等操作文件,寫文件的元數據和文件的實際數據到磁碟 。但數據是怎麼落地磁碟中的呢?落到磁碟中的都經過什麼組件?

以一個寫數據到磁碟為例,給出Linux I/O子系統的體系結構。

當磁碟執行寫入操作時發生的 基本操作 (假設磁碟上扇區中的文件數據已經被讀取到分頁緩存)。

1) 一個進程通過write()系統調用 VFS虛擬文件系統 請求寫一個文件。

2) 內核更新已映射文件的分頁緩存。

3) 內核線程 pdflush/Per-BDI flush將分頁緩存刷新到磁碟。

4) 同時 VFS虛擬文件系統層 在一個bio(block input output)結構中放置每個塊緩沖,並向塊設備層提交寫請求。

5) 塊設備層 從上層得到請求,並執行一個 I/O電梯操作,將請求放置到I/O 請求隊列。

6) 設備驅動器 (比如SCSI 或 其他設備特定的驅動器)將執行寫操作。

7) 磁碟設備 固件執行硬體操作,如在碟片扇區上定位磁頭,旋轉,數據傳輸。

過去的20年中,處理器性能的改進要超過計算機系統中的其他組件,如處理器緩存、物理內存及磁碟等等。 訪問內存和磁碟的速度較慢會限制整個系統的性能 ,怎麼解決這個問題呢?引入 磁碟緩存機制 ,在較快的存儲器中緩存頻繁使用的數據,減少了訪問較慢的存儲器的次數。

磁碟緩存機制有以下3個地方解決:

引入存儲層次結構 ,在CPU和磁碟之間放置L1緩存、L2緩存、物理內存和一些其他緩存減少這種不匹配,從而讓進程減少訪問較慢的內存和磁碟的次數,避免CPU花費更多的時間等待來自較慢磁碟驅動器的數據。

另外一種解決思路: 在更快的存儲器上實現更高的緩存命中率,就可能更快地訪問數據 。怎麼提高緩存命中率呢?引入 參考局部性(locality of reference) 的技術。這項技術基於以下2個原則:

1) 大多數最近使用過的數據,在不久的將來有較高的幾率被再次使用(時間局部性)。

2) 駐留在數據附近的數據有較高的幾率被再次使用(空間局部性)。

Linux在許多組件中使用這些原則,比如分頁緩存、文件對象緩存(索引節點緩存、目錄條目緩存等等)、預讀緩沖等。

以進程從磁碟讀取數據並將數據復制到內存的過程為例。進程可以從緩存在內存中的數據副本中檢索相同的數據,用於讀和寫。

1) 進程寫入新數據

當一個進程試圖改變數據時,進程首先在內存中改變數據。此時磁碟上的數據和內存中的數據是不相同的,並且內存中的數據被稱為 臟頁(dirty page) 。臟頁中的數據應該盡快被同步到磁碟上,因為如果系統突然發生崩潰(電源故障)則內存中的數據會丟失。

2) 將內存中的數據刷新到磁碟

同步臟數據緩沖的過程被稱為 刷新 。在Linux 2.6.32內核之前(Red Hat Enterprise  Linux 5),通過內核線程pdflush將臟頁數據刷新到磁碟。在Linux 2.6.32內核中(Red Hat Enterprise Linux 6.x)pdflush被Per-BDI flush線程(BDI=Backing Device Interface)取代,Per-BDI flush線程以flush-MAJOR:MINOR的形式出現在進程列表中。當內存中臟頁比例超過閥值時,就會發生刷新(flush)。

塊層處理所有與塊設備操作相關的活動。塊層中的關鍵數據結構是bio(block input output)結構,bio結構是在虛擬文件系統層和塊層之間的一個介面。

當執行寫的時候,虛擬文件系統層試圖寫入由塊緩沖區構成的頁緩存,將連續的塊放置在一起構成bio結構,然後將其發送到塊層。

塊層處理bio請求,並鏈接這些請求進入一個被稱為I/O請求的隊列。這個鏈接的操作被稱為 I/O電梯調度(I/O elevator)。問個問題:為啥叫電梯調度呢?

Linux 2.4內核使用的是一種單一的通用I/O電梯調度方法,2.6內核提供4種電梯調度演算法供用戶自己選擇。因為Linux操作系統適用的場合很廣泛,所以I/O設備和工作負載特性都會有明顯的變化。

1)CFQ(Complete Fair Queuing,完全公平隊列)

CFQ電梯調度為每個進程維護一個I/O隊列,從而 對進程實現一個QoS(服務質量)策略 。CFQ電梯調度能夠很好地適應存在很多競爭進程的大型多用戶系統。它積極地避免進程餓死並具有低延遲特徵。從2.6.18內核發行版開始,CFQ電梯調度成為默認I/O調度器。

CFQ為每個進程/線程單獨創建一個隊列來管理產生的請求,各隊列之間用時間片來調度,以保證每個進程都能分配到合適的I/O帶寬。I/O調度器每次執行一個進程的4個請求。

2)Deadline

Deadline是一種循環的電梯調度(round  robin)方法,Deadline 演算法實現了一個近似於實時的I/O子系統。在保持良好的磁碟吞吐量的同時,Deadline電梯調度既提供了出色的塊設備扇區的順序訪問,又確保一個進程不會在隊列中等待太久導致餓死。

Deadline調度器為了兼顧這兩個方面,引入了4個隊列,這4個隊列可分為兩類,每一類都由讀和寫兩種隊列組成。一類隊列用來對 請求 按 起始扇區序號 進行排序(通過紅黑樹來組織),稱為sort_list;另一類對 請求 按 生成時間進行排序 (由鏈表來組織),稱為fifo_list。每當確定了一個傳輸方向(讀或寫),系統都將會從相應的sort_list中將一批連續請求調度到請求隊列里,具體的數目由fifo_batch來確定。 只有遇到三種情況才會導致一次批量傳輸的結束 :1.對應的sort_list中已經沒有請求了;2.下一個請求的扇區不滿足遞增的要求;3.上一個請求已經是批量傳輸的最後一個請求了。

所有的請求在生成時都會被賦上一個期限值,並且按期限值將它們排序在fifo_list中, 讀請求的期限時長默認為500ms,寫請求的期限時長默認為5s。 在Deadline調度器定義了一個writes_starved默認值為2,寫請求的飢餓線。 內核總是優先處理讀請求,當餓死進程的次數超過了writes_starved後,才會去考慮寫請求 。 為什麼內核會偏袒讀請求呢? 這是從整體性能上進行考慮的。讀請求和應用程序的關系是同步的,因為應用程序要等待讀取完畢,方能進行下一步工作所以讀請求會阻塞進程,而寫請求則不一樣。應用程序發出寫請求後,內存的內容何時被寫入塊設備對程序的影響並不大,所以調度器會優先處理讀請求。

3) NOOP

一個簡單的FIFO 隊列,不執行任何數據排序。NOOP 演算法簡單地合並相鄰的數據請求,所以增加了少量的到磁碟I/O的處理器開銷。NOOP電梯調度假設一個塊設備擁有它自己的電梯演算法。當後台存儲設備能重新排序和合並請求,並能更好地了解真實的磁碟布局時,通常選擇NOOP調度,

4)Anticipatory

Anticipatory本質上與Deadline一樣,但Anticipatory電梯調度在處理最後一個請求之後會等待一段很短的時間,約6ms(可調整antic_expire改變該值),如果在此期間產生了新的I/O請求,它會在每個6ms中插入新的I/O操作,這樣可以將一些小的I/O請求合並成一個大的I/O請求,從而用I/O延時換取最大的I/O吞吐量。

Linux內核使用設備驅動程序得到設備的控制權。 設備驅動程序 通常是一個獨立的內核模塊,通常針對每個設備(或是設備組)而提供,以便這些設備在Linux操作系統上可用。一旦載入了設備驅動程序,將被當作Linux內核的一部分運行,並能控制設備的運行。

SCSI (Small Computer System Interface,小型計算機系統介面)是最常使用的I/O設備技術,尤其在企業級伺服器環境中。SCSI在 Linux 內核中實現,可通過設備驅動模塊來控制SCSI設備。 SCSI包括以下模塊類型 :

1) Upper IeveI drivers(上層驅動程序)。 sd_mod、sr_mod(SCSI-CDROM)、st(SCSI Tape)和sq(SCSI通用設備)等。

2) MiddIe IeveI driver(中層驅動程序) 。如scsi_mod實現了 SCSI 協議和通用SCSI功能。

3) Low IeveI drivers(底層驅動程序) 。提供對每個設備的較低級別訪問。底層驅動程序基本上是特定於某一個硬體設備的,可提供給某個設備。

4) Pseudo drive(偽驅動程序) 。如ide-scsi,用於 IDE-SCSI模擬。

通常一個較大的性能影響是文件系統元數據怎樣在磁碟上存放 。引入 磁碟條帶陣列 (RAID 0、RAID 5和RAID 6)解決這個問題。在一個條帶陣列上,磁頭在移動到陣列中下一個磁碟之前,單個磁碟上寫入的數據稱為 CHUNKSIZE ,所有磁碟使用一次它後返回到第一個磁碟。 如果文件系統的布局沒有匹配RAID的設計,則有可能會發生一個文件系統元數據塊被分散到2個磁碟上,導致對2個磁碟發起請求 。或者 將所有的元數據在一個單獨的磁碟上存儲,如果該磁碟發生故障則可能導致該磁碟變成熱點 。

設計RAID陣列需要考慮以下內容:

1) 文件系統使用的塊大小。

2) RAID 陣列使用的CHUNK大小。

3) RAID 陣列中同等磁碟的數量。

塊大小 指可以讀取/寫入到驅動器的最小數據量,對伺服器的性能有直接的影響。塊的大小由文件系統決定,在聯機狀態下不能更改,只有重新格式化才能修改。可以使用的塊大小有1024B、2048B、4096B,默認為 4096 B。

stride條帶 是在一個chunk中文件系統塊的數量。如果文件系統塊大小為4KB,則chunk大小為64KB,那麼stride是64KB/4KB=16塊。

stripe-width 是RAID陣列上一個條帶中文件系統塊的數量。比如 一個3塊磁碟的RAID5陣列 。按照定義,在RAID5陣列每個條帶中有1個磁碟包含奇偶校驗內容。想要得到stripe-width,首先需要知道每個條帶中有多少磁碟實際攜帶了數據塊,即3磁碟-1校驗磁碟=2數據磁碟。2個磁碟中的stride是chunk中文件系統塊的數量。因此能計算 2(磁碟)*16(stride)=32(stripe)。

創建文件系統時可以使用mkfs給定數量:mk2fs -t ext4 -b 4096 -E stripe=16,stripe_width=64 /dev/vda

2. linux查看磁碟io的幾種方法

linux查看磁碟io的幾種方法

怎樣才能快速的定位到並發高是由於磁碟io開銷大呢?可以通過三種方式:

第一種:用 top 命令 中的cpu 信息觀察

Top可以看到的cpu信息有:

Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zombie

Cpu(s): 0.3% us, 1.0% sy, 0.0% ni, 98.7% id, 0.0% wa, 0.0% hi, 0.0% si

具體的解釋如下:

Tasks: 29 total 進程總數

1 running 正在運行的進程數

28 sleeping 睡眠的進程數

0 stopped 停止的進程數

0 zombie 僵屍進程數

Cpu(s):

0.3% us 用戶空間佔用CPU百分比

1.0% sy 內核空間佔用CPU百分比

0.0% ni 用戶進程空間內改變過優先順序的進程佔用CPU百分比

98.7% id 空閑CPU百分比

0.0% wa 等待輸入輸出的CPU時間百分比

0.0% hi

0.0% si

0.0% wa 的百分比可以大致的體現出當前的磁碟io請求是否頻繁。如果 wa的數量比較大,說明等待輸入輸出的的io比較多。

第二種:用vmstat

vmstat 命令報告關於線程、虛擬內存、磁碟、陷阱和 CPU 活動的統計信息。由 vmstat 命令生成的報告可以用於平衡系統負載活動。系統范圍內的這些統計信息(所有的處理器中)都計算出以百分比表示的平均值,或者計算其總和。

輸入命令:

vmstat 2 5

如果發現等待的進程和處在非中斷睡眠狀態的進程數非常多,並且發送到塊設備的塊數和從塊設備接收到的塊數非常大,那就說明磁碟io比較多。

vmstat參數解釋:

Procs

r: 等待運行的進程數 b: 處在非中斷睡眠狀態的進程數 w: 被交換出去的可運行的進程數。此數由 linux 計算得出,但 linux 並不耗盡交換空間

Memory

swpd: 虛擬內存使用情況,單位:KB

free: 空閑的內存,單位KB

buff: 被用來做為緩存的內存數,單位:KB

Swap

si: 從磁碟交換到內存的交換頁數量,單位:KB/秒

so: 從內存交換到磁碟的交換頁數量,單位:KB/秒

IO

bi: 發送到塊設備的塊數,單位:塊/秒

bo: 從塊設備接收到的塊數,單位:塊/秒

System

in: 每秒的中斷數,包括時鍾中斷

cs: 每秒的環境(上下文)切換次數

CPU

按 CPU 的總使用百分比來顯示

us: CPU 使用時間

sy: CPU 系統使用時間

id: 閑置時間

准測

更多vmstat使用信息

第二種:用iostat

安裝:

Iostat 是 sysstat 工具集的一個工具,需要安裝。

Centos的安裝方式是:

yum install sysstat

Ubuntu的安裝方式是:

aptitude install sysstat

使用:

iostat -dx 顯示磁碟擴展信息

root@fileapp:~# iostat -dx

r/s 和 w/s 分別是每秒的讀操作和寫操作,而rKB/s 和wKB/s 列以每秒千位元組為單位顯示了讀和寫的數據量

如果這兩對數據值都很高的話說明磁碟io操作是很頻繁。

+++++++++++++++++++++++++++++++++++++

linux wa%過高,iostat查看io狀況

1, 安裝  iostat  

yum install sysstat

之後就可以使用 iostat 命令了,

2,入門使用

iostat -d -k 2

參數 -d 表示,顯示設備(磁碟)使用狀態;-k某些使用block為單位的列強制使用Kilobytes為單位;2表示,數據顯示每隔2秒刷新一次。

tps:該設備每秒的傳輸次數(Indicate the number of transfers per second that were issued to the device.)。"一次傳輸"意思是"一次I/O請求"。多個邏輯請求可能會被合並為"一次I/O請求"。"一次傳輸"請求的大小是未知的。kB_read/s:每秒從設備(drive expressed)讀取的數據量;

kB_wrtn/s:每秒向設備(drive expressed)寫入的數據量;

kB_read:讀取的總數據量;kB_wrtn:寫入的總數量數據量;這些單位都為Kilobytes。

指定監控的設備名稱為sda,該命令的輸出結果和上面命令完全相同。

iostat -d sda 2

默認監控所有的硬碟設備,現在指定只監控sda。 

3, -x 參數

iostat還有一個比較常用的選項 -x ,該選項將用於顯示和io相關的擴展數據。

iostat -d -x -k 1 10

輸出信息的含義



4, 常見用法

iostat -d -k 1 10        #查看TPS和吞吐量信息(磁碟讀寫速度單位為KB)

iostat -d -m 2            #查看TPS和吞吐量信息(磁碟讀寫速度單位為MB)

iostat -d -x -k 1 10      #查看設備使用率(%util)、響應時間(await) iostat -c 1 10 #查看cpu狀態

5, 實例分析

iostat -d -k 1 | grep vda

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn

sda10            60.72        18.95        71.53  395637647 1493241908

sda10          299.02      4266.67      129.41      4352        132

sda10          483.84      4589.90      4117.17      4544      4076

sda10          218.00      3360.00      100.00      3360        100

sda10          546.00      8784.00      124.00      8784        124

sda10          827.00    13232.00      136.00      13232        136

上面看到,磁碟每秒傳輸次數平均約400;每秒磁碟讀取約5MB,寫入約1MB。

iostat -d -x -k 1

Device:    rrqm/s wrqm/s  r/s  w/s  rsec/s  wsec/s    rkB/s    wkB/s avgrq-sz avgqu-sz  await  svctm  %util

sda          1.56  28.31  7.84 31.50  43.65    3.16    21.82    1.58    1.19    0.03    0.80  2.61  10.29

sda          1.98  24.75 419.80  6.93 13465.35  253.47  6732.67  126.73    32.15    2.00    4.70  2.00  85.25

sda          3.06  41.84 444.90 54.08 14204.08 2048.98  7102.04  1024.49    32.57    2.10    4.21  1.85  92.24

可以看到磁碟的平均響應時間<5ms,磁碟使用率>80。磁碟響應正常,但是已經很繁忙了。

可以看到磁碟的平均響應時間<5ms,磁碟使用率>90。磁碟響應正常,但是已經很繁忙了。

await:  每一個IO請求的處理的平均時間(單位是微秒毫秒)。這里可以理解為IO的響應時間,一般地系統IO響應時間應該低於5ms,如果大於10ms就比較大了

svctm    表示平均每次設備I/O操作的服務時間(以毫秒為單位)。如果svctm的值與await很接近,表示幾乎沒有I/O等待,磁碟性能很好,

如果await的值遠高於svctm的值,則表示I/O隊列等待太長,  系統上運行的應用程序將變慢。

%util: 在統計時間內所有處理IO時間,除以總共統計時間

所以該參數暗示了設備的繁忙程度

。一般地,如果該參數是100%表示設備已經接近滿負荷運行了(當然如果是多磁碟,即使%util是100%,因為磁碟的並發能力,所以磁碟使用未必就到了瓶頸)。

也可以使用下面的命令,同時顯示cpu和磁碟的使用情況

等待時間超過5ms, 磁碟io有問題

3. 如何提高Linux伺服器磁碟io性能

您好,很高興為您解答。

在現有文件系統下進行優化:
linux內核和各個文件系統採用了幾個優化方案來提升磁碟訪問速度。但這些優化方案需要在我們的伺服器設計中進行配合才能得到充分發揮。
文件系統緩存
linux內核會將大部分空閑內存交給虛擬文件系統,來作為文件緩存,叫做page cache。在內存不足時,這部分內存會採用lru演算法進行淘汰。通過free命令查看內存,顯示為cached的部分就是文件緩存了。

如何針對性優化:
lru並不是一個優秀淘汰演算法,lru最大的優勢是普適性好,在各種使用場景下都能起到一定的效果。如果能找到當前使用場景下,文件被訪問的統計特徵,針 對性的寫一個淘汰演算法,可以大幅提升文件緩存的命中率。對於http正向代理來說,一個好的淘汰演算法可以用1GB內存達到lru演算法100GB內存的緩存 效果。如果不打算寫一個新的淘汰演算法,一般不需要在應用層再搭一個文件cache程序來做緩存。

最小分配:
當文件擴大,需要分配磁碟空間時,大部分文件系統不會僅僅只分配當前需要的磁碟空間,而是會多分配一些磁碟空間。這樣下次文件擴大時就可以使用已經分配好的空間,而不會頻繁的去分配新空間。
例如ext3下,每次分配磁碟空間時,最小是分配8KB。
最小分配的副作用是會浪費一些磁碟空間(分配了但是又沒有使用)

如何針對性優化:
我們在reiserfs下將最小分配空間從8KB改大到128K後提升了30%的磁碟io性能。如果當前使用場景下小文件很多,把預分配改大就會浪費很多 磁碟空間,所以這個數值要根據當前使用場景來設定。似乎要直接改源代碼才能生效,不太記得了,09年的時候改的,有興趣的同學自己google吧。

io訪問調度:
在同時有多個io訪問時,linux內核可以對這些io訪問按LBA進行合並和排序,這樣磁頭在移動時,可以「順便」讀出移動過程中的數據。
SATA等磁碟甚至在磁碟中內置了io排序來進一步提升性能,一般需要在主板中進行配置才能啟動磁碟內置io排序。linux的io排序是根據LBA進行的,但LBA是一個一維線性地址,無法完全反應出二維的圓形磁碟,所以磁碟的內置io排序能達到更好的效果。

如何針對性優化:
io訪問調度能大幅提升io性能,前提是應用層同時發起了足夠的io訪問供linux去調度。
怎樣才能從應用層同時向內核發起多個io訪問呢?
方案一是用aio_read非同步發起多個文件讀寫請求。
方案二是使用磁碟線程池同時發起多個文件讀寫請求。
對我們的http正向代理來說,採用16個線程讀寫磁碟可以將性能提升到2.5倍左右。具體開多少個線程/進程,可以根據具體使用場景來決定。

小提示:
將文件句柄設置為非阻塞時,進程還是會睡眠等待磁碟io,非阻塞對於文件讀寫是不生效的。在正常情況下,讀文件只會引入十幾毫秒睡眠,所以不太明顯;而在磁碟io極大時,讀文件會引起十秒以上的進程睡眠。

預讀取:
linux內核可以預測我們「將來的讀請求」並提前將數據讀取出來。通過預讀取可以減少讀io的次數,並且減小讀請求的延時。

如何針對性優化:
預讀取的預測准確率是有限的,與其依賴預讀取,不如我們直接開一個較大的緩沖區,一次性將文件讀出來再慢慢處理;盡量不要開一個較小的緩沖區,循環讀文件/處理文件。
雖然說「預讀取」和「延遲分配」能起到類似的作用,但是我們自己擴大讀寫緩沖區效果要更好。

延遲分配:
當文件擴大,需要分配磁碟空間時,可以不立即進行分配,而是暫存在內存中,將多次分配磁碟空間的請求聚合在一起後,再進行一次性分配。
延遲分配的目的也是減少分配次數,從而減少文件不連續。

延遲分配的副作用有幾個:
1、如果應用程序每次寫數據後都通過fsync等介面進行強制刷新,延遲分配將不起作用
2、延遲分配有可能間歇性引入一個較大的磁碟IO延時(因為要一次性向磁碟寫入較多數據)
只有少數新文件系統支持這個特性

如何針對性優化:
如果不是對安全性(是否允許丟失)要求極高的數據,可以直接在應用程序里緩存起來,積累到一定大小再寫入,效果比文件系統的延遲分配更好。如果對安全性要求極高,建議經常用fsync強制刷新。

在線磁碟碎片整理:
Ext4提供了一款碎片整理工具,叫e4defrag,主要包含三個功能:
1、讓每個文件連續存儲
2、盡量讓每個目錄下的文件連續存儲
3、通過整理空閑磁碟空間,讓接下來的分配更不容易產生碎片

如何針對性優化:
「讓每個目錄下的文件連續存儲」是一個極有價值的功能。
傳統的做法是通過拼接圖片來將這10張圖片合並到一張大圖中,再由前端將大圖切成10張小圖。
有了e4defrag後,可以將需連續訪問的文件放在同一個文件夾下,再定期使用e4defrag進行磁碟整理。

實現自己的文件系統:
在大部分伺服器上,不需要支持「修改文件」這個功能。一旦文件創建好,就不能再做修改操作,只支持讀取和刪除。在這個前提下,我們可以消滅所有文件碎片,把磁碟io效率提升到理論極限。

有一個公式可以衡量磁碟io的效率:
磁碟利用率 = 傳輸時間/(平均尋道時間+傳輸時間)

如若滿意,請點擊回答右側【採納答案】,如若還有問題,請點擊【追問】

~ O(∩_∩)O~

4. Linux 如何測試 IO 性能(磁碟讀寫速度

linux下測試磁碟IO讀寫速度
[root@node3 /]# time dd if=/dev/sda2 of=/dev/null bs=8k count=524288
524288+0 records in
524288+0 records out
4294967296 bytes (4.3 GB) copied, 37.4222 seconds, 115 MB/s
real 0m37.497s
user 0m0.036s
sys 0m1.320s
了4.3G的數據,平均速度為115M/s

[root@node3 /]# hdparm -t /dev/sda2
/dev/sda2:
Timing buffered disk reads: 284 MB in 3.00 seconds = 94.55 MB/sec

[root@node3 /]# hdparm -t /dev/sda2
/dev/sda2:
Timing buffered disk reads: 292 MB in 3.02 seconds = 96.82 MB/sec

讀了將近300M的數據,平均速度大約為95M/s
經過以上的測試數據大體估算該磁碟的性能大約為100M/s

5. Linux如何查看與測試磁碟IO性能

top命令的其他參數代表的含義詳見top命令詳解

sar 命令是分析系統瓶頸的神器,可以用來查看 CPU 、內存、磁碟、網路等性能。

sar 命令查看當前磁碟性能的命令為: