Sysbench OLTP 應用程序基準測試在運行 InnoDB 存儲引擎的 MySQL 數據庫之上運行。 存儲引擎的工作是管理從磁盤數據庫到應用程序從存儲引擎讀取和寫入數據的接口。 存儲引擎反過來管理 IO 線程和日誌,並在內存中保留緩存以最大限度地減少磁盤訪問。 下表給出了發動機的簡單概覽。
由於 InnoDB 引擎保留了一個稱為緩衝池的內存緩存,因此性能將直接受到工作集大小與緩衝池大小的比率的影響。 換句話說,如果緩衝池足夠大以容納工作集或工作集足夠小以適合緩衝池,則大多數操作永遠不會受 IO 限制。 但是,如果數據庫太大而無法放入內存,那麼 IO 性能將決定事務響應時間和吞吐量。 我們正在表徵驅動器在這種情況下的性能,其中數據庫不適合內存,這會導致來自 InnoDB 存儲引擎的 IO 流量增加。
多個線程(數量取決於高性能應用程序的數據庫配置,從 32 到 128 不等)以隨機方式從塊大小為 16 KB 的後備存儲中讀取數據。 這些讀取與從後備存儲請求數據的數據庫查詢有關。 在處理讀取時,它們會自動緩存在緩衝池中。 當緩衝池填滿時,InnoDB 使用 LRU(最近最少使用)策略驅逐舊頁面以為新數據騰出空間。
數據庫寫入首先定向到事務日誌和緩衝池。 事務日誌是一個順序寫入的環形緩衝區,它會針對每個寫入事務進行更新。 根據 MySQL 配置,此更新可能導致立即寫入磁盤,或者它可以作為緩衝區暫時保留在 RAM 中,最終由文件系統刷新到磁盤。 此日誌緩衝區的大小各不相同,但通常約為 256MB。 ACID 合規性的推薦設置要求日誌寫入在每次數據庫提交時都寫入磁盤。 這些寫入的長度為 4K。
日誌僅在寫入先前數據和新數據之間的增量的位置進行“生理”寫入。 對於原始數據,InnoDB 寫入 RAM 中的緩衝池,它也必須異步排出。 將數據寫回文件系統的過程是可配置的,並且發生在後台。 寫入也是16K。 寫入實際上是雙寫,其中引擎首先將數據寫入稱為雙寫緩衝區的中間位置。 然後引擎將該數據複製到其在文件系統中的最終位置。 這對於避免由於斷電或其他災難性事件導致 16KB 數據庫頁面部分寫入磁盤的“頁面撕裂”問題是必要的。
Sysbench 基準測試的起源
在與 美光科技公司 關於他們如何模擬真實世界的 MySQL 應用程序環境以進行 SSD 測試和測量。 在發現綜合存儲基準很少提供驅動器在特定應用程序工作負載下的行為方式的完整視圖後,他們圍繞 Sysbench 開發了一種測試方法。 Sysbench 測試允許 Micron 模擬最接近標準 MySQL 數據庫工作負載的環境,這些工作負載在 Facebook、Craigslist 和 Booking.com 等應用程序中很普遍
我們與 Moussa Ba 密切合作,他幫助共同撰寫了這篇文章。 Moussa 是美光 PCIe 開發團隊的一名軟件工程師,他的工作包括為高性能 IO 設備優化應用程序和系統軟件。
Sysbench OLTP 基準測試
Sysbench 是一個系統性能基準測試,包括在線事務處理 (OLTP) 測試配置文件。 OLTP 測試不是 OLTP 測試的近似值,而是真正的數據庫支持的基準測試,它在 CentOS 環境中對 MySQL 實例進行事務查詢。
設置基準的第一步是創建數據庫本身,這是通過指定數據庫中的表數以及每個表的行數來完成的。 在我們的測試中,我們定義了 100 個表,每個表有 10 萬行,這導致數據庫有 1 億個條目。 這個數據庫是 260GB。
Sysbench 有兩種操作模式:讀取和寫入數據庫的默認模式和只讀模式。 默認的 R/W 模式將執行以下查詢類型:5 個 SELECT 查詢、2 個 UPDATE 查詢、1 個 DELETE 查詢和 1 個 INSERT。 查看 IO 計數,觀察到的讀/寫比率約為 75% 的讀取和 25% 的寫入。
Sysbench 測試環境
存儲解決方案已通過 Sysbench OLTP 基準測試 StorageReview 企業測試實驗室 利用獨立服務器。 我們目前使用戴爾的現成渠道 PowerEdge R730s 來展示真實的性能和可靠的性價比,僅更改存儲適配器或網絡接口即可將我們的 R730 連接到不同的存儲產品。 PowerEdge R730 已證明自己可以提供與第三方設備的出色兼容性,使其成為這種多樣化測試環境的絕佳首選平台。 R730 還利用了英特爾強大的 Haswell 級架構,它為我們提供了計算能力來適當地強調各種存儲產品並最大限度地發揮其性能潛力。
第一代 Sysbench 基準環境
聯想ThinkServer RD630 – SATA/SAS/PCIe 測試平台
- 2594-ABU 暢銷型號
- 雙 Intel E5-2650 CPU(2.0GHz,8 核,20MB 緩存)
- 128GB 內存(8GB x 16 DDR3,每個 CPU 64GB)
- 100GB 美光 RealSSD P400e 固態硬盤 (通過 LSI 9207-8i)引導驅動器
- 960GB Micron M500(通過 9207-8i)預建數據庫存儲
- 中央操作系統 6.3 64 位
- Percona XtraDB 5.5.30-rel30.1
- 數據庫表:100
- 數據庫大小:10,000,000
- 數據庫線程:32
- 內存緩衝區:24GB
二代Sysbench基準測試環境
Dell PowerEdge R730 – SATA/SAS/PCIe 測試平台
- 雙 Intel E5-2690 v3 CPU(2.6GHz,12 核,30MB 緩存)
- 256GB 內存(16GB x 16 DDR4,每個 CPU 128GB)
- 100GB 啟動 SSD,480GB 數據庫存儲 SSD
- 2 個 Mellanox ConnectX-3 InfiniBand 適配器
- 2件¯x Emulex 16GB 雙端口 FC HBA
- 2件¯x Emulex 10GbE 雙端口網卡
- 中央操作系統 6.6 64 位
- Percona XtraDB 5.5.30-rel30.1
- 數據庫表:100
- 數據庫大小:10,000,000
- 數據庫線程:32
- 內存緩衝區:24GB
Dell PowerEdge R730 虛擬化 Sysbench 4 節點集群
- 集群中 5 個 2690GHz 的 Intel E3-249 v2.6 CPU(每個節點兩個,12GHz,30 核,XNUMXMB 緩存)
- 1TB RAM(每個節點 256GB,16GB x 16 DDR4,每個 CPU 128GB)
- SD 卡引導 (Lexar 16GB)
- 4 個 Mellanox ConnectX-3 InfiniBand 適配器(用於 vMotion 和 VM 網絡的 vSwitch)
- 4件¯x Emulex 16GB 雙端口 FC HBA
- 4件¯x Emulex 10GbE 雙端口網卡
- VMware ESXi vSphere 6.0 / Enterprise Plus 8-CPU
該平台的主要目標是突出企業存儲在實際企業環境和工作負載中的表現,而不是依賴合成或偽合成工作負載。 合成工作負載生成器非常擅長顯示存儲設備在連續合成 I/O 模式下的性能如何,但它們沒有考慮任何其他說明設備在生產環境中實際工作方式的外部變量。 合成工作負載生成器的好處是一次又一次地顯示乾淨的 I/O 模式,但它們永遠不會復制真正的生產環境。 在存儲產品之上引入應用程序性能開始顯示存儲與其驅動程序、本地操作系統、被測試的應用程序、網絡堆棧、網絡交換和外部服務器的交互效果如何。 這些是合成工作負載生成器根本無法考慮的變量,而且就執行此特定基準所需的設備而言,它們的資源和基礎設施密集度也高一個數量級。
整體 Sysbench 性能結果
我們使用滿足測試環境最低要求的 Sysbench OLTP 基準測試各種存儲解決方案。 要獲得測試資格,存儲設備的可用容量必須超過 260GB,並且適合在壓力大的企業條件下運行。 SAS、SATA 和 PCIe SSD 等本地連接的存儲設備在具有一個 Sysbench 實例的裸機服務器上進行測試。 較新的 SAN 和超融合平台同時運行 4、8、12 或 16 個虛擬機,以顯示多個工作負載同時在每個虛擬機上運行的情況。 這種測試方法有助於揭開較新的超融合系統與傳統 SAN 存儲陣列之間性能比較的神秘面紗。
超融合/SAN 虛擬化 Sysbench 性能結果(16 個虛擬機聚合)
| 設備 | 32 線程聚合 TPS | 平均響應時間(毫秒) | 第 99 個百分位延遲(毫秒) |
|---|---|---|---|
| X-IO 伊勢 860 (4) 戴爾 R730,X-IO ISE 860 全閃存 (2) 10TB 卷 |
6625 | 80 | 418 |
超融合/SAN 虛擬化 Sysbench 性能結果(12 個虛擬機聚合)
| 設備 | 32 線程聚合 TPS | 平均響應時間(毫秒) | 第 99 個百分位延遲(毫秒) |
|---|---|---|---|
| X-IO 伊勢 860 (4) 戴爾 R730,X-IO ISE 860 全閃存 (2) 10TB 卷 |
7160 | 54 | 177 |
超融合/SAN 虛擬化 Sysbench 性能結果(8 個虛擬機聚合)
| 設備 | 32 線程聚合 TPS | 平均響應時間(毫秒) | 第 99 個百分位延遲(毫秒) |
|---|---|---|---|
| X-IO 伊勢 860 (4) 戴爾 R730,X-IO ISE 860 全閃存 (2) 10TB 卷 |
6568 | 39 | 83 |
| VMware VSAN (ESXi 6.0) (4) 戴爾 R730xd,80 個 1.2TB HDD,16 個 800GB SSD |
4259 | 60 | 131 |
超融合/SAN 虛擬化 Sysbench 性能結果(4 VM 聚合)
| 設備 | 32 線程聚合 TPS | 平均響應時間(毫秒) | 第 99 個百分位延遲(毫秒) | 峰值延遲(毫秒) |
|---|---|---|---|---|
| DotHill Ultra48 混合動力車 (4) 戴爾 R730,DotHill Ultra48 混合 (2) 14 個磁盤 RAID1 池、40 個 1.8TB HDD、8 個 400GB SSD |
4645 | 28 | 51 | 676 |
| X-IO 伊勢 860 (4) 戴爾 R730,X-IO ISE 860 全閃存 (2) 10TB 卷 |
4424 | 29 | 57 | 983 |
| VMware VSAN (ESXi 6.0) (4) 戴爾 R730xd,80 個 1.2TB HDD,16 個 800GB SSD |
2830 | 45 | 94 | 480 |
| 努坦尼克斯 NX-8150 (ESXi 6.0) (4) NX-8150、80 個 1TB HDD、16 個 800GB SSD RAID0 x 4 虛擬磁盤數據庫卷 |
2390 | 54 | 173 | 4784 |
| 努坦尼克斯 NX-8150 (ESXi 6.0) (4) NX-8150、80 個 1TB HDD、16 個 800GB SSD 默認數據庫部署 |
1422 | 90 | 216 | 5508 |
PCIe 應用程序加速器/多 SSD/HDD RAID Sysbench 性能結果
| 設備 | 32 線程平均 TPS | 平均響應時間 | 第 99 個百分位延遲 |
|---|---|---|---|
| 華為ES3000 2.4TB MLC PCIe 固態硬盤 x 1 |
2734.69 | 11.7 | 19.84 |
| 華為ES3000 1.2TB MLC PCIe 固態硬盤 x 1 |
2615.12 | 12.23 | 21.80 |
| 融合 ioDrive2 雙核 2.4TB MLC PCIe 固態硬盤 x 1 |
2521.06 | 12.69 | 23.92 |
| 美光 P320h 700GB SLC PCIe 固態硬盤 x 1 |
2443.56 | 13.09 | 22.45 |
| 美光 P420m 1.4TB MLC PCIe 固態硬盤 x 1 |
2361.29 | 13.55 | 25.84 |
| 融合 ioDrive2 1.2TB MLC PCIe 固態硬盤 x 1 |
2354.06 | 13.59 | 29.35 |
| Virident FlashMAX II 2.2TB MLC PCIe 固態硬盤 x 1 |
2278.11 | 14.04 | 26.04 |
| 大規模集成電路 Nytro WarpDrive 800GB MLC PCIe 固態硬盤 x 1 |
1977.67 | 16.18 | 39.94 |
| 大規模集成電路 Nytro WarpDrive 400GB MLC PCIe 固態硬盤 x 1 |
1903.14 | 16.81 | 39.30 |
單個 SAS / SATA SSD 結果
| 設備 | 32 線程平均 TPS | 平均響應時間 | 第 99 個百分位延遲 |
|---|---|---|---|
| 東芝 HK3R2 960GB MLC SATA x 1 |
1673.23 | 19.12 | 49.65 |
| 閃迪 CloudSpeed Eco 960GB cMLC SATA x 1 |
1556.99 | 20.55 | 49.05 |
| 英特爾 S3700 800GB eMLC SATA x 1 |
1488.71 | 21.49 | 40 |
| 東芝 PX02SM 400GB eMLC SAS (6Gb/秒) x 1 |
1487.03 | 21.52 | 62.02 |
| 智能擎天柱 400GB eMLC SAS x 1 |
1477.1 | 21.66 | 52.69 |
| OCZ 塔羅斯 2 C 480GB MLC SAS x 1 |
1438.7 | 22.24 | 47.32 |
| OCZ 無畏 3600 400GB eMLC SAS x 1 |
1335.3 | 23.96 | 48.42 |
| OCZ 塔羅斯 2 R 400GB eMLC SAS x 1 |
1421.15 | 22.51 | 45.06 |
| 閃迪至尊 480GB MLC SATA x 1 |
1303.48 | 24.55 | 53.56 |
| 實達 s842 800GB eMLC SAS x 1 |
1293.56 | 24.74 | 67.20 |
| 英特爾 S3500 512GB eMLC SATA x 1 |
1,287.65 | 24.85 | 64.15 |
| 英特爾 S3500 480GB eMLC SATA x 1 |
1241.59 | 25.77 | 54.27 |
| 希捷 600 專業版 400GB eMLC SATA x 1 |
1198.2 | 26.7 | 62.69 |
| 日立 SSD400S.B 400GB 單片機 SAS x 1 |
1191.47 | 26.85 | 47.87 |
| OCZ 向量 512GB MLC SATA x 1 |
1130.03 | 28.32 | 62.67 |
| 閃迪至尊極速 II 480GB MLC SATA x 1 |
981.34 | 32.61 | 102.58 |
| 日立SSD400M eMLC SAS x 1 |
878.9 | 36.41 | 68.03 |
| 東芝eSSD 單片機 SAS x 1 |
758.41 | 42.19 | 140.59 |
| 美光 M500 480GB MLC SATA x 1 |
668.6 | 47.86 | 461.80 |




Amazon