相信你們都知道固態硬盤(SSD)的優點在於速度比傳統的機械硬盤(HDD)要快,因此如今線上服務器裏愈來愈多看到固態硬盤的出現。不過做爲一個對性能數字斤斤計較的開發,我想更精確地弄明白搭載SSD的服務器在IO性能上比搭載HDD的究竟快多少,順序IO狀況下快多少,隨機IO狀況下又能快多少?終於在最近抽空搞了一次性能測試對比。緩存
分別找了兩臺服務器,其磁盤都是Raid陣列,分別是搭載SSD和HDD,更詳細的配置以下:服務器
好了,比賽選手已經就位,再選擇壓測工具fio。指定比(壓)賽(測)規(參)則(數)以下:異步
對比測試正式開始。工具
咱們先進行順序訪問下的測試,由於這個環境下不管是機械硬盤,仍是固態硬盤,性能都將會是最優的。IO大小從512K一直到1M。oop
先來看一下機械硬盤:性能
在固態硬盤下:
測試
這個數據看來,在順序IO狀況下,其實搭載HDD的服務器IO性能並無被搭載ssd的落下太多。這是由於對象
因此,現代在服務器領域裏,SSD只是應用愈來愈多了,但並無可以全面替代HDD。緣由之一是由於機械硬盤的順序IO其實並不慢,再加上Raid的加持,因此還有很大的市場佔比。
比較完了順序IO,咱們再來比較另一個應用場景,隨機IO。blog
還記得開頭的fio壓測參數中咱們把Page Cache給禁用了,再加上測試文件的大小定的是100GB,這個大大超過了Raid卡的緩存大小。因此基於這個前提下的隨機IO,各級緩存基本都失去用武之地了,IO表現速度就徹底看硬盤自身了。內存
在《機械硬盤隨機IO慢的超乎你的想象》中,咱們看來機械硬盤的隨機IO的表現真的是太糟糕了。
再來看搭載SSD的服務器IO表現:
對比來看,機械硬盤的隨機IO的速度可真的不是通常的慢,咱們挑選上述結果中最被業務承認的4K IO size來看。
再看固態硬盤下的4K IO Size下的表現。而同等條件下的SSD可有32M。
在順序IO的狀況下,由於有Raid卡緩存的加持,基於HDD組成的Raid陣列服務器在IO性能上並無太落下風。可是在隨機讀取的場景下,不管帶寬仍是延遲指標,SSD都要比HDD快幾十倍以上。
因此在服務器中應用SSD,更主要解決的是隨機IO的問題。因此若是你的服務器裏存在過多的Page Cache,Raid卡緩存都兜不住的隨機IO請求,那麼請把HDD更換成SSD吧。
開發內功修煉之硬盤篇專輯:
個人公衆號是「開發內功修煉」,在這裏我不是單純介紹技術理論,也不僅介紹實踐經驗。而是把理論與實踐結合起來,用實踐加深對理論的理解、用理論提升你的技術實踐能力。歡迎你來關注個人公衆號,也請分享給你的好友~~~