注意事项:
测完了再去docker文件夹目录删掉测试文件
测完写入后再测读取 不然你没得测
快速测试
这两条命令使用 dd
工具来测试磁盘的写入和读取速度。以下是每条命令的详细解释:
1. 写入速度测试
sudo dd if=/dev/zero of=/volume1/docker/testfile bs=1G count=1
sudo
: 以超级用户权限执行命令。dd
: 数据复制和转换工具。if=/dev/zero
: 输入文件是/dev/zero
,这是一个特殊文件,会不断输出零字节(0),用于生成测试数据。of=/volume1/docker/testfile
: 输出文件是/volume1/docker/testfile
,即将数据写入这个文件。bs=1G
: 块大小设置为 1GB(1,073,741,824 字节)。count=1
: 指定要写入的块数,这里是 1 块。
作用: 这条命令会将 1GB 的零字节写入到指定的文件中,从而测试磁盘的写入速度。
2. 读取速度测试
sudo dd if=/volume1/docker/testfile of=/dev/null bs=1G
if=/volume1/docker/testfile
: 输入文件是刚刚创建的testfile
,即读取这个文件。of=/dev/null
: 输出文件是/dev/null
,这是一个特殊设备,任何写入它的数据都会被丢弃。这里的作用是只进行读取,不保存数据。bs=1G
: 块大小设置为 1GB。
作用: 这条命令会从 testfile
中读取 1GB 的数据,并将其丢弃,从而测试磁盘的读取速度。
总结
- 第一条命令测试的是写入速度。
- 第二条命令测试的是读取速度。
通过这两条命令,你可以评估磁盘的性能。
测试写入1.6G
sudo time dd if=/dev/zero of=/volume1/docker/test.dbf bs=4k count=400000
sudo
是 "superuser do" 的缩写,用于在 Linux 或 Unix 系统中以超级用户(root)权限执行命令。使用sudo
是因为某些操作需要更高的权限,比如创建文件在受保护的目录中。time
是一个命令行工具,用来测量命令执行所需的时间。它会输出三种时间:- real: 实际花费的总时间(从开始到结束的墙上时钟时间)。
- user: 用户空间中 CPU 所花费的时间。
- sys: 内核空间中 CPU 所花费的时间。
dd
是一个用于复制和转换文件的命令。它的功能非常强大,可以用于创建镜像、备份、转换数据格式等。参数解释:
if=/dev/zero
:if
代表 "input file"(输入文件)。/dev/zero
是一个特殊的文件,它提供无限的零(0x00)字节。这里用作数据源,意味着dd
将会生成零填充的数据。of=/volume1/docker/test.dbf
:of
代表 "output file"(输出文件)。这指定了生成的文件名和路径,这里是/volume1/docker/test.dbf
。bs=4k
:bs
设置块大小(block size),这里设为 4KB(4096 字节)。count=400000
: 这指定了dd
命令要复制的块数量。结合bs=4k
,这意味着总共会写入 400000 * 4KB = 1600000KB 或 1.6GB 的数据。
总结:
这条命令的目的是在 /volume1/docker/
目录下创建一个名为 test.dbf
的文件,并用零填充这个文件直到它的大小达到 1.6GB。
返回结果:
2.54317 s, 644 MB/s: 表示整个复制过程耗时 2.54317 秒,平均传输速度为 644 MB/s。
测试读取1.6G
sudo time dd if=/volume1/docker/test.dbf of=/dev/null bs=4k count=400000
这条命令使用 dd
工具从一个文件读取数据并将其写入到 /dev/null
,也就是丢弃这些数据。具体来说,各个部分的含义如下:
sudo
: 以超级用户权限运行命令。time
: 测量命令执行所需的时间。dd
: 一个用于转换和复制文件的命令行工具。if=/volume1/docker/test.dbf
: 指定输入文件(if
是 "input file" 的缩写),这里是/volume1/docker/test.dbf
。of=/dev/null
: 指定输出文件(of
是 "output file" 的缩写),这里是/dev/null
,表示丢弃所有输出。bs=4k
: 设置块大小为 4KB(4096 字节)。count=400000
: 指定要读取的块数,这里是 400,000 块。
总结
这条命令的作用是从指定的数据库文件中读取 1.6GB(400,000 * 4KB)的数据,并测量这个操作的时间,但不会保存任何读取的数据,因为它们被写入了 /dev/null
。这个命令通常用于测试磁盘 I/O 性能或验证读取速度。
(其实是我不知道啥意思 问的AI 看来他也讲不清楚 当个参考图个乐就行了 返回的数值多少M/S 都能看懂吧?)
测试写入20G
sudo time dd if=/dev/zero of=/volume1/docker/test.dbf bs=4k count=5242880
返回结果:
40.7733 s, 527 MB/s: 表示整个复制过程耗时 40.7733 秒,平均传输速度为 527 MB/s。
CPU使用情况的统计信息:
0.94user: 用户态 CPU 使用时间为 0.94 秒
38.01system: 内核态 CPU 使用时间为 38.01 秒
0:41.16elapsed: 总的执行时间为 41.16 秒
94%CPU: CPU 利用率为 94%
(0avgtext+0avgdata 2188maxresident)k: 进程的最大驻留集大小为 2,188 KB
测试读取20G
sudo time dd if=/volume1/docker/test.dbf of=/dev/null bs=4k count=5242880
同上不解释了 按照顺序就好
测试总结
我的全闪nas 是三根m2组的shr阵列 应该是raid5 写入确实拉胯 读取还可以 磁盘直通给虚拟机后 可以跟我的windows 传输基本达到万兆(平均800mb/s) 且cpu占用也没有飙升 还算满意 想要写入好起来 就得继续加硬盘 多加几根就能满足万兆写入了 不过你要考虑到 群晖内存还能加速 我直接给了群晖64g 起飞就完事了