大きなファイルの場合、SSD の速度が遅くなるのは普通ですか?

大きなファイルの場合、SSD の速度が遅くなるのは普通ですか?

プライマリ SSD への大きなファイルの書き込みが遅いようです。原因を突き止めようとしています。メインボードは ASUS Maximus VIII Hero で、2 つの SSD が接続されています。

  1. Samsung SSD 840 EVO 120GB --> sda
  2. Samsung SSD 840 EVO 500 GB --> sdb

fdisk -lの出力は次の通りです

Disk /dev/sda: 111.8 GiB, 120034123776 bytes, 234441648 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: A3DB9022-5AE0-4BF4-BCA0-E0DAF7BB2106

Device         Start       End   Sectors  Size Type
/dev/sda1       2048   1050623   1048576  512M EFI System
/dev/sda2    1050624 167569407 166518784 79.4G Linux filesystem
/dev/sda3  167569408 234440703  66871296 31.9G Linux swap

Disk /dev/sdb: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

つまり、120GB がシステム ディスクで、500GB がセカンダリ ディスクです。dd を使用して SSD に書き込むと、次の結果が得られます。

sda:

~$ dd if=/dev/zero of=/tmp/dd_performance bs=1G count=1 oflag=direct
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 2.1183 s, 507 MB/s

~$ dd if=/dev/zero of=/tmp/dd_performance bs=1G count=10 oflag=direct
10737418240 bytes (11 GB, 10 GiB) copied, 296.29 s, 36.2 MB/s

sdb:

~$ dd if=/dev/zero of=/mnt/temp_data/dd_performance bs=1G count=1 oflag=direct
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 2.13052 s, 504 MB/s

~$ dd if=/dev/zero of=/mnt/temp_data/dd_performance bs=1G count=10 oflag=direct
10737418240 bytes (11 GB, 10 GiB) copied, 21.1424 s, 508 MB/s

したがって、1GB のファイルの場合、非常に似た結果が得られます。ただし、10GB のファイルを sda に書き込むと、非常に遅くなります。

私は見つけた類似の質問しかし、oflag=direct はすべてのキャッシュをスキップして直接書き込むべきだと考えました。実行中、25GB の空きメモリがありました。

私が思いついた唯一の説明は、sda にははるかに多くのファイル (システム ディスク) があり、10 GB のファイルを SSD に収めるには sdb よりも多くの作業が必要になる可能性があるということです。この動作は正常ですか? 実行できるより良いテストはありますか?

答え1

Daniel B のコメントのおかげで、この動作が正常であると確信できました。

解決

2 つのディスクの TurboWrite は大きく異なるため、大きなファイルを書き込むときに速度低下が予想されます。小さいディスクの場合、速度低下はより早く発生し、速度低下の程度もはるかに大きくなります。また、使用したブロック サイズ (1G) はテストには最適ではありません。より適切な 1M を使用すると、より良い結果が得られます。

結論

システム パーティションには小さなファイルがたくさんあり、高速に動作するので、小さい方のディスクを引き続き使用します。ただし、頻繁にバックアップしてコピーするため、この SSD で実行している 2 つの VM を大きい方のディスクに移動します。

関連情報