順序IO和隨機IO

@TOC

什么是順序IO和隨機IO

在這里插入圖片描述

順序IO是指讀寫操作的訪問地址連續。在順序IO訪問中,HDD所需的磁道搜索時間顯著減少,因為讀/寫磁頭可以以最小的移動訪問下一個塊。數據備份和日志記錄等業務是順序IO業務。
隨機IO是指讀寫操作時間連續,但訪問地址不連續,隨機分布在磁盤的地址空間中。產生隨機IO的業務有OLTP服務,SQL,即時消息服務等。

如何解決隨機IO造成的性能損失?

Mysql 數據最終都會刷到磁盤上去,刷盤分隨機IO和順序IO,兩者性能相差很大,大多情況下我們會改變一下設計使Mysql 的隨機IO變為順序IO來提高性能

給隨機IO添加緩存有更大的收益:

  1. 順序I/O一般只需掃描一次數據、所以、緩存對它用處不大(收益小,不是說沒用)
  2. 順序I/O比隨機I/O快
  3. 隨機I/O通常只要查找特定的行、但I/O的粒度是頁級的、其中大部分是浪費的、而順序I/O所讀取的數據、通常發生在想要的數據塊上的所有行。

問題

什么是IOPS?

IOPS(Input/OutputOperations Per Second)是一個用于計算機存儲設備(如硬盤(HDD)、固態硬盤(SSD)或存儲區域網絡(SAN))性能測試的量測方式,可以視為是每秒的讀寫次數。

機械硬盤和固態硬盤在隨機IO上性能的影響因素?

對于機械硬盤或是其他類似的機電存儲設備,其隨機存取IOPS主要和存儲設備的尋址時間有關,若是固態硬盤及其他固態電子設備,其隨機存取IOPS主要和存儲設備的內部控制器及記億體接口速度有關。這兩種設備的順序訪問IOPS(尤其是訪問大數據區塊)一般與包括存儲設備可以持續的最大帶寬有關。

SSD作為隨機存儲設備,其訪問任意一塊的時間應該是相等的,為什么順序IO還是快于隨機IO?

有多種原因導致了這種情況,一是SSD通常是主控芯片包含若干個通道,每個通道和若干閃存芯片相連,隨機IO并不能像順序IO那樣,由多塊芯片分擔且并行傳輸以獲得更高的性能,二是SSD有擦寫/垃圾回收等機制,隨機IO明顯會提高這些機制的難度和頻率,三是預讀和緩存等機制對順序IO會有更好的效果。 不過現在的SSD在多線程下的隨機IO吞吐量已經很接近順序IO了,但還是有一定的差距。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 原文 http://blog.sina.com.cn/s/blog_69406f8d0102vcxz.html上...
    baboon閱讀 10,792評論 1 3
  • pdf 有很多內容1、SAS;2、SATA;3、NL-SAS;4、SCSI;5、IDE。請對上述五種類型的接口速率...
    Cynic_R閱讀 1,499評論 0 1
  • 一、磁盤 I/O 的概念 I/O 的概念,從字義來理解就是輸入輸出。操作系統從上層到底層,各個層次之間均存在 I/...
    木石文若閱讀 1,826評論 0 1
  • 硬盤物理結構 硬盤內部主要部件為磁盤盤片、傳動手臂、讀寫磁頭和主軸馬達。實際數據都是寫在盤片上,讀寫主要是通過傳動...
    灘主閱讀 3,702評論 0 5
  • 各種APP導航的范例:請戳這里 一、標簽式導航 標簽式導航是蘋果ios可以自動生成一種導航控件,開發起來方便。所以...
    Makiyoko閱讀 10,960評論 0 7