数据盘调优
通过安装并启用SPDK,可以显著提升数据盘的IO性能并降低延迟,进而提升MySQL数据库的性能。
- 安装SPDK。
git clone https://github.com/spdk/spdk -b v21.01.1 cd spdk git submodule update --init ./configure --with-shared --enable-debug --disable-tests --disable-unit-tests make -j`nproc` make -j`nproc` install ln -s `pwd`/build/bin/vhost /usr/bin/vhost ln -s `pwd`/scripts/rpc.py /usr/bin/rpc export LIBRARY_PATH=/usr/local/lib:/home/spdk/dpdk/build-tmp/lib:/home/spdk/dpdk/build/lib:${LIBRARY_PATH} export LD_LIBRARY_PATH=/usr/local/lib:/home/spdk/dpdk/build-tmp/lib:/home/spdk/dpdk/build/lib:${LD_LIBRARY_PATH}
- 启动vhost进程,并指定用于轮询的CPU编号。例如指定CPU编号8,9,10,11。
vhost -S /var/tmp -m [8,9,10,11] &
- 创建块设备和控制器。
- 创建一个AIO块设备。
rpc bdev_aio_create /dev/nvme0n1p5 aio_0 512
- /dev/nvme0n1p5为卷名,可以是QEMU的img文件或RBD设备等。
- aio_0为块设备的名称。
- 512为块大小。
- 创建一个vhost blk控制器。
rpc vhost_create_blk_controller vhost.0 aio_0
vhost.0为socket文件名称,该命令将生成一个位于“/var/tmp/vhost.0”的socket文件。
- 创建一个AIO块设备。
- 在虚拟机的XML配置文件中添加SPDK数据盘。
1 2 3 4 5 6 7
<disk type='vhostuser' device='disk' snapshot='no'> <driver name='qemu' type='raw' queues='8'/> <source type='unix' path='/var/tmp/vhost.0'> <reconnect enabled='yes' timeout='10'/> </source> <target dev='vdb' bus='virtio'/> </disk>
“queues”的值不能超过虚拟机CPU的数量,否则虚拟机将会无法启动。
至此,SPDK环境部署完成,并可在虚拟机中使用SPDK提供的数据盘。
父主题: MySQL性能调优