SSD還分隨機和順序IO嗎

原文 http://blog.sina.com.cn/s/blog_69406f8d0102vcxz.html上周缅刽,有位朋友提出一個問題:“在 HDD 中叉存,順序 8KB 寫和離散(隨機) 8KB 寫的 IOPS 差別大撑蚌,這是因為磁盤機械的原因昙楚。那么在 SSD 里面招盲,順序 8KB 和離散 8KB 寫 IOPS 也還會有差別嗎?”
這是一個好問題算谈。因為硬盤每一次隨機訪問涩禀,都需要消耗磁頭尋道和盤片旋轉(zhuǎn)等待這兩部分時間;而 SSD 使用的是半導(dǎo)體閃存介質(zhì)然眼,隨機訪問要快得多艾船。
我在《 Oracle Exadata X5彈性擴展與SSD性能計算 》一文中,經(jīng)過推算得出“Oracle Exadata X5彈性擴展與SSD性能計算 Exadata 公布的 SQL 閃存寫 IOPS 可以是順序操作高每,所以會超過 IntelP3600 標稱的 8KB 隨機寫 IOPS ”的判斷屿岂。當時也確實有點拍腦袋,印象中看過這方面的測試數(shù)字鲸匿,但卻一時拿不出證據(jù)了爷怀。
最簡單的辦法,就是用實際測試再驗證一遍带欢,這時我已經(jīng)做好推翻自己的準備:)

SSD 還分隨機和順序 IO 嗎运授?

上圖引用了 IDF 關(guān)于 SSD 的演示文稿,“不管順序還是隨機寫入洪囤,都沒有尋址時間徒坡,因為它們都是被順序地寫到 NAND 里面去的×鏊酰”
SSD 還分隨機和順序 IO 嗎喇完?

這里的說明不只代表 Intel SSD ,所有以閃存為介質(zhì)的固態(tài)盤都是如此剥啤,通過 FTL “將新數(shù)據(jù)寫入新的物理地址锦溪,將原來的 LBA 地址標明無效并不可用”不脯,讓我想起了 NetApp WAFL 和 ZFS 文件系統(tǒng)。
以上是理論 基礎(chǔ) 刻诊,下面看看測試環(huán)境和測試結(jié)果防楷。
測試環(huán)境
首先,我可沒有 Exadata 那樣高大上的東西则涯,話說以我的 Oracle 水平也玩不動复局,現(xiàn)在拿給我玩也浪費了。
SSD 還分隨機和順序 IO 嗎粟判?

就拿自己用的 SL500 筆記本吧亿昏,正好系統(tǒng)盤已經(jīng)換成 SSD ——被譽為渣渣的三星 840 EVO (TLC ),湊合著做個驗證档礁。
如上圖角钩,由于 C 盤上安裝了操作系統(tǒng),不能影響正經(jīng)事兒呻澜,所以我在當初預(yù)留的 11GB 空間上創(chuàng)建了一個測試分區(qū)递礼,并且用 Iometer 將其“填滿”后開始測試。
這里說明 2 點:
1. 我測試的不是整盤羹幸,但 SSD 有 FTL 來實現(xiàn)磨損平衡脊髓,因此實際寫入的 LBA 范圍很可能比較大并在物理上不連續(xù),可以像 WAFL/ZFS 文件系統(tǒng)那樣永遠寫到新的位置睹欲。
2. 另外我是在 NTFS 文件系統(tǒng)上做的測試供炼,與直接測試裸盤有些差別,每種文件系統(tǒng) / 卷管理器通常都會有些緩存窘疮、元數(shù)據(jù)之類的,不過對本次測試影響不大冀墨。
SSD 還分隨機和順序 IO 嗎闸衫?

