存盤體系
計算機存盤體系分為多級,常見的有小到cpu內部的暫存器、cache,大到記憶體、磁盤、磁帶以及各式可插拔的usb設備等都屬于存盤體系的一員,一個常見的直觀的圖如下:

從最頂端的cpu開始一直到最下層的硬碟存盤層,可以看到速度逐漸變慢,容量逐漸增大,圖示的容量是以我自己的macbookpro16 13.3 8/256g配置為示例說明的
- CPU/L1,多核時代,每個核心有自己的暫存器與L1,通常指代CPU中的暫存器與L1快取,通常暫存器的速度在一個時鐘周期,L1的速度在1-3個時鐘周期(1時鐘周期~1/3 ns)
- L2,CPU內部的L2快取,多核時代基本也是每個核心獨享自己的L2快取,容量較L1大,速度較L1慢
- L3,通常說的三緩就是它了,一般都是M級別的大小,我自己的電腦上它是4M左右,臺式機/服務器級別的CPU這個大小通常在十幾、幾十M左右,速度較L2進一步降低
- Main Memory(主存),常見的記憶體就是它了,主流的記憶體容量都是以GB為單位了
- SSD/HDD,固態硬碟與傳統的機械硬碟,容量以TB為單位了
可以看到,我們常見的記憶體速度在CPU/L1面前被爆成渣渣了,即便如此,記憶體的速度還是相當快的,計算機的多級存盤體系就是一步一步來彌補下一層速度與上一層不匹配的鴻溝,早期可能一個L1就夠了,隨著半導體技術的發展與進步,L2/L3慢慢出現,后續會不會繼續出現L4級快取或者隨著記憶體技術的革新,干掉L3級快取等情況也未可知
常見的還有一個網路延時,網路延時對于內網來講通常在0.1~10ms之間波動,具體可能還跟網路中的設備、路由等關系較大,訪問外網(公網)的速度基本都在十幾、幾百ms甚至秒級別的不一而足,
這個網路延時算是波動比較大的一種
介紹這些是為了讓開發人員對于計算機中常見的設備、組件的速度有一個直觀的認知,我們的應用通常以行程的方式作業在記憶體中,以服務的方式對外暴露網路介面,同時自己還兼具作為客戶端請求外部的資料庫服務、快取服務等其他組件,然后整個系統里面多個子系統構成一張網狀的拓撲結構形成一套完整的系統
硬碟
早期的硬碟以HDD為主,近些年SSD逐漸成為主流,對于企業服務來講,磁盤需要關注幾個點
- 容量,最常見的指標,硬碟容量大小直接決定能存放多少資料
- IOPS(Input/Output Operations Per Second) 每秒的讀寫操作次數,IOPS又可以進一步分為隨機讀寫的IOPS和順序讀寫的IOPS
以下為常見的HDD磁盤IOPS串列,資料來源Wikipedia
| 設備 | 轉速 | IOPS. |
|---|---|---|
| 7,200 RPM SATA硬碟驅動器 | 7200RPM/S | 75~100 IOPS |
| 10,000 RPM SATA硬碟驅動器 | 10000RPM/S | 125~150 IOPS |
| 10,000 RPM SAS硬碟驅動器 | 10000RPM/S | ~140 IOPS |
| 15,000 RPM SAS硬碟驅動器 | 15000RPM/S | ~175-210 IOPS |
個人用戶使用的機械磁盤轉速基本都在5400RPM/S(主流筆記本電腦)、7200RPM/S(主流臺式機)
可以看到,HDD的IOPS基本是跟轉速正相關的,實際上轉速直接決定旋轉延遲,感興趣的可以自行搜索機械硬碟讀取資料的原理
以下為常見的SSD IOPS串列,基本都是企業級的,資料來源Wikipedia
| 設備 | 形式 | IOPS. |
|---|---|---|
| Intel X25-M G2(MLC) | SSD | ~8,600 IOPS |
| Intel X25-E (SLC) | SSD | ~5,000 IOPS |
| G.Skill Phoenix Pro | SSD | ~20,000 IOPS |
| OCZ Vertex 3 | SSD | 最高可到60,000 IOPS |
| Corsair Force Series GT | SSD | 最高可到85,000 IOPS |
SSD與HDD底層尋址資料的方式區別相當大,可以看到IOPS,SSD相較于HDD基本是碾壓式的降維打擊,HDD相較于SSD的優勢目前基本只剩下容量與資料長久保存的穩定性
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/286060.html
標籤:MySQL
上一篇:MySQL是如何實作事務隔離?
