Glusterfs是一款分布式文件系统,相对配置简单,高性能,无单点故障,适合作为基础服务打包到产品或系统中,提供文件系统服务。
本文将进行Glusterfs性能测试的方法介绍,只介绍方法,环境不同结果不同,参考对比还需要在实际设备上进行(•̀⌄•́)
—— By Jihan
Glusterfs官方文档
Glusterfs-github
序
本文只大致介绍性能测试流程和测试方法,作为参考。
介绍的测试命令,都是基于Linux
性能测试目的
性能测试的目的都是在一定的硬件设备上,测试某系列业务能够达到的最高性能,其目的有二:
- 对自己的产品最高性能有个底
- 对产品进行性能优化时有个方向
性能测试前
因此我们在做性能测试前,需要明确:
- 我们能接受的最低性能是多少(决定后续继续优化,决定硬件平台性能)
- 硬件平台基础配置,硬件平台准备
- 测试涵盖的范围
性能测试步骤
在明确前提后,我们要做的:
- 确定硬件平台的基础性能(IO密集型产品,就必须确定平台的IO基准性能,CPU密集型,就确定CPU的基准性能,等等),并且确保硬件平台的性能正常。
- 根据测试范围,对产品进行性能测试(测试过程中不能有其他繁忙的进程影响)
- 对基准测试结果和产品性能测试结果进行记录
- 根据结果进行分析,产品瓶颈点位于何处,如果需要提升性能,应从何处下手
Glusterfs性能测试方法
基准测试和测试Glusterfs时,需要保持一致的测试方法。
大文件IO吞吐测试
吞吐测试,主要在数据量,一般用dd
命令进行测试。比如写入测试:
time dd if=/dev/zero of=/mnt/gfs/ptest/largefile bs=16G count=6 oflag=direct
工作负载大文件测试
工作负载大文件,可能大小不一,多个文件,使用dd就不是那么适合,我们选择使用iozone
进行测试(参考)。比如100M-4G的通用测试:
time iozone -a -n 100M -g 4g -i 0 -i 1 -f /mnt/gfs/iozone -Rb ./normal_iozone.xls
工作负载小文件测试
小文件测试,则需要大量小文件进行读写操作,这里使用smallfile
进行压测(参考),比如测试1k-64k大小的文件,写入81920小文件性能:
./smallfile_cli.py --operation create --threads 8 --file-size 16 --files 10240 --file-size-distribution exponential --top /mnt/gfs/smallfiles/
其他
当然还有其他的场景,需要测试对性能的影响,比如:
- Glusterfs扩容时对性能影响
- 单节点故障时对性能影响
- 节点重启恢复时对性能影响
- 多节点读写性能
- ……
但是使用的测试工具基本基于上面所述。
总结
至此,glusterfs的性能测试方法就介绍完了,工具的使用参考源于官网的性能测试说明
参考
https://github.com/gluster/gluster-containers
https://docs.gluster.org/en/latest/Administrator-Guide/Performance-Testing/
系列文章
glusterfs系列-初探
glusterfs系列-环境搭建
glusterfs系列-功能测试
glusterfs系列-性能测试方法