为什么同一个 SSD 的读取速度差别很大?

为什么同一个 SSD 的读取速度差别很大?

在 Debian 的延伸中,我对 500GB Samsung SSD 840 在所有不同分区的读取速度进行了一些快速测试,我无法理解结果。到目前为止,我的理解是磁盘无法了解分区方案,因此它应该在整个存储区域具有相对一致的性能。磁盘已在过去 3-4 年内将数据写入所有分区。

root@debian9:~# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 465.8G  0 disk 
├─sda1   8:1    0  19.4G  0 part 
├─sda2   8:2    0   100M  0 part 
├─sda3   8:3    0 136.9G  0 part 
├─sda5   8:5    0  68.4G  0 part 
├─sda6   8:6    0  97.7G  0 part 
├─sda7   8:7    0  45.7G  0 part /
└─sda8   8:8    0  97.7G  0 part 

我还删除了分区 (/dev/sda8) 中的数据并执行了 blkdiscard,此分区的读写速度从 100MB/秒提高到了 500MB/秒。我没有注意到其他分区的性能有任何改进。

测试是使用 hdparm 进行的,并且磁盘同时没有任何其他 I/O 传输。

root@debian9:~# for i in /dev/sda*
> do
> hdparm -t $i
> done
/dev/sda:
 Timing buffered disk reads: 1482 MB in  3.00 seconds = 493.47 MB/sec
/dev/sda1:
 Timing buffered disk reads: 1478 MB in  3.00 seconds = 492.19 MB/sec
/dev/sda2:
 Timing buffered disk reads: 100 MB in  0.61 seconds = 164.61 MB/sec
/dev/sda3:
 Timing buffered disk reads: 410 MB in  3.01 seconds = 136.29 MB/sec
/dev/sda4: No such device or address
/dev/sda5:
 Timing buffered disk reads: 272 MB in  3.06 seconds =  88.99 MB/sec
/dev/sda6:
 Timing buffered disk reads: 336 MB in  3.00 seconds = 111.83 MB/sec
/dev/sda7:
 Timing buffered disk reads: 1456 MB in  3.00 seconds = 484.78 MB/sec
/dev/sda8:
 Timing buffered disk reads: 1514 MB in  3.00 seconds = 504.55 MB/sec

我对这种速度变化的猜测是磁盘具有独立的区域,这些区域不会互相影响,或者其他什么?

另一方面,为什么blkdiscard也会对读取速度产生这么大的影响?

相关内容