欧美日本一二三I国产在线观看I黄色午夜网站I99在线看I美女在线观看avI久久噜噜少妇网站

收藏本站在線留言網(wǎng)站地圖

您好,歡迎來到深圳聯(lián)樂實業(yè)有限公司官網(wǎng)
咨詢熱線

400-888-2720

聯(lián)樂實業(yè)

工業(yè)存儲/工業(yè)電腦服務商

21年專注高可靠性國產(chǎn)化工業(yè)存儲產(chǎn)品及解決方案

SSD性能測試的“勞斯萊斯”--FIO

返回列表 來源: 發(fā)布日期: 2021.12.31
對于SSD性能測試來說,最好的工具莫過于FIO了。FIO是Jens開發(fā)的一個開源測試工具,功能非常強大,基本功能:線程、隊列深度、Offset、同步異步、DirectlO、BIO。使用FIO之前,首先要有一些SSD性能測試方面的基礎知識。

FIO

線程指的是同時有多少個讀或寫任務在并行執(zhí)行,一般來說,CPU里面的一個核心同一時間只能運行一個線程。如果只有一個核心,要想運行多線程,只能使用時間切片。每個線程跑一段時間片,所有線程輪流使用這個核心。Linux使用Jiffies 來代表一秒鐘被劃分過了多少個時間片,一般來說Jiffies是1000或100,所以時間片就是毫秒或10毫秒。

一般電腦發(fā)送一個讀寫命令到SSD只需要幾微秒。但是SSD要花幾百微秒甚至幾毫秒才能執(zhí)行完這個命令。如果發(fā)一個讀寫命令,然后線程一直休眠,等待結果回來才喚醒處結果,這叫作同步模式。可以想象,同步模式是很浪費SSD性能的,因為SSD 里面有很多并行單元,比如一般企業(yè)級SSD內(nèi)部有8~16個數(shù)據(jù)通道,每個通道內(nèi)部有4~16個行邏輯單元(LUN,Plane),所以同一時間可以執(zhí)行32~256個讀寫命令。同步模式就味著,只有其中一個并行單元在工作,暴殄天物。

2

為了提高并行性,大部分情況下SSD讀寫采用的是異步模式。就是用幾微秒發(fā)送命令,發(fā)完線程不會傻傻地在那里等,而是繼續(xù)發(fā)后面的命令。如果前面的命令執(zhí)行完了,SSD通知會通過中斷或者輪詢等方式告訴CPU,由CPU來調(diào)用該命令的回調(diào)函數(shù)來處理結果。這樣的好處是,SSD里面幾十上百個并行單元都能分到活干,效率暴增。

不過,在異步模式下,CPU不能一直無限地發(fā)命令到SSD。比如SSD 執(zhí)行讀寫如果發(fā)生了卡頓。那有可能系統(tǒng)會一直不停地發(fā)命令。幾千個,甚至幾萬個,這樣一方面 SSD扛住,另一方面這么多命令會很占內(nèi)存,系統(tǒng)也要掛掉了。這樣,就帶來一個參數(shù)叫作隊列深度。舉個例子,隊列深度64就是說,系統(tǒng)發(fā)的命令都發(fā)到一個大小為64的隊列,如果填滿了就不能再發(fā)。等前面的讀寫命令執(zhí)行完了,隊列里面空出位置來,才能繼續(xù)填命令。

一個 SSD 或者文件有大小,測試讀寫的時候設置 Offset 就可以從某個偏移地址開始測試。比如從 offset=4G 的偏移地址開始。
Linux讀寫的時候,內(nèi)核維護了緩存,數(shù)據(jù)先寫到緩存,然后再后臺寫到SSD。讀的時候他優(yōu)先讀緩存里的數(shù)據(jù)。這樣速度可以加快,但是一旦掉電,緩存里的數(shù)據(jù)就沒了。所以有一種模式叫作DirectiO,跳過緩存,直接讀寫SSD。

2.fw

Linux 讀寫SSD 等塊設備使用的是BIO(Block-IO),這是個數(shù)據(jù)結構,包含了數(shù)據(jù)塊邏輯地址 LBA,數(shù)據(jù)大小和內(nèi)存地址等。一般Linux系統(tǒng)是自帶FIO的,如果沒有或者版本太老,要自己從https://github.com/axboe/fio下載安裝,F(xiàn)IO功能非常強大,可以通過man來查看每一個功能,也有網(wǎng)頁版。

聯(lián)樂實業(yè),工業(yè)存儲/工業(yè)電腦服務商,專注高可靠性國產(chǎn)化工業(yè)存儲產(chǎn)品及解決方案!詳情進入www.v4233.cn或垂詢400-888-2720