VPS/云主机等
优惠信息分享

超简单nas磁盘/raid性能测试,快速知晓机器性能

超简单nas磁盘/raid性能测试,快速知晓机器性能插图

现在绝大部分消费级nas都不带硬盘测试功能,也基本上无法对整个阵列进行测试,这就导致用户根本不知道其机器的磁盘性能,有时候升级了更高速率结果发现最后是磁盘性能拖了后腿,不如提前对磁盘性能做个测试,做到心中有数。

很多同学会有疑问,磁盘是啥性能自己还不清楚吗,买到手在windows下通过ASSSD等类型的工具测试一遍就可以了,还有必要做测试吗?但是大部分童鞋nas都会做raid,做了raid后性能就不是单个磁盘性能简单叠加。况且不同的系统做raid后磁盘性能也都不一样,如果有多台nas的童鞋也可以对比下不同系统的磁盘性能。

判断磁盘性能的最直观数值就是iops,即每秒读写次数,又分为顺序读写和随机读写,众所周知顺序读写通常都很快,但是随机读写就看硬盘了。为什么要关注iops?很简单,例如我们要打开nas的文件,大文件看的是顺序读写,例如看视频/超大文件;小文件看的是随机读写,不少同学跑pt/bt和虚拟机,又或者是查看缩略图等等,也都看重随机iops,如果磁盘性能不够,将严重拖慢程序运行。

超简单nas磁盘/raid性能测试,快速知晓机器性能插图1

一、测试方式

常规消费级nas通常都是linux系统,且不会开放ssh,哪怕开放了ssh,其系统底层也不带测试工具,如果安装第三方软件进行测试,可能会对系统产生不可逆的破坏。因此,这里用的是部署linux docker后安装fio进行测试。当然如果是windows系统,也可以直接安装fio进行测试。

fio就是一个磁盘测试软件,通过调整不同的测试参数,就可以看出磁盘/阵列的性能。但是需要注意,如果启用了类似ssd加速读写缓存,fio测试的就是加速缓存性能了,无法体现出实际存储性能,建议关闭加速缓存后再进行测试。

二、部署linux docker

这里我就用威联通nas作为例子,其他的nas都是一样,部署linux docker基本上没啥难度。如果拉取不了docker,可以看我往期文章,有解决方法。

先建立一个ubuntu的docker。docker映像名称就是“Ubuntu”,在高级设置里面,需要勾选上“为容器分配互动进程(-i)、为容器分配 TTY 进程(-t)”这两个。网络部分不用做任何配置,所有的端口都不用映射出来。

超简单nas磁盘/raid性能测试,快速知晓机器性能插图2超简单nas磁盘/raid性能测试,快速知晓机器性能插图3超简单nas磁盘/raid性能测试,快速知晓机器性能插图4超简单nas磁盘/raid性能测试,快速知晓机器性能插图5

之后还需要映射文件,让做个linux docker可以读写到nas上的文件,例如我这里映射了nas上的“/Container/test”文件夹为linux docker“/mnt”内部文件夹。那当在docker内读写“/mnt”文件夹的时候实际读写就是nas上的“/Container/test”文件夹,就可以通过测试内部“/mnt”文件夹读写性能就能知道nas上磁盘/raid的性能了。

超简单nas磁盘/raid性能测试,快速知晓机器性能插图6

需要注意:本文的测试方法,读写会有略微损耗,但是已经可以判断出nas的磁盘性能了。

然后还需要让容器以特权模式运行,如果不以特权模式运行会导致fio无法运行。其他的就都不用关,直接部署就行。

超简单nas磁盘/raid性能测试,快速知晓机器性能插图7

三、安装fio&测试性能

部署好docker后,点击右上角执行,进入docker内部的ssh。

超简单nas磁盘/raid性能测试,快速知晓机器性能插图8

然后依次运行以下命令:

apt update
#更新软件源

apt install fio
#安装fio

安装好后再次输入以下命令测试磁盘性能:

fio --name=测试 --rw=randrw --bs=4k --size=1G --numjobs=1 --iodepth=1 --time_based --runtime=30 --group_reporting --filename=/mnt/test
#测试4k单队列随机读写

fio --name=测试 --rw=readwrite --bs=1M --size=1G --numjobs=1 --iodepth=1 --time_based --runtime=30 --group_reporting --filename=/mnt/test
#测试顺序单队列读写

以下是上面命令参数的说明,不懂的话百度对应参数:

--name=测试:指定测试的名称为“测试”。
--rw=randrw:指定读写模式为随机读写。
--rw=readwrite:指定读写模式为顺序读写。
--bs=4k:设置块大小为 4KB,这意味着每次读写操作的数据块大小为 4KB。
--size=1G:每个作业的文件大小为 1GB。
--numjobs=1:启动1个并发作业,也就是线程数。
--iodepth=1:设置 I/O 队列深度为1。
--time_based:测试运行基于时间,而不是固定的文件大小。这意味着测试会持续一定的时间。
--runtime=30:测试运行 30 秒。
--group_reporting:聚合所有作业的输出,集中显示结果。
--filename=/mnt/test:指定测试文件的路径。

等待测试完成后,会生成报告,这里我们关注iops以及最后的“Run status group 0 (all jobs)”部分,这个其实不用太多介绍吧,看读写的值就行,也都知道这些数值越大越好........。

超简单nas磁盘/raid性能测试,快速知晓机器性能插图9

小贴士:为什么相同参数下,windows测试的性能要比nas上的好呢,那是因为,有各种缓存,很多nas系统是无法使用内存缓存的,所以数据自然差了一大截。如果nas使用了缓存,也可以加上“--direct=1”参数禁止使用系统缓存。

赞(0)
未经允许不得转载:遗弃你|YIQINI.COM » 超简单nas磁盘/raid性能测试,快速知晓机器性能

评论 抢沙发

评论前必须登录!

 

登录

找回密码

注册