為什麼磁碟1次隨機讀需10ms

2021-05-26 02:40:19 字數 502 閱讀 9340

首先我們需要了解以下磁碟特性

1)以7200轉/min的磁碟為例,8.33ms內選擇一周

2)  磁軌間跳轉需要1ms的啟動時間,每移動4000個磁軌增加1ms

3)磁碟以65536個磁軌計算

首先算尋道時間,尋道距離按照此前的證明為1/3個磁軌數,

則尋道時間 = 1 + (65536/3)/4000 = 6.46ms

再算旋轉延遲,這個時間是由於到了磁軌上,但需要找到準確的扇區,最好情況下,尋道後直接找到,最壞的情況下,尋道後轉一圈找到,因此選擇延遲大約為 8,33/2 = 4.17ms

假定這次隨機讀的量很小,傳輸時間忽略不計。

那麼磁碟1次隨機讀的時間 = 6.46 + 4.17 = 10.63ms

磁碟隨機讀的代價是非常巨大的,10ms的時間可以執行數百萬條指令,通常乙個指令的耗時按ns計算(l1 cache的一次訪問),1秒能執行百萬次指令。

怎麼克服磁碟隨機讀的問題呢?除了在業務上想辦法,還有哪些技術上的辦法,待續。    

1 為什麼選擇RTX

rtx realtime executive 是arm公司針對arm7,arm9,cortex m核心推出的一款嵌入式實時作業系統。該系統占用記憶體很小,切換速度很快,特別適合一些記憶體小的晶元,像只有32kb的flash,8kb的ram的cortex m0都可以使用 開4,5個任務都ok的,不像u...

1 為什麼選擇RTX

rtx realtime executive 是arm公司針對arm7,arm9,cortex m核心推出的一款嵌入式實時作業系統。該系統占用記憶體很小,切換速度很快,特別適合一些記憶體小的晶元,像只有32kb的flash,8kb的ram的cortex m0都可以使用 開4,5個任務都ok的,不像u...

1 為什麼要有指標?

0 史前 早期的cpu 也許並沒有真正的實現 並不如今天的強大,記憶體讀寫的指令可能只有 從 常數 0x1234位址處讀入1位元組到暫存器a 或者 把暫存器b的值寫入 常數 位址0x5678這個地方 那個時候沒有變數這一說,所有的記憶體讀寫都得指定好常數,也就是得把具體的數字 也稱為字面量,lite...