操作系統(tǒng)是 Windows7 64 位, Iometer 軟件版本 1.1.0-win64.x86_64 诽嘉,每次測試運行 2 分30 秒(我的 SSD 已經(jīng)過一段時間的“老化”)蔚出。我們看到 C 盤里的數(shù)據(jù)也不少,如果是機械硬盤這樣測試 Z 盤的話虫腋,只要沒有(對 C 盤操作) I/O 爭用就無所謂骄酗;而 SSD 則不同,整個盤的內(nèi)充滿數(shù)據(jù)的比例悦冀、以及碎片化程度都會影響到性能趋翻,特別是寫入性能。
由于 SSD 的特點盒蟆,不僅寫入閃存頁面速度沒有讀快踏烙,另外已經(jīng)寫入數(shù)據(jù)的頁面(大小 4KB/8KB)需要經(jīng)過塊( 64KB 以上)擦除才能再次寫入师骗,也就是通常所說的垃圾回收( GC )過程。相比之下機械硬盤不存在這些問題讨惩。
測試結(jié)果及分析
SSD 還分隨機和順序 IO 嗎辟癌?

SSD 隨機 / 順序?qū)懭胄阅軐Ρ龋P(guān)閉寫緩存)
為了避免寫緩存的干擾,我首先在關(guān)閉寫緩存的情況下運行了測試荐捻。根據(jù)以上圖表黍少,排除測試誤差情況因素,差距確實比較小处面。 SSD 在隊列深度為 1 時的 500 左右 IOPS 仍侥,也達到了我筆記本5400 轉(zhuǎn)機械硬盤的 10 倍。
結(jié)論初步有了鸳君,但是接下來我又面臨一個問題——之前對 Exadata X5 存儲節(jié)點 SQL flash read/write IOPS 的簡單分析如何解釋农渊?
*“ ExtremeFlash **全閃存節(jié)點為 377,000 **,這里是 SQL IOPS **已經(jīng)考慮到 ASM **冗余帶來的寫懲罰或颊,那么落到每個 SSD **(每節(jié)點 8 **個)上應(yīng)該就是 94,250 **——好像這個數(shù)字明顯超過了IntelP3600 **標稱的 8KB **寫 IOPS 33,000 *砸紊?
*那么 HighCapacity **大容量混合存儲節(jié)點的 192,000 **,落到 4 **塊閃存卡上 96,000 **寫 IOPS *也是類似的情況囱挑? ”
我們?nèi)匀灰?Oracle 給出的最大性能指標是落在 SSD 上的真實 IOPS 為前提 醉顽,如果順序?qū)懖荒鼙入S機寫更快的話,那這個數(shù)字是怎么測出來的平挑?
有 Oracle 的朋友給出了回答: **F160 ****( NVMe SSD ****)的指標和 P3600 ****不完全一樣游添,說用的是 eMLC ****, 8KB ****隨機寫入指標到 42000 ****”通熄,“我們的卡不是標準產(chǎn)品唆涝,比標準的卡性能更好,壽命更長唇辨±群ǎ” **
SSD 還分隨機和順序 IO 嗎?

Oracle 給出的 F160 性能確實比上表中的 IntelP3600 高赏枚,但距離我計算之后期望的數(shù)值還相差比較多亡驰。至于 eMLC 和壽命之說,感覺 Intel 又有點玩了數(shù)字游戲——我曾經(jīng)寫過 P3600 沒有像P3700 那樣標明 High Endurance Technology (HET) 閃存饿幅,但新發(fā)布同樣支持 5 年每天 3 次整盤寫入凡辱, 1.6TB 型號最大寫入數(shù)據(jù)量 10.7PB 的 S3610 (同容量的 P3600 為 8.76PB ),就標明了高耐久度 MLC 栗恩。
我們再看看還有啥提高性能的方法透乾。
SSD 還分隨機和順序 IO 嗎?

參考上圖,不知 Smart Scan 能否 **8KB ****數(shù)據(jù)塊整合成更大的 I/O **续徽?如此則寫入帶寬將會增加蚓曼。不過這違背了我們剛剛設(shè)定的前提。
增加隊列深度對隨機讀改善比較明顯钦扭,也就是發(fā)揮閃存的并發(fā)能力纫版,其實看前面關(guān)閉寫緩存情況下的 隨機 / 順序?qū)憸y試也是如此。
SSD 還分隨機和順序 IO 嗎客情?

