「Ceph」- Benchmark

  CREATED BY JENKINSBOT

内容简介

本文将介绍如何对Ceph集群进行基准测试。

基准测试目标

任何事情都有一个目标,无论做什么,都不能偏离这个目标。

在这里,我们的目的是清除掌握当前Ceph集群的吞吐性能。

获取基础设施性能

基准测试,实际上是一种比较。如果想要知道Ceph Cluster性能,那首先要知道可能的集群最大性能。而最大性能不可能超过基础设施的性能。需要获取两个基础设施的指标:磁盘;网络。

磁盘性能

简单进行性能测试,可以直接使用dd(1)命令:

#!/bin/sh

dd if=/dev/zero of=here bs=1G count=1 oflag=direct

# oflag=direct:跳过磁盘页缓存

注意,需要对在集群中的每个用于Ceph存储的块设备进行测试,并记录结果。

网络吞吐

网络吞吐是另外一个重要的指标。可以使用iperf进行测试,它通过创建服务端/客户端连接进行TCP与UDP的吞吐测试。

使用方法也比较简单:需要两台机器,分别是Client与Server:

#!/bin/sh

# 在Server上
iperf -s

# 在Client上
iperf -c 'server ip address'

此时iperf -c 'server ip address‘会显示网络最大吞吐。

# 总结

至此,你已经知道了一些基线,可以开始进行Ceph集群测试,以检查集群是否具有相近的性能。

基准测试可以在不同层级执行:

	存储集群自身的底层基准测试;
	关键指标的上层基准测试,比如块存储、对象网关等等;

本文将涵盖这两部分的内容。

丢弃缓存

注意,在开始进行测试之前,需要先丢弃缓存:

#!/bin/sh

echo 3 | sudo tee /proc/sys/vm/drop_caches && sudo sync

对存储集群进行测试

对块设备进行测试

对对象网关进行测试

最终结论

参考文献

BENCHMARK CEPH CLUSTER PERFORMANCE