glusterfs系列-性能测试方法

Glusterfs是一款分布式文件系统,相对配置简单,高性能,无单点故障,适合作为基础服务打包到产品或系统中,提供文件系统服务。
本文将进行Glusterfs性能测试的方法介绍,只介绍方法,环境不同结果不同,参考对比还需要在实际设备上进行(•̀⌄•́)
                              —— By Jihan


Glusterfs官方文档
Glusterfs-github

本文只大致介绍性能测试流程和测试方法,作为参考。
介绍的测试命令,都是基于Linux

性能测试目的

性能测试的目的都是在一定的硬件设备上,测试某系列业务能够达到的最高性能,其目的有二:

  1. 对自己的产品最高性能有个底
  2. 对产品进行性能优化时有个方向

性能测试前

因此我们在做性能测试前,需要明确:

  1. 我们能接受的最低性能是多少(决定后续继续优化,决定硬件平台性能)
  2. 硬件平台基础配置,硬件平台准备
  3. 测试涵盖的范围

性能测试步骤

在明确前提后,我们要做的:

  1. 确定硬件平台的基础性能(IO密集型产品,就必须确定平台的IO基准性能,CPU密集型,就确定CPU的基准性能,等等),并且确保硬件平台的性能正常。
  2. 根据测试范围,对产品进行性能测试(测试过程中不能有其他繁忙的进程影响)
  3. 对基准测试结果和产品性能测试结果进行记录
  4. 根据结果进行分析,产品瓶颈点位于何处,如果需要提升性能,应从何处下手

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/

其他

当然还有其他的场景,需要测试对性能的影响,比如:

  1. Glusterfs扩容时对性能影响
  2. 单节点故障时对性能影响
  3. 节点重启恢复时对性能影响
  4. 多节点读写性能
  5. ……
    但是使用的测试工具基本基于上面所述。

总结

至此,glusterfs的性能测试方法就介绍完了,工具的使用参考源于官网的性能测试说明

参考

https://github.com/gluster/gluster-containers
https://docs.gluster.org/en/latest/Administrator-Guide/Performance-Testing/

系列文章

glusterfs系列-初探
glusterfs系列-环境搭建
glusterfs系列-功能测试
glusterfs系列-性能测试方法

-------------本文结束感谢您的阅读-------------