上面的文字重新解釋了“ 隨機度 ”對性能的影響其弊,理由是 順序操作減少通道沖突,以及碎片回收的難度 膀斋。右邊柱狀圖中的差距是在什么條件下測得的呢梭伐?
還有過量冗余—— Intel 等廠商早就說過“減少 LBA 的訪問范圍可以提升性能、耐久性和服務(wù)質(zhì)量”仰担。右邊的折線圖最右端為 100% 隨機寫糊识,當 超量配置 ( OP )為 0% 時寫 I/O 很容易觸發(fā)垃圾回收;有了 20% 和 40% **空間冗余 **比例可以帶來顯著的寫 IOPS 提升摔蓝。
SSD 還分隨機和順序 IO 嗎赂苗?

SSD 還分隨機和順序 IO 嗎赶撰?

讓我們再來看看 Intel 當年的 SSD 320 是公布了怎樣的“作弊方法”——在 8GB LBA 范圍內(nèi)測試谍失,并打開寫緩存。其實消費級 SSD 公布的 IOPS 雌芽,有幾家不是這樣測的呢猜谚,甚至于 Fusion-io好像也這么干過败砂。
那么 Exadata X5 是不是也可以預(yù)留閃存容量呢——沒有說測試數(shù)據(jù)集一定要多大吧?可惜我的筆記本 SSD 太搓魏铅,在 11GB 分區(qū)內(nèi)測試也沒快到哪里去昌犹,不過可以打開寫緩存試試看。
SSD 還分隨機和順序 IO 嗎沦零?

SSD 隨機 / 順序?qū)懭胄阅軐Ρ龋ù蜷_寫緩存)
如上圖祭隔, 4 條不同顏色的實線表示 IOPS ,以左邊的坐標軸為單位路操; 4 條對應(yīng)顏色的虛線表示延時(單位毫秒),以右邊的坐標軸位單位千贯。從左到右的 4 個點屯仗,代表每項測試我都運行了 4 遍。我的 Excel 水平不高搔谴,大家湊合看看:)
首先魁袜,我在隊列深度設(shè)為 1 的情況下對比了 8KB 隨機寫和順序?qū)懀捎趯懢彺娴囊蛩兀?2 次測試的 IOPS 波動比較大峰弹,而到了第 3 次以后則趨于穩(wěn)定并出現(xiàn)明顯一些的差距店量。將隊列深度改為32 之后,隨機寫 IOPS 并沒有明顯的改善鞠呈。
至于隊列深度 32 的 8KB 順序?qū)懭谑Γ皇悄脕碜鰝€參考數(shù)字,畢竟我都是在有限的時間內(nèi)運行測試蚁吝。8KB 是 Oracle OLTP 應(yīng)用的典型 IO 尺寸旱爆;對于批量插入和 redo log 這樣的小數(shù)據(jù)塊順序?qū)懖僮鳎也淮_定多線程 / 進程能夠發(fā)揮到什么程度窘茁。由于我在數(shù)據(jù)庫方面并不專業(yè)怀伦,所以這里就不妄下判斷了。
嘗試給出一個結(jié)論: Intel 在資料中提到過隨機度對 SSD 寫入性能的影響(原因前面解釋過了)山林。除了過量冗余能夠提高寫入性能之外房待,根據(jù)測試, **打開寫緩存在一些情況下也可以改善****SSD 8KB ****順序?qū)?IOPS **(長時間測試效果有待驗證)驼抹。
極限測試和 POC ****桑孩、讀 IOPS ****如何
許多消費級 SSD 大膽使用 DRAM 寫緩存來提高 IOPS 性能,我在《 SSD 緩存掉電保護: 3 種方案的利與弊 》一文中提到有的企業(yè)級 SSD 也這么做砂蔽,但要用電容來做保護洼怔; 這樣對性能的效果與控制器 /RAID 卡的寫緩存,延時將數(shù)據(jù)持久化到硬盤 /SSD 的情況類似左驾。
盡管可能會帶來數(shù)據(jù)風險镣隶,但對于極限性能測試來說,快一些有什么不好呢诡右?正如同行朋友所說安岂,有多少 POC 會老老實實地使用 write-through 、 SYNC 這樣的參數(shù)呢帆吻?
SSD 還分隨機和順序 IO 嗎域那?

