dd命令
- 1: dd命令介绍
- 2: 三星pm983测试数据
- 3: 爱国者p7000z测试数据
- 4: 凯侠cd6测试数据
- 5: 西数sn550测试数据
- 6: 隐速4TN7000测试数据
- 7: 三星980测试数据
1 - dd命令介绍
介绍
使用
测试硬盘读取速度
dd if=/dev/zero of=/tmp/test1.img bs=1G count=1 oflag=dsync
dd if=/dev/zero of=/root/temp/test1.img bs=10G count=1 oflag=dsync
参考资料
2 - 三星pm983测试数据
硬盘型号 三星 pm983,容量 900G, m2 接口 nvme 协议, pcie 3.0 x4, 规格为 22110。
华硕z690
主板为华硕 z690-p d4, m2 接口 pcie 4.0 x4,受硬盘限制实际为 pcie 3.0 x4。
安装 pve 8.0 系统,6.2 内核。
基本信息
$ lspci | grep SSD
08:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM981/PM981/PM983
磁盘数据:
$ fdisk -l
Disk /dev/nvme1n1: 838.36 GiB, 900185481216 bytes, 219771846 sectors
Disk model: MZ1LB960HBJR-000FB
Units: sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 131072 bytes / 131072 bytes
Disklabel type: gpt
Disk identifier: 87408245-67E3-47E0-AF90-85B8DDDAD75D
Device Start End Sectors Size Type
/dev/nvme1n1p1 193462528 219771647 26309120 100.4G Linux filesystem
/dev/nvme1n1p2 256 262399 262144 1G EFI System
/dev/nvme1n1p3 262400 193462272 193199873 737G Linux LVM
分区信息:
$ hdparm /dev/nvme1n1p3
/dev/nvme1n1p3:
readonly = 0 (off)
readahead = 512 (on)
geometry = 754687/64/32, sectors = 1545598984, start = 2099200
速度测试
硬盘写入速度:
$ dd if=/dev/zero of=/root/temp/test1.img bs=1G count=10 oflag=dsync
10+0 records in
10+0 records out
10737418240 bytes (11 GB, 10 GiB) copied, 14.4349 s, 744 MB/s
只有 744 兆,低的有点出乎意外,应该是缓存耗尽。
硬盘读取速度:
dd if=/root/temp/test1.img of=/dev/null bs=8k
对比
hdparm -tT /dev/nvme1n1p3
/dev/nvme1n1p3:
Timing cached reads: 32260 MB in 2.00 seconds = 16152.14 MB/sec
Timing buffered disk reads: 5074 MB in 3.00 seconds = 1691.16 MB/sec
参考资料
3 - 爱国者p7000z测试数据
硬盘型号 爱国者p7000z,容量 4T , m2 接口 nvme 协议, pcie 4.0 x4, 规格为 2280。
华硕z690 + pve 8
主板为华硕 z690-p d4, m2 接口 pcie 4.0 x4。
安装 ubuntu 20.04 系统,5.4 内核, ext4 格式。
基本信息
$ lspci | grep Volatile
02:00.0 Non-Volatile memory controller: Device 1e4b:1602 (rev 01)
磁盘数据:
$ sudo fdisk -l
Disk /dev/nvme0n1: 3.74 TiB, 4096805658624 bytes, 8001573552 sectors
Disk model: aigo NVMe SSD P7000Z 4TB
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: EE02EE97-D530-4107-9D83-6A15532005BA
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 1050623 1048576 512M EFI System
/dev/nvme0n1p2 1050624 1074792447 1073741824 512G Linux filesystem
/dev/nvme0n1p3 1074792448 1179650047 104857600 50G Linux filesystem
/dev/nvme0n1p4 1179650048 8001570815 6821920768 3.2T Linux filesystem
测试分区为 nvme0n1p4,分区信息:
$ sudo hdparm /dev/nvme0n1p4
/dev/nvme0n1p4:
HDIO_DRIVE_CMD(identify) failed: Inappropriate ioctl for device
readonly = 0 (off)
readahead = 256 (on)
HDIO_DRIVE_CMD(identify) failed: Inappropriate ioctl for device
geometry = 3331016/64/32, sectors = 6821920768, start = 1179650048
速度测试
硬盘写入速度:
$ dd if=/dev/zero of=/mnt/data/share/temp/test1.img bs=1G count=10 oflag=dsync
10+0 records in
10+0 records out
10737418240 bytes (11 GB, 10 GiB) copied, 5.96539 s, 1.8 GB/s
只有 1.4 GB,有点低的,p7000z 是 pcie 4.0,按说写入速度应该是5-6GB级别。
持续写入 100G的文件,还是 1.8 GB/秒:
$ dd if=/dev/zero of=/mnt/data/share/temp/test1.img bs=1G count=100 oflag=dsync
100+0 records in
100+0 records out
107374182400 bytes (107 GB, 100 GiB) copied, 60.8423 s, 1.8 GB/s
硬盘读取速度(直接以 8M 的 block size 读取 100GB 大文件):
$ dd if=/mnt/data/share/temp/test1.img of=/dev/null bs=8M
12800+0 records in
12800+0 records out
107374182400 bytes (107 GB, 100 GiB) copied, 26.7172 s, 4.0 GB/s
4.0GB/s 的速度只能说差强人意,凑合吧。
4 - 凯侠cd6测试数据
硬盘信息
硬盘型号 凯侠cd6,容量 3.84T , u2 接口 nvme 协议, pcie 4.0 x4。
windows 下测试的性能数据:
华硕z690 + ubuntu 22.04
主板为华硕 z690-p d4, m2 接口 pcie 4.0 x4 转 u2。
安装 linux lint 操作系统,基于 ubuntu 22.04,5.15 内核。
基本信息
$ lspci | grep SSD
02:00.0 Non-Volatile memory controller: KIOXIA Corporation NVMe SSD Controller Cx6 (rev 01)
磁盘数据:
sudo fdisk -l
Disk /dev/nvme0n1: 3.49 TiB, 3840755982336 bytes, 7501476528 sectors
Disk model: KCD61LUL3T84
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: FBEFBE02-9843-4FEC-8B2C-C50B5EAD8069
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 206847 204800 100M EFI System
/dev/nvme0n1p2 206848 239615 32768 16M Microsoft reserved
/dev/nvme0n1p3 239616 1047643943 1047404328 499.4G Microsoft basic data
/dev/nvme0n1p4 1047644160 1048813567 1169408 571M Windows recovery environment
/dev/nvme0n1p5 1048815616 2097391615 1048576000 500G Microsoft basic data
/dev/nvme0n1p6 2097391616 7340271615 5242880000 2.4T Microsoft basic data
/dev/nvme0n1p7 7340271616 7501475839 161204224 76.9G Microsoft basic data
测试两个分区,nvme0n1p5 是 ex4 格式(上面的数据有问题) ,nvme0n1p6 是 ntfs 格式,通过 ntfs-3g 读写。
分区信息:
$ sudo hdparm /dev/nvme0n1p5
/dev/nvme0n1p5:
readonly = 0 (off)
readahead = 256 (on)
geometry = 512000/64/32, sectors = 1048576000, start = 1048815616
$ sudo hdparm /dev/nvme0n1p6
/dev/nvme0n1p6:
readonly = 0 (off)
readahead = 256 (on)
geometry = 2560000/64/32, sectors = 5242880000, start = 2097391616
nvme0n1p5 速度测试
nvme0n1p5 硬盘写入速度:
$ dd if=/dev/zero of=/home/sky/temp/test1.img bs=1G count=10 oflag=dsync
10+0 records in
10+0 records out
10737418240 bytes (11 GB, 10 GiB) copied, 7.69088 s, 1.4 GB/s
只有 1.4 GB,低的有点出乎意外,cd6 是 pcie 4.0,按说写入速度应该是5-6GB级别。
持续写入 100G的性能,还是 1.4 GB/秒:
$ dd if=/dev/zero of=/home/sky/temp/test1.img bs=1G count=100 oflag=dsync
100+0 records in
100+0 records out
107374182400 bytes (107 GB, 100 GiB) copied, 77.9087 s, 1.4 GB/s
nvme0n1p5 硬盘读取速度:
$ dd if=/home/sky/temp/test1.img of=/dev/null bs=8k
1310720+0 records in
1310720+0 records out
10737418240 bytes (11 GB, 10 GiB) copied, 0.681243 s, 15.8 GB/s
15.8 GB 的速度又离谱了,应该是有缓存在。尝试读取 100G 大小:
$ dd if=/home/sky/temp/test1.img of=/dev/null bs=8k
13107200+0 records in
13107200+0 records out
107374182400 bytes (107 GB, 100 GiB) copied, 53.4742 s, 2.0 GB/s
每秒2GB的速度还是有点低,离 pcie 4.0 硬盘的标称速度 6-7 GB差距很大,尝试将 bs (block-size)加大到 8M 继续读取这个 100GB的文件:
$ dd if=/home/sky/temp/test1.img of=/dev/null bs=8M
12800+0 records in
12800+0 records out
107374182400 bytes (107 GB, 100 GiB) copied, 24.9262 s, 4.3 GB/s
4.3 GB/s 就相对比较合理了。
对比
$ sudo hdparm -tT /dev/nvme0n1p5
/dev/nvme0n1p5:
Timing cached reads: 48164 MB in 2.00 seconds = 24121.05 MB/sec
Timing buffered disk reads: 7166 MB in 3.00 seconds = 2388.55 MB/sec
nvme0n1p6 速度测试
nvme0n1p6 这个分区是 ntfs 格式。
nvme0n1p6 硬盘写入速度:
$ dd if=/dev/zero of=/media/d/temp/test1.img bs=1G count=10 oflag=dsync
10+0 records in
10+0 records out
10737418240 bytes (11 GB, 10 GiB) copied, 29.3955 s, 365 MB/s
只有 365 兆,低的有点出乎意外,应该是 linux 读写 ntfs 格式有速度问题。
nvme0n1p6 硬盘读取速度:
$ dd if=/media/d/temp/test1.img of=/dev/null bs=8k
1310720+0 records in
1310720+0 records out
10737418240 bytes (11 GB, 10 GiB) copied, 1.91374 s, 5.6 GB/s
5.6GB 的速度有点偏高,估计还是缓存。尝试读取 100 GB大小的文件:
$ dd if=/dev/zero of=/media/d/temp/test1.img bs=1G count=100 oflag=dsync
100+0 records in
100+0 records out
107374182400 bytes (107 GB, 100 GiB) copied, 242.065 s, 444 MB/s
444 MB/s 每秒的速度和前面 ext4 下的 4.3 GB/s 相比,nfts 格式会让磁盘性能下降到 10% ,实在恐怖。所以还是要避免在 linux 下使用 ntfs 格式。
对比
$ sudo hdparm -tT /dev/nvme0n1p6
/dev/nvme0n1p6:
Timing cached reads: 49004 MB in 2.00 seconds = 24540.33 MB/sec
Timing buffered disk reads: 7452 MB in 3.00 seconds = 2483.48 MB/sec
2483.48 MB/sec 这个数据完全不真实。
5 - 西数sn550测试数据
硬盘型号 西数 sn520,容量 500 GB , m2 接口 nvme 协议, pcie 3.0 x4。
技嘉 x99 + ubuntu 20.04
主板为技嘉 x99 ud4 主板, m2 接口 pcie 3.0 x4。但这个主板自带的 m2 接口速度只有 10G,不是正常满血 pcie 3.0 x4 的 32G。
安装 ubuntu 20.04 操作系统,5.4 内核。
基本信息
$ lspci | grep Non-Volatile
06:00.0 Non-Volatile memory controller: Sandisk Corp WD Black 2018/PC SN520 NVMe SSD (rev 01)
磁盘数据:
$ sudo fdisk -l
Disk /dev/nvme1n1: 465.78 GiB, 500107862016 bytes, 976773168 sectors
Disk model: WDC WDS500G1B0C-00S6U0
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: AB8D3D88-0124-404E-B1BC-658E567C569D
Device Start End Sectors Size Type
/dev/nvme1n1p1 2048 1050623 1048576 512M EFI System
/dev/nvme1n1p2 1050624 839911423 838860800 400G Linux filesystem
/dev/nvme1n1p3 839911424 976771071 136859648 65.3G Linux filesystem
测试分区为 nvme1n1p2,分区信息:
$ sudo hdparm /dev/nvme1n1p2
/dev/nvme1n1p2:
HDIO_DRIVE_CMD(identify) failed: Inappropriate ioctl for device
readonly = 0 (off)
readahead = 256 (on)
HDIO_DRIVE_CMD(identify) failed: Inappropriate ioctl for device
geometry = 409600/64/32, sectors = 838860800, start = 1050624
速度测试
硬盘写入速度:
$ dd if=/dev/zero of=/home/sky/temp/test1.img bs=1G count=10 oflag=dsync
10+0 records in
10+0 records out
10737418240 bytes (11 GB, 10 GiB) copied, 23.3803 s, 459 MB/s
只有 459 MB/s,低的有点出乎意外,虽然是块笔记本用的 ssd 硬盘,但这个速度也没比机械硬盘快多少。
持续写入 100G的性能,还是 454 MB/s:
$ dd if=/dev/zero of=/home/sky/temp/test1.img bs=1G count=100 oflag=dsync
100+0 records in
100+0 records out
107374182400 bytes (107 GB, 100 GiB) copied, 236.347 s, 454 MB/s
硬盘读取速度(直接以 8M 的 block size 读取 100GB 大文件):
$ dd if=/home/sky/temp/test1.img of=/dev/null bs=8M
dd if=/home/sky/temp/test1.img of=/dev/null bs=8M
12800+0 records in
12800+0 records out
107374182400 bytes (107 GB, 100 GiB) copied, 131.35 s, 817 MB/s
817 MB/s ,看来这就是这块硬盘的最大速度了,10G 接口对它而言反而不是瓶颈。
对比
$ sudo hdparm -tT /dev/nvme1n1p2
/dev/nvme1n1p2:
Timing cached reads: 19496 MB in 1.99 seconds = 9792.62 MB/sec
HDIO_DRIVE_CMD(identify) failed: Inappropriate ioctl for device
Timing buffered disk reads: 2298 MB in 3.00 seconds = 765.56 MB/sec
765.56 MB/sec 这个数据还比较符合实际测试性能。
总结
这个 sn520 硬盘的性能实在不堪,二手出掉吧。
6 - 隐速4TN7000测试数据
硬盘型号 隐速4TN7000,容量 4T , m2 接口 nvme 协议, pcie 4.0 x4, 规格为 2280。
技嘉x99 ud4 + ubuntu server
主板为技嘉x99 ud4, 通过pcie拆分卡得到了一个 m2 接口 pcie 4.0 x4。
安装 ubuntu 20.04 系统,5.4 内核, ext4 格式。
基本信息
$ lspci | grep Volatile
03:00.0 Non-Volatile memory controller: Device 1e4b:1602 (rev 01)
磁盘数据:
$ sudo fdisk -l
Disk /dev/nvme0n1: 3.74 TiB, 4096805658624 bytes, 8001573552 sectors
Disk model: YSSDHB-4TN7000
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: DA503D82-D785-4A47-A701-504DB1ED256C
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 8001573518 8001571471 3.7T Linux filesystem
测试分区为 nvme0n1p1,分区信息:
$ sudo hdparm /dev/nvme0n1p1
/dev/nvme0n1p1:
readonly = 0 (off)
readahead = 256 (on)
geometry = 3907017/64/32, sectors = 8001571471, start = 2048
速度测试
硬盘写入速度:
$ sudo dd if=/dev/zero of=/data/temp/test1.img bs=1G count=10 oflag=dsync
10+0 records in
10+0 records out
10737418240 bytes (11 GB, 10 GiB) copied, 11.6533 s, 921 MB/s
只有 0.9 GB,低的离谱,虽然主板限制只能跑pcie 3.0 x4 32G的带宽, 但按说写入速度应该是3-4GB级别,就算打折扣也不应该这么低。参考爱国者p7000z的速度是 1.8GB/秒。
读取速度为 6.6GB/S,这个还行,应该是缓存:
$ dd if=/data/temp/test1.img of=/dev/null bs=8M
1280+0 records in
1280+0 records out
10737418240 bytes (11 GB, 10 GiB) copied, 1.62146 s, 6.6 GB/s
持续写入 100G的文件,还是 0.9 GB/秒:
$ sudo dd if=/dev/zero of=/data/temp/test1.img bs=1G count=100 oflag=dsync
100+0 records in
100+0 records out
107374182400 bytes (107 GB, 100 GiB) copied, 118.151 s, 909 MB/s
硬盘读取速度(直接以 8M 的 block size 读取 100GB 大文件):
$ dd if=/data/temp/test1.img of=/dev/null bs=8M
12800+0 records in
12800+0 records out
107374182400 bytes (107 GB, 100 GiB) copied, 37.7508 s, 2.8 GB/s
2.8 GB的速度有点低,对比爱国者p7000z 是 4.0GB/s 。
持续写入 1T的文件,还是 0.9 GB/秒,看来缓外速度就真的只有900M了:
$ sudo dd if=/dev/zero of=/data/temp/test-1t.img bs=1G count=1000 oflag=dsync
1000+0 records in
1000+0 records out
1073741824000 bytes (1.1 TB, 1000 GiB) copied, 1221.81 s, 879 MB/s
硬盘读取速度(以 8M 的 block size 读取 1 TB 大文件):
dd if=/data/temp/test-1t.img of=/dev/null bs=8M
128000+0 records in
128000+0 records out
1073741824000 bytes (1.1 TB, 1000 GiB) copied, 368.641 s, 2.9 GB/s
看来 2.8/2.9G 就是 pcie3 下的无缓存极限速度了。
华硕z690 + windows10
TBD
华硕z690 + ubuntu
TBD
速度参考资料
7 - 三星980测试数据
硬盘信息
硬盘型号 三星980,容量 1 T, m2 接口 nvme 协议, pcie 3.0 x4。
三星官方给到980 1TB的参数为:
- pcie3.0×4,nvme1.4,HMB无缓设计
- 最大读:3500MB/s
- 最大写:3000MB/s
- 最大随读:50W IOPS
- 最大随写:48W IOPS
相关资料参考:
- 细狗真不行丨三星980固态硬盘测评报告,凭啥你卖这么多?
- 标杆家的无缓——Samsung 980 1TB评测
- SAMSUNG 980 1TB實測開箱,NVMe M.2高效能固態硬碟!
- 三星NVMe SSD 980深度评测:极致性价比,开启无DRAM SSD时代
技嘉 x99 + ubuntu 20.04
主板为技嘉 x99 ud4 主板, m2 接口 pcie 3.0 x4。
安装 ubuntu 20.04 操作系统,5.4 内核。
基本信息
$ lspci | grep Non-Volatile
03:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd Device a809
磁盘数据:
$ sudo fdisk -l
Disk /dev/nvme0n1: 931.53 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: Samsung SSD 980 1TB
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 16384 bytes / 131072 bytes
Disklabel type: gpt
Disk identifier: DB6DCF2B-7BCD-4C10-8B72-B95EF2DD634A
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 1953525134 1953523087 931.5G Linux filesystem
测试分区为 nvme0n1p1,分区信息:
$ sudo hdparm /dev/nvme0n1p1
/dev/nvme0n1p1:
HDIO_DRIVE_CMD(identify) failed: Inappropriate ioctl for device
readonly = 0 (off)
readahead = 256 (on)
HDIO_DRIVE_CMD(identify) failed: Inappropriate ioctl for device
geometry = 953868/64/32, sectors = 1953523087, start = 2048
速度测试
硬盘写入速度:
$ dd if=/dev/zero of=/mnt/data/share/temp/test1.img bs=1G count=10 oflag=dsync
10+0 records in
10+0 records out
10737418240 bytes (11 GB, 10 GiB) copied, 11.9802 s, 896 MB/s
只有 896 MB/s,低的有点出乎意外,这个标称写入速度是3G啊。
持续写入 100G的性能,这次只有 794 MB/s:
$ dd if=/dev/zero of=/mnt/data/share/temp/test1.img bs=1G count=100 oflag=dsync
100+0 records in
100+0 records out
107374182400 bytes (107 GB, 100 GiB) copied, 135.252 s, 794 MB/s
硬盘读取速度(直接以 8M 的 block size 读取 100GB 大文件):
$ dd if=/mnt/data/share/temp/test1.img of=/dev/null bs=8M
12800+0 records in
12800+0 records out
107374182400 bytes (107 GB, 100 GiB) copied, 44.1279 s, 2.4 GB/s
2.4 GB/s ,和宣称的 3G 速度有一点出入,但好在没有离谱。
对比
$ sudo hdparm -tT /dev/nvme0n1p1
/dev/nvme0n1p1:
Timing cached reads: 20218 MB in 1.99 seconds = 10157.69 MB/sec
HDIO_DRIVE_CMD(identify) failed: Inappropriate ioctl for device
Timing buffered disk reads: 5302 MB in 3.00 seconds = 1767.28 MB/sec
1767.28 MB/sec 这个数据比实际测试性能(2.4 GB/s)要小一点。
总结
这个 三星 980 硬盘按说是 pcie3.0 中高端硬盘,宣称的读写性能应该在 3 GB这个级别,接近 pcie3.0 x4 32G 的理论带宽。但实际测试下来,读 2.4 GB/s 勉强还能凑合,写 800M 就差的很远。