在 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也会对读取速度产生这么大的影响?