私のサーバーのext4パーティションに書き込むのがなぜそんなに遅いのかを理解しようとしています。オフサイトバックアップドライブをExFATからext4に再フォーマットしたときにこの問題が検出されました。これらのドライブをExFATでフォーマットすると、書き込み速度は約140〜150 MB / sに見えます。 ext4でフォーマットされた同じドライブを使用すると、約40 MB / sの書き込み速度を見ることができます。
2つのドライブは、USB 3を介して接続された4TB Western Digital Elements Portable(25A1)ドライブです。
ベンチマークを実行する前に、ext4遅延初期化が完了したことを確認しました。
findmnt --target
ドライブの1つの出力は次のとおりです。
TARGET SOURCE FSTYPE OPTIONS
/mnt/off-site_2 /dev/sdd1 ext4 rw,nosuid,nodev,noexec,noatime
追加情報(一部は便宜のためにコメントからコピー):
- 私は多くの家族用の大容量(1GB〜5GB)ファイルをこのドライブに同期しています。
- すべてのファイルが使用可能なメモリー量より少ない。
- システムには 8 GB の RAM が搭載されており、通常は 512 MB 未満を使用し、残りはキャッシュで使用されます。
- ドライブにデータを書き込むと、FSがExFATかext4であるかにかかわらず、この
Dirty
値は約1.3GBに変動します。/proc/meminfo
- カーネルは
4.19.0-11-amd64
現在Debian 10で利用可能な最新バージョンです。 - ドライバモデルはWDC WD40NMZW-11GX6S1です。 ~によるとこれ、これはSMRドライブです。
- 出力
dumpe2fs -h /dev/sdd1
root@Server:~# dumpe2fs -h /dev/sdd1
dumpe2fs 1.44.5 (15-Dec-2018)
Filesystem volume name: Off-site 2
Last mounted on: /mnt/off-site_2
Filesystem UUID: d5f29945-6e3c-45d1-98bb-ac2dd404975a
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype extent 64bit flex_bg sparse_super large_file huge_file dir_nlink extra_isize metadata_csum
Filesystem flags: signed_directory_hash
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 244187136
Block count: 976745979
Reserved block count: 48837298
Free blocks: 83988236
Free inodes: 244182173
First block: 0
Block size: 4096
Fragment size: 4096
Group descriptor size: 64
Reserved GDT blocks: 1024
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
Flex block group size: 16
Filesystem created: Mon Oct 5 15:47:31 2020
Last mount time: Wed Oct 7 20:09:00 2020
Last write time: Wed Oct 7 20:32:22 2020
Mount count: 6
Maximum mount count: -1
Last checked: Mon Oct 5 15:47:31 2020
Check interval: 0 (<none>)
Lifetime writes: 3433 GB
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 32
Desired extra isize: 32
Journal inode: 8
Default directory hash: half_md4
Directory Hash Seed: 777766d4-df04-4c2c-b503-f7244bf87810
Journal backup: inode blocks
Checksum type: crc32c
Checksum: 0xbf1db7ae
Journal features: journal_incompat_revoke journal_64bit journal_checksum_v3
Journal size: 1024M
Journal length: 262144
Journal sequence: 0x00003fdd
Journal start: 0
Journal checksum type: crc32c
Journal checksum: 0x2a21e235
ここで問題を見せようとしています。
# ExFAT drive
root@Server:/mnt/off-site_1/test# dd if=/dev/zero of=test.bin bs=1M count=5000 status=progress
5131730944 bytes (5.1 GB, 4.8 GiB) copied, 23 s, 223 MB/s
5000+0 records in
5000+0 records out
5242880000 bytes (5.2 GB, 4.9 GiB) copied, 23.6661 s, 222 MB/s
# ext4 drive
root@Server:/mnt/off-site_2/test# dd if=/dev/zero of=test.bin bs=1M count=5000 status=progress
5173673984 bytes (5.2 GB, 4.8 GiB) copied, 44 s, 118 MB/s
5000+0 records in
5000+0 records out
5242880000 bytes (5.2 GB, 4.9 GiB) copied, 58.9746 s, 88.9 MB/s