一、前言

在ceph集群正式使用之前,需要对ceph集群做一次基准性能测试,检查当前环境下硬件(网络、磁盘)是否存在问题

二、基准测试

1、磁盘基准测试(可选)

1.1、清空缓存

echo 3 > /proc/sys/vm/drop_caches

1.2、硬盘测试

使用以下命令获取该节点上所有磁盘osd挂载路径,使用dd往osd挂载路径写入tmpfile测试磁盘性能

for i in `mount | grep osd | awk '{print $3}'`; do (dd if=/dev/zero of=$i/tmpfile bs=1M count=10240 oflag=direct &); done

1.2、删除数据

使用以下命令将上一步生成的测试数据删除掉

for i in `mount | grep osd | awk '{print $3}'`; do (rm -rf $i/tmpfile &); done

2、主机磁盘测试

2.1、测试由来

在以往性能测试过程中,出现过因服务器磁盘整体带宽受限,导致性能无法上去,故在基准性能测试之前,需要先针对服务器所有磁盘做一个测试,测试服务器磁盘最大可提供带宽性能
此处列举几个可能会影响到服务器磁盘带宽的因素:

  • 服务器面板驱动
  • 服务器sas线
    通常服务器sas卡到面板之间需要通过sas线连接,多盘位服务器有时会受限于sas线带宽,导致主机磁盘带宽无法上去,可通过增加sas线解决

2.1、测试模型

可参考以下测试参数,进行主机磁盘最大带宽测试

messagescan=no
hd=default,vdbench=/root/vdbench50407,user=root,shell=ssh 
hd=hd1,system=66.66.67.167
sd=sd1,lun=/dev/sda,host=hd1,openflags=o_direct,hitarea=0,range=(0,100),threads=2
sd=sd2,lun=/dev/sdb,host=hd1,openflags=o_direct,hitarea=0,range=(0,100),threads=2
sd=sd3,lun=/dev/sdc,host=hd1,openflags=o_direct,hitarea=0,range=(0,100),threads=2
sd=sd4,lun=/dev/sdd,host=hd1,openflags=o_direct,hitarea=0,range=(0,100),threads=2
sd=sd5,lun=/dev/sde,host=hd1,openflags=o_direct,hitarea=0,range=(0,100),threads=2
sd=sd6,lun=/dev/sdf,host=hd1,openflags=o_direct,hitarea=0,range=(0,100),threads=2
sd=sd7,lun=/dev/sdg,host=hd1,openflags=o_direct,hitarea=0,range=(0,100),threads=2
sd=sd8,lun=/dev/sdh,host=hd1,openflags=o_direct,hitarea=0,range=(0,100),threads=2
sd=sd9,lun=/dev/sdi,host=hd1,openflags=o_direct,hitarea=0,range=(0,100),threads=2
sd=sd10,lun=/dev/sdj,host=hd1,openflags=o_direct,hitarea=0,range=(0,100),threads=2
sd=sd11,lun=/dev/sdk,host=hd1,openflags=o_direct,hitarea=0,range=(0,100),threads=2
sd=sd12,lun=/dev/sdl,host=hd1,openflags=o_direct,hitarea=0,range=(0,100),threads=2
wd=wd1,sd=sd*,xfersize=(1048576,100),rdpct=0,seekpct=0
rd=run1,wd=wd1,iorate=max,elapsed=600,warmup=300

3、网络基准测试

3.1、测试方法

服务端运行以下命令:

iperf -s
  • -s 表示iperf服务端模式

客户端运行以下命令:

iperf -c {server-ip} -d -t 120 -i 10 -P 0
  • -c 表示iperf客户端模式,后接需要连接到的服务端IP地址
  • -d 表示进行双向测试,两个节点互为客户端和服务端
  • -t 表示测试时长,单位为s
  • -i 表示输出间隔,单位为s
  • -P 表示客户端与服务端连接的线程数,默认为1线程,当设置为0时,表示不限制并发线程数

3.2、注意事项

  • 网络基准测试时,需要测试几种组合,如集群节点<-->集群节点之间的网络测试、客户端节点-->集群节点之间的网络测试
  • 通常在组网配置时,ceph集群节点需要配置两个万兆网络(业务内外网),一个走集群网络(用于集群内部通讯、副本数据拷贝等),一个走业务网络(用于客户端共享协议传输数据到集群节点),将业务流量和集群流量通过不同网卡分流,以此达到网络最大性能