本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
阿里云ESSD PL-X云盘具备超高IOPS(Input/Output Operations Per Second)、超高吞吐量和超低时延等多维度的超高性能。测试ESSD PL-X云盘性能时,云盘本身和压测条件都会对云盘的性能产生重要影响,您可以按照本示例配置ESSD PL-X云盘性能的压测条件,测试ESSD PL-X云盘的访问时延和IOPS。
有关ESSD PL-X云盘的更多信息,请参见ESSD PL-X云盘。
压测条件
ESSD PL-X云盘正在邀测中,邀测地域和可用区仅支持华东2(上海)的M可用区。如需使用,请前往邀测页面申请。
镜像:使用公共镜像中高版本的Linux镜像,推荐使用阿里云官方维护的Alibaba Cloud Linux 2/3。本示例中,使用Alibaba Cloud Linux 3.2104 LTS 64位公共镜像。
说明经测试发现部分Linux发行版镜像,例如CentOS 8.2,因内核编译配置或优化较其他发行版有明显不足,可能无法达到预期的部分性能。因此强烈推荐您使用Alibaba Cloud Linux 2/3镜像。
工具:使用FIO。
实例规格:推荐使用ecs.r7se-x.24xlarge。
ESSD PL-X云盘:
测试裸盘可以获得真实的云盘性能,建议您直接通过FIO压测裸盘进行云盘性能测试。
为确保云盘性能测试的准确性,请预先准备好足量的IOPS。压测时延时,建议至少准备40,000 IOPS。压测IOPS时,建议准备3,000 GiB以上的云盘和 3,000,000 IOPS。本示例中,使用的DEV_NODE路径为/dev/your_device,请您根据云盘实际的设备名替换,例如/dev/vdc。更多信息,请参见ESSD云盘。
警告测试裸盘会破坏分区表和文件系统结构,请在测试前提前创建快照做好数据备份。具体操作,请参见创建快照。
强烈建议您不要将操作系统所在的云盘或者含有重要数据的云盘作为测试对象,建议您只在新购买的无数据的ECS实例上使用工具测试云盘性能,避免造成数据丢失。
测试ESSD PL-X云盘时延
远程连接ECS实例。
具体操作,请参见使用VNC登录实例。
运行以下命令安装libaio和FIO。
sudo yum install libaio fio -y
其他Linux发行版镜像可以执行以下命令安装libaio和FIO。
Red Hat系列
sudo yum install libaio fio -y
Debian系列
sudo apt install -y libaio1 fio
SUSE系列
sudo zypper -n install fio libaio
调整内核启动参数。
警告修改内核启动参数过程中的误操作可能会让操作系统无法正常使用,具有一定的危险性。强烈建议您不要将含有重要数据或业务的ECS实例作为测试对象。建议您只在新购买的无数据的ECS实例上使用工具测试块存储性能,避免造成业务受损或数据丢失。
打开
/etc/default/grub
。sudo vim /etc/default/grub
找到
GRUB_CMDLINE_LINUX="XXX"
所在行,在最末尾添加idle=poll
内容。如果内核配置中已有其他的
idle=xxx
参数项,请删除。更新grub配置。
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
其他Linux发行版镜像可以执行以下命令更新grub配置。
Red Hat/SUSE系列
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Debian系列
sudo update-grub2
重启实例。
sudo reboot
切换路径。
cd /tmp
新建test_plx_lat.sh脚本。
vim test_plx_lat.sh
在test_plx_lat.sh脚本中添加以下内容。
DEV_NODE=$1 echo 2 > /sys/block/$DEV_NODE/queue/rq_affinity DEVICE=`ls -al /sys/block/$DEV_NODE/device | awk '{print $11}' | sed 's%../%%g'` INTERRUPT=`cat /proc/interrupts | grep $DEVICE | shuf -n 1 | awk '{print $1}' | sed 's/://g'` EFFECTIVE_SMP=`cat /proc/irq/$INTERRUPT/effective_affinity_list` fio --ioengine=libaio --runtime=30s --numjobs=1 --iodepth=1 --bs=4k --rw=randwrite --filename=/dev/$DEV_NODE --time_based=1 --direct=1 --name=test --group_reporting=1 --cpus_allowed_policy=split --cpus_allowed=$EFFECTIVE_SMP
关于脚本内容的详细说明,请参见如下test_plx_lat.sh脚本说明。
单击展开test_plx_lat.sh脚本说明
测试ESSD PL-X云盘的时延性能。
sudo sh test_plx_lat.sh your_device
请您根据实际情况,将
your_device
修改为ESSD PL-X云盘实际的设备名,例如vdc。出现
lat (usec): min=xx, max=xxxx, avg=xx.xx, stdev=x.xx
的结果时,表示ESSD PL-X云盘性能测试结束。
压测ESSD PL-X云盘IOPS
远程连接ECS实例。
具体操作,请参见使用VNC登录实例。
运行以下命令安装libaio和FIO。
sudo yum install libaio fio -y
其他Linux发行版镜像可以执行以下命令安装libaio和FIO。
Red Hat系列
sudo yum install libaio fio -y
Debian系列
sudo apt install -y libaio1 fio
SUSE系列
sudo zypper -n install fio libaio
切换路径。
cd /tmp
新建test_plx_iops.sh脚本。
vim test_plx_iops.sh
在test_plx_iops.sh脚本中添加以下内容。
DEV_NODE=$1 echo 0 > /sys/block/$DEV_NODE/queue/rq_affinity fio --ioengine=libaio --runtime=30s --numjobs=64 --iodepth=64 --bs=4k --rw=randwrite --filename=/dev/$DEV_NODE --time_based=1 --direct=1 --name=test --group_reporting=1
关于脚本内容的详细说明,请参见如下test_plx_iops.sh脚本说明。
单击展开test_plx_iops.sh脚本说明
测试ESSD PL-X云盘的IOPS性能。
sudo sh test_plx_iops.sh your_device
请您根据实际情况,将
your_device
修改为ESSD PL-X云盘实际的设备名,例如vdc。警告测试裸盘会破坏分区表和文件系统结构,请在测试前提前创建快照做好数据备份。具体操作,请参见创建快照。
强烈建议您不要将操作系统所在的云盘或者含有重要数据的云盘作为测试对象,建议您只在新购买的无数据的ECS实例上使用工具测试云盘性能,避免造成数据丢失。
出现
IOPS=***
的结果时,表示ESSD PL-X云盘性能测试结束。