SSD性能測試之「磚」

2021-03-06 SSDFans


作者簡介

 

唐傑


目前在Xilinx從事DC架構,曾任職於Fusion-IO,LSI,希捷等公司。

 

想要和唐大師還有全世界的大牛討論SSD及存儲相關技術?加nanoarch為微信好友,拉你進ssdfans微信群  

 

「磚」的緣起

 

事情的起因是這樣的,這個ssdfans群裡,冬瓜哥和往常一樣在幫助大家回答問題。在回答一個SSD上文件系統mount的參數的問題是,俺不知深淺地插了一句嘴,該打。然後就為了拍瓜哥一個馬屁,就說瓜哥應該寫一個SSD性能測試的指導,結果瓜哥說自己不是專業人士不能寫,俺又不明就裡地說俺可以寫一個,結果,瓜哥說俺寫了,瓜哥就寫一個。

 

正好在杭州到上海的高鐵上,信號一如往常的爛,於是有了這一片」磚」來引瓜哥的玉了。

 

在談這個具體內容之前,俺要強調,俺的磚全是腦中所記,因為不方便上網,而且也是磚,就比較散漫,寫到哪裡算哪裡了。

 


 

工具篇:

 

FIO: 目前最常用的性能測試工具,主要是linux下。這個工具是目前我用過的最能生成IO請求的工具。Fio可以用比較小的代價在短時間能生產IO,這個能力的確沒有其他工具可以比。因此文中預設的測試工具就是它了。

 

Vdbench: SUN遺留下來的工具,因為基於Java,他的可移植性比fio好,同時支持壓縮和dedup的測試,因此也是企業測試的首選。

 

Iometer:Windows平臺為主,因為是gui的,因此腳本化比較難,之前windows比較流行的時候,用的多,現在在數據中心就呵呵了。

 

SQLIOorion都是資料庫廠商的工具,主要測試8K的隨機I/O和1M的順序I/O,是DBA的最愛,作為SSD性能狗必須跪舔。

 

Sysbench因為可以測試MySQL,也是新貴的最愛,要知道霸爺到ali的第一個blog就是sysbench.

 

Workload 篇:

 

I/O size: 4K 是主流,8K是MSSQL和Oracle,16K是Mysql Innodb

Queue Depth:這個預設是32, 因此目前的SSD,特別是SATA的SSD,NCQ是31,因此不能太少。

Numjobs:生成I/O的engine的數量,如果thread=1就是幾個線程,否則就是進程,建議線程。Numjobs可以等於CPU的core就行,不算HT。

 

Numjobs和Queue Depth定義了I/O的workload的壓力,基本上是 fio numjobs×QD = vdbench的thread。

I/O 引擎: 基本上是libaio,這個是衝IOPS的,對於延時為主的測試,建議psync。

Direct I/O: 這個是本地測試標配,但是要注意網絡I/O可能只支持buffer I/O。

 

隨機順序和IO比例方面:

測試建議先做隨機,再做順序,因為順序可能有cache的影響。先做寫,再做讀,因為SSD的特性,寫入量大之後會性能下降。

I/O讀寫比例,資料庫基本是7:3, 9:1, 對於網絡存儲,建議的比例是5:5

 

文件系統篇:

 

Ext2 無視,基本上是ext3和ext4。預設的格式化流行,如果基於md,要考慮I/O的對齊問題。

Mount的時候,不管XFS,EXT3/4都建議noatime,noadirtime和nobarrier。Discard這東西還是免了,真心不知道trim的用處。

其他的,在測試文件系統的時候,要注意在寫入的時候會有鎖的問題,因此建議使用nrfiles來生成多個文件。

 

作業系統篇:

 

對於基於SATA的SSD,對於block層的修改是必須的,必須參考之前LSI nytro的推薦,基本上是:

增大queue的深度

Disable 預讀

Disable 和隨機發生器的關係

還有就是IO affinity, 建議使用的配置是使用生成I/O請求的CPU來響應I/O,降低context 切換的影響。