最后我還順手做了個讀測試,可以看到在并發(fā)足夠(隊列深度 32 )的情況下 8KB 隨機讀 IOPS能夠達到甚至超過 8KB 順序讀猜煮,這時我的筆記本 CPU 占用率已達 80-90% (還有殺毒軟件什么的次员,就算是個小小的生產(chǎn)環(huán)境吧),這個 SSD 可能還有潛力王带。
另一方面淑蔚,如果隊列深度只有 1 ,那么順序讀還是比隨機讀要快不少愕撰,我理解這是預(yù)讀的效果刹衫。
本人的技術(shù)水平有限醋寝,歡迎大家批評指正!文中如有不夠嚴謹?shù)挠^點带迟,權(quán)且當作給大家拓展思路

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末音羞,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子仓犬,更是在濱河造成了極大的恐慌嗅绰,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件婶肩,死亡現(xiàn)場離奇詭異办陷,居然都是意外死亡,警方通過查閱死者的電腦和手機律歼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進店門民镜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人险毁,你說我怎么就攤上這事制圈。” “怎么了畔况?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵鲸鹦,是天一觀的道長。 經(jīng)常有香客問我跷跪,道長馋嗜,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任吵瞻,我火速辦了婚禮葛菇,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘橡羞。我一直安慰自己眯停,他們只是感情好,可當我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布卿泽。 她就那樣靜靜地躺著莺债,像睡著了一般。 火紅的嫁衣襯著肌膚如雪签夭。 梳的紋絲不亂的頭發(fā)上齐邦,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天,我揣著相機與錄音第租,去河邊找鬼侄旬。 笑死,一個胖子當著我的面吹牛煌妈,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼璧诵,長吁一口氣:“原來是場噩夢啊……” “哼汰蜘!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起之宿,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤族操,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后比被,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體色难,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年等缀,在試婚紗的時候發(fā)現(xiàn)自己被綠了枷莉。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡尺迂,死狀恐怖笤妙,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情噪裕,我是刑警寧澤蹲盘,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站膳音,受9級特大地震影響召衔,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜祭陷,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一苍凛、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧颗胡,春花似錦毫深、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至弧呐,卻和暖如春闸迷,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背俘枫。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工腥沽, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人鸠蚪。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓今阳,卻偏偏與公主長得像师溅,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子盾舌,可洞房花燭夜當晚...
    茶點故事閱讀 45,675評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 簡介 SSD(Solid State Drives)墓臭,俗稱固態(tài)硬盤,相對原來主軸旋轉(zhuǎn)妖谴,并無機械部分窿锉,主要由SS...
    mysia閱讀 5,006評論 0 10
  • 上個月仍稀,筆者對國內(nèi)兩大云廠商(阿里云和騰訊云)的云服務(wù)器洼滚、云數(shù)據(jù)庫和云存儲三種產(chǎn)品做了性能評測,算是對兩家的部分計...
    EarlGrey閱讀 1,650評論 2 7
  • 高并發(fā)平臺架構(gòu) 設(shè)計理念 1. 空間換時間 多級緩存琳轿,靜態(tài)化前端頁面緩存(HTTP Header中包含Expire...
    AkaTBS閱讀 3,024評論 0 13
  • 姓名:郭金 學號:17101223407 轉(zhuǎn)載自:https://www.cnblogs.com/LiJianB...
    寶寶啦啦啦閱讀 2,738評論 0 2
  • 幼時一回到家判沟,就看到媽媽窩在沙發(fā)里,手指飛快的發(fā)力崭篡,細如發(fā)絲的鋼簽聽著媽媽的指揮一上一下挪哄,瞬間便是一朵盛開的白蓮。...
    阿呆愛那個誰閱讀 238評論 0 0