机械硬盘(Hard Disk Drive、HDD)和固态硬盘(Solid State Drive、SSD)是两种最常见的硬盘,作为计算机的外部存储,CPU 想要访问它们存储的数据需要很长时间,如下表所示,在 SSD 中随机访问 4KB 数据所需要的时间是访问主存的 1,500 倍,机械磁盘的寻道时间是访问主存的 100,000 倍:WorkLatencyL1 cache reference0.5 ns
Branch mispredict5 ns
L2 cache reference7 ns
Mutex lock/unlock25 ns
Main memory reference100 ns
Compress 1K bytes with Zippy3,000 ns
Send 1K bytes over 1 Gbps network10,000 ns
Read 4K randomly from SSD*150,000 ns
Read 1 MB sequentially from memory250,000 ns
Round trip within same datacenter500,000 ns
Read 1 MB sequentially from SSD*1,000,000 ns
Disk seek10,000,000 ns
Read 1 MB sequentially from disk20,000,000 ns
Send packet CA->Netherlands->CA150,000,000 ns
表 1 - 2012 年延迟数字对比[^1]
虽然磁盘的寻道时间只需要 10ms,但是在 CPU 看来已经是非常长的时间了,当我们将上述的时间等比例放大后