比較懶的可以用RHEL的tuned-adm來設置。

這裡還有一個就是作業系統的I/O監控:

Iostat –dmx /dev/sda 1 這個是必須的命令

Mpstat –P ALL 1, 看CPU的使用情況,如果都在softirp,說明你I/O生成有問題,使用numactl來控制。如果都在iowait,說明你的I/O設備的確不行。如果都在sys,說明跑的很正常。不可能都在user,因為fio的I/O請求的數據直接就丟掉了,不可能有usr。

高級一點的,可以用perf top看看系統調用的時間,如果都在spinlock上,說明你的IO文件有互斥了。

 

硬體系統篇:

 

BIOS裡面,CPU的C states是必須disable,測性能,省毛電。

HT也是要關的,但是在NVME SSD中,HT貌似不錯,請自行研究。

VT之類,都是必須關的。Dell/HP/IBM都有BIOS推薦的設置。

NUMA,這東西對於性能真心沒好處,還是一點要避免。BIOS能關就關,不能關的話,用numactl來指定吧。

還有就是硬體的中斷,不要用irqbalance,一定要用irq_affinity來做mask。

對於PCIE slot,儘可能讓兩個設備在不同的CPU上,用taskset,或者numactl來進行分離。

 

最後一點,測試只是測試,一定要上應用,這個是對自己和公司負責的行為。

車已經到了嘉興,俺也吐了兩頁,希望可以擠出瓜哥的玉了。找個信號好的地就發了。嘿嘿

不想錯過唐大師的後續精彩文章?長按或掃描下面二維碼關注ssdfans就可以了!

公司招聘:
Memblaze華東區高薪招聘,銷售經理,FAE  上海/杭州
聯想SSD專家招聘,FW,QA,NAND特性工程師,北京/武漢

上海飛斯招聘: 存儲開發工程師,RAID、USB、SATA、AHCI、NVME、FTL、文件系統的開發及調試

ssdfans幫你內推

ssdfans幫你賺推薦費


歡迎轉載,轉載請保留二維碼!

