解釋 SQLIO 測試結果
我一直在預生產集群的專用 DB SAN 上執行一系列負載測試(戴爾 R710 通過 2 個千兆乙太網連接連接到專用 RAID10 SAN),我不確定我是否正確解釋了數據。
作為參考,這裡是原始數據。
測試 1
sqlio v1.5.SG using system counter for latency timings, 2727587 counts per second parameter file used: paramD100.txt file d:\tmp\testfile.dat with 2 threads (0-1) using mask 0x0 (0) 2 threads reading for 120 secs from file d:\tmp\testfile.dat using 64KB random IOs enabling multiple I/Os per thread with 2 outstanding buffering set to use hardware disk cache (but not file cache) using specified size: 20480 MB for file: d:\tmp\testfile.dat initialization done CUMULATIVE DATA: throughput metrics: IOs/sec: 372.12 MBs/sec: 23.25 latency metrics: Min_Latency(ms): 1 Avg_Latency(ms): 10 Max_Latency(ms): 159
測試 2
sqlio v1.5.SG using system counter for latency timings, 2727587 counts per second parameter file used: paramD100.txt file d:\tmp\testfile.dat with 2 threads (0-1) using mask 0x0 (0) 2 threads reading for 120 secs from file d:\tmp\testfile.dat using 64KB random IOs enabling multiple I/Os per thread with 2 outstanding buffering set to use hardware disk cache (but not file cache) using specified size: 20480 MB for file: d:\tmp\testfile.dat initialization done CUMULATIVE DATA: throughput metrics: IOs/sec: 358.26 MBs/sec: 22.39 latency metrics: Min_Latency(ms): 1 Avg_Latency(ms): 10 Max_Latency(ms): 169
為了減少測試結果之間的差異,這些測試連續兩天在上午 11:30 執行。
鑑於這種負載模式,我是否應該期望得到盡可能低的 MBPS 吞吐量,或者我是否正確解釋了這一點並認為網路或 SAN(或全部)存在問題?
謝謝。
更新#1
具體來說,設置如下。
生產數據庫集群
戴爾 R710,帶有 2 個 Broadcom 5709(支持 iSCSI 和 TOE 解除安裝,使用戴爾的多路徑 IO 軟體)。是的,我看過“Broadcom - die mutha”的文章:S
轉變
2 Juniper EX4200-48T 充當單個虛擬交換機
每個集群上每個 Broadcom NIC 的一個連接連接到一個交換機,並且每個交換機到 SAN 有 2 個千兆連接。
SAN
Dell EqualLogic PS6000E iSCSI SAN,配備 16 個(14 + 2 個熱備件)2tb 7200rpm 驅動器
據我所知,以及我認為這應該如何工作,理論上我們應該獲得 200mbps,正如你所看到的,我們不是。
更新 2
為了提供更多背景資訊,這裡有一張圖表,顯示了 4 次單獨執行的平均 mbps。
作為參考,Y 軸是 MBPS,X 軸是 IO 類型(隨機或順序)、待處理 IO 和操作(讀取與寫入)。
圖片已禁用,所以這裡有一個連結 -顯示 4 次 SQLIO 執行的平均結果的圖表
這裡有兩件事與我有關-
- 首先,隨機讀取吞吐量低於我的預期
- 其次,隨機寫入 IO 的穩定期為 110mbps,而這表明陣列的能力應該不止於此。
這是這種設置的大致預期模式嗎?還有其他看起來不合適或錯誤的地方嗎?
理論上我們應該得到 200mbps
在你的夢裡。當不進行隨機 IO 時,msot 時間花在從一個扇區跳到另一個扇區。但是隨機 io 和少數慢速最終使用者磁碟聽起來是對的 - 歡迎來到一個世界,您可以為一對磁碟獲得大約 300 IOPS,而 SSD 可以為您提供 60.000。現在也許你明白 SSD kiklkl 是用於隨機 IO 的 SAN,而最終使用者喜歡 osm uch 的 MB/S 數字與數據庫儲存後端無關。
您還破壞的是:
每個執行緒啟用多個 I/O,有 2 個未完成
好的,鑑於 SATA NCQ(本機命令隊列)智能地重新排序磁碟中多達 32 個掛起的請求,同時僅發送 2 個是次優的。您會得到 2x2 = 4 的出色表現,但每張光碟可以處理 32 個。
Taht 說,最後你需要 (a) 更快的磁碟 (b) 更多的磁碟以獲得更高的 IOPS。或者像樣的二級記憶體(Adaptec RAID 控制器可以使用 SSD 作為讀寫記憶體)。