HDD和SSD的比較

HDD

在這裏插入圖片描述

  • 當應用程序發出硬盤 IO 請求後,這個請求就會進入硬盤的 IO 隊列。如果前面有其他 IO,那麼這個請求可能需要排隊等待
  • HDD對於隨機訪問和順序訪問速度差距很大
    • 主要因素是尋道時間
    • 使用 HDD 的應用程序通常會進行各種優化,以執行不需要尋址的就地更新,比如只在文件的後面append
      在這裏插入圖片描述

SSD

  • SSD 的特點是,對 SSD 單元的每次擦除,都會降低單元的壽命,因此每一個單元只能承受一定數量的擦除
    在這裏插入圖片描述

  • 一個頁面包括很多單元,是讀寫的最小存儲單位

    • HDD 可以直接對任何字節重寫和覆蓋;但是對 SSD 而言,不能直接進行上述的“覆蓋”操作。SSD 的一個頁面裏面的所有單元,一旦寫入內容後就不能進行重寫,必須和其它相鄰頁面一起,被整體擦除、重置
  • IO 寫入的延遲,具體取決於磁盤的歷史狀態

    • 因爲如果 SSD 已經存儲了許多數據,那麼對頁的寫入,有時需要移動已有的數據,這種情況下寫入延遲就比較大
    • 因此需要避免SSD存儲太滿
  • 擦除是以塊爲單位。擦除速度相對很慢,通常爲幾毫秒

    • 對同步的 IO 請求,發出 IO 的應用程序,可能會因爲塊的擦除而經歷很大的寫入延遲。爲了儘量地減少這樣的場景發生,一塊 SSD 最好保持一定數量的空閒塊,這樣可以保證 SSD 的寫入速度足夠快
  • SSD 內部有垃圾回收(GC)機制,它的目的就是不斷回收不用的塊,進行擦除,從而產生新的空閒塊來備用。這樣可以確保以後的頁寫入能快速分配到一個全新的頁

  • 寫入放大

    • 實際寫入 SSD 的物理數據量,有可能是應用層寫入數據量的多倍
    • 一方面頁級別的寫入需要移動已有的數據來騰空頁面來寫入;另一方面,GC 的操作,也會移動用戶數據來進行塊級別的擦除
    • 寫入放大效用會縮短 SSD 的壽命
  • 損耗平衡

    • 對每一個塊而言,一旦擦除造成的損耗達到最大數量,該塊就會“死亡”,再也不能存儲數據了
    • 爲了確保整塊 SSD 的容量、性能和可靠性,SSD 內部需要時長對整個 SSD 的各塊做平衡,儘量在擦除次數上保持類似
    • 是這種機制也有害處,就是會對前面講的寫入放大推波助瀾

在這裏插入圖片描述

  • 併發IO
    • 利用到了SSD內部的並行性質
    • 對於HDD無用,因爲HDD 只有一個磁頭,所以用多個 I/O 線程,並不能提高舊系統的吞吐量
      -
  • SSD 的隨機訪問與順序訪問具有相同的性能,就地更新反而導致 SSD 性能下降的
    • 因爲包含數據的 SSD 頁面無法直接重寫,因此在更新存儲的數據時,必須先將相應的 SSD 頁面讀入 SSD 緩衝區,然後將數據寫入乾淨的頁面

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章