相關焦點

  • 和唐傑說相聲之:SSD性能測試之「玉」
    事情的起因是這樣的,在ssdfans群裡,冬瓜哥和往常一樣在幫助大家回答問題。在回答一個SSD上文件系統mount的參數的問題時,按照唐傑的說法「俺不知深淺地插了一句嘴,該打。然後就為了拍瓜哥一個馬屁,就說瓜哥應該寫一個SSD性能測試的指導,結果瓜哥說自己不是專業人士不能寫,俺又不明就裡地說俺可以寫一個」。
  • powershell寫的SSD測試程序,對阿斯加特AN2、AN3SSD進行測試對比
    今天我們將用powev ssd test對阿斯加特AN2 NVMe SSD 250G和AN3 NVMe SSD 1T進行測試對比,主要目的是檢驗powev ssd test是否好用,其次是簡單的對比下這兩款SSD。
  • SSD性能測試第一神器——FIO
    對於SSD性能測試來說,最好的工具莫過於FIO了。  線程,隊列深度,Offset,同步異步,DirectIO,BIO 使用FIO之前,首先要有一些SSD性能測試的基礎知識。 線程指的是同時有多少個讀或寫任務在並行執行,一般來說,CPU裡面的一個核心同一時間只能運行一個線程。
  • SSD Performance測試簡介
    加nanoarch為微信好友,拉你進ssdfans微信群 。 ‍歡迎給ssdfans投稿,投稿就能加入ssdfans作者群,和冬瓜哥,蛋蛋等大咖切磋武藝,還有稿酬拿.SNIA給Client SSD與Enterprise SSD都制定了Performance test (性能測試)的規範,可以到其網站 www.snia.org 下載。
  • PCIe NVMe SSD常用測試工具介紹
    11自動化測試框架    11注入客戶自定義的任意NVMe命令    11控制外圍熱插拔以及電源模塊進行測試    12NVMe嚴重錯誤及觸發條件設置    12讀/寫延遲統計圖    13豐富的各種性能展現視圖    13測試結果Web統計
  • 1TB浦科特M8Se NVMe SSD性能評測
    M8Se的順序寫入性能相當低,甚至在大部分測試中落後於Intel 600p 1TB。低寫入性能可能是其他公司沒有結合東芝15nm TLC和Marvell 88SS1093控制器的原因。隨機讀取性能 採用MLC NAND的M8Pe並不是一發布就有現在的性能,上面的結果是我們在第六次版本上進行的測試。M8Se目前還沒有更新,但是考慮到浦科特在高性能型號上頻繁更新,我們預計在公司將其退市之前至少有一次更新。隨機寫入性能
  • Realtek之SSD野望
    加nanoarch為微信好友,拉你進ssdfans微信群 。 ‍歡迎給ssdfans投稿,投稿就能加入ssdfans作者群,和冬瓜哥,蛋蛋等大咖切磋武藝,還有稿酬拿。支持1x、1y、1z nm工藝MLC、TLC及3D NAND快閃記憶體;RTS5761最早是在Computex Taipei 2016現身,現場使用一塊256G測試的讀寫性能數據
  • SSD Endurance測試介紹
    加nanoarch為微信好友,拉你進ssdfans微信群 。 ‍歡迎給ssdfans投稿,投稿就能加入ssdfans作者群,和冬瓜哥,蛋蛋等大咖切磋武藝,還有稿酬拿.測試(可選)產品級常溫Rention測試高溫Retention數據比較判斷是否通過 (檢查FFR和Data error是否滿足前面那兩個公式) 步驟1,2已經介紹過,步驟3~7都是關於data rention,這個測試要求在Endurance測試結束以後馬上進行:寫入數據à 斷電à高溫à 上電à數據比較
  • 聊聊SSD測試(1) – Verification & Validation
    加nanoarch為微信好友,拉你進ssdfans微信群 。 ‍歡迎給ssdfans投稿,投稿就能加入ssdfans作者群,和冬瓜哥,蛋蛋等大咖切磋武藝,還有稿酬拿。 我是一名測試攻城獅。SSD從設計,固件到成品出貨,少不了各種測試。
  • 簡易的SSD固件更新測試平臺
    看固態硬碟專業評測,上www.ssdfans.com!查SSD、NAND採購需求和貨源,招聘和求職列表,上www.ssdfans.com!添加參數,使之也可作為普通的串口工具使用。希望這個測試結構能夠為QA小夥伴們減輕負擔,從手動點滑鼠更新firmware的無聊工作中解放出來,把工作重心放在找bug上。看固態硬碟專業評測,上www.ssdfans.com!查SSD、NAND採購需求和貨源,招聘和求職列表,上www.ssdfans.com!
  • ssd降價提性能 混合硬碟如何殺出血路?
    您還可以搜索公眾號「D1net「選擇關注D1net旗下的各領域(包括雲計算,智慧城市,數據中心,大數據,視頻會議,視頻監控,伺服器,存儲,虛擬化,軟體等)的子公眾號。不期而遇的是,希捷宣布它的混合硬碟出貨量超過1000萬塊。然而混合硬碟的代理商、經銷商並未受到利好消息的鼓舞,如何將庫存的混合硬碟賣掉,是它們最頭疼的事情。在過去一年時間裡,混合硬碟的價格下跌速度遠遠沒有ssd那麼快,並且ssd如同打了雞血,入門級和中高端的128gb、256gbssd的性能提升迅猛。此長彼消之間,混合硬碟的日子沒以前那麼好過。
  • 固態硬碟SSD速度測試軟體
    AS SSD Benchmark是非常出名的固態硬碟SSD速度測試軟體,最關鍵的是用它來測試固態硬碟是否已經4K對齊,是否打開了AHCI,可以檢測
  • 聊聊SSD測試 (6) – 測WA
    加nanoarch為微信好友,拉你進ssdfans微信群 。 ‍歡迎給ssdfans投稿,投稿就能加入ssdfans作者群,和冬瓜哥,蛋蛋等大咖切磋武藝,還有稿酬拿。 我是一名測試攻城獅。但是這款又沒有公布」241  Lifetime writefrom host」L  這些在內部測試的時候都不是問題,請FW的兄弟們把這兩項都顯示出來,測試攻城獅就可以計算自家SSD的WA 了。不想錯過SSD攻城獅的後續精彩文章?長按或掃描下面二維碼關注ssdfans就可以了!
  • Intel黑科技VROC(NVMe RAID)性能專業測試
    看固態硬碟專業評測,上www.ssdfans.com!查SSD、NAND採購需求和貨源,招聘和求職列表,上www.ssdfans.com!在某些平臺上,QD = 1的基準測試不會充分加載CPU,以便觀察整個系統的響應能力,因為較低的時鐘速率會對存儲性能產生負面影響。 發生這種情況是因為存儲基準測試只關注存儲,而沒有其他的東西。 真實世界的應用程式將執行計算或以其他方式對訪問的數據執行操作,導致系統以更高的時鐘速率運行。 禁用c狀態讓我們在運行這些更簡單的測試時更接近現實世界的狀態。
  • SSD模擬器之Flashsim
    在進行SSD相關的研究和開發時,比如SSD架構和FTL的優化改進時,直接在SSD上實現設計所花費的高昂成本和大量時間多數情況下是不可接受的,這時如果先把設計在模擬器上實現驗證,不但能夠快速地得到功能、性能、能耗等方面的估測數據
  • PCIe SSD背後的史詩6
    加nanoarch為微信好友,拉你進ssdfans微信群 。 ‍歡迎給ssdfans投稿,投稿就能加入ssdfans作者群,和冬瓜哥,蛋蛋等大咖切磋武藝,還有稿酬拿。怎樣評價SSD性能? 有了各個項目的測試數據和實際應用中的表現,我們就可以試著總結一下規律:究竟應該用何種方式評價一塊SSD的性能? 先從應用本身說起。對於一個大型軟體,其大致可以分為引擎、資料庫、插件、可執行程序4個部分。對於一個遊戲,廠商往往會將各部分打包。
  • PCIe SSD拷貝小電影時的性能損耗
    加nanoarch為微信好友,拉你進ssdfans微信群 。 ‍歡迎給ssdfans投稿,投稿就能加入ssdfans作者群,和冬瓜哥,蛋蛋等大咖切磋武藝,還有稿酬拿。 Gen1或者Gen2,正常的1個Byte數據,經過8bit/10bit轉換在實際物理鏈路上傳輸的時候就變成了10bit,也就是一個Symbol,8bit/10bitbt轉換會帶來20%的性能損耗。
  • 聊聊SSD測試 (8) – PCIe Interoperability Test
    加nanoarch為微信好友,拉你進ssdfans微信群 。 ‍歡迎給ssdfans投稿,投稿就能加入ssdfans作者群,和冬瓜哥,蛋蛋等大咖切磋武藝,還有稿酬拿。寫在最後,臺上一分鐘,臺下十年功,為了在Workshop的Interoperability環節有好的表現,在下山前就應該找來各家的RC做相關的測試。
  • SSD 性能測試
    如何描述 SSD 的性能SSD 的性能指標主要包括:IOPS、帶寬和延遲。IOPS (Input/Output Operations per Second)是指每秒能處理的 I/O 個數。一般 OLTP 的資料庫應用需要關注 IOPS 性能。帶寬是指單位時間內可以成功傳輸的數據量(MB/s)。
  • PCIe SSD背後的史詩7
    它的存在並不是為了性能而是為了Form Factor。它的性能參數也完全是SATA/SAS的水平。但是從此之後,性能級SSD就開始轉向PCI-e總線。 其實在測試中,面對4種PCI-e原生主控,它的表現也相當可以,至今仍然可以算是不錯的硬碟之一。雖然它發布時間並不算太早,但是它不愧為一個不錯的早期PCI-e SSD。