rook、ceph 和 RBD 性能不佳

rook、ceph 和 RBD 性能不佳

我在 4 个虚拟机上有一个 k8s 集群。1 个主服务器和 3 个工作服务器。在每个工作服务器上,我使用 rook 部署一个 ceph OSD。OSD 使用与虚拟机操作系统相同的磁盘。

VM 磁盘是远程的(底层基础设施再次是 Ceph 集群)。

这是虚拟机磁盘性能(三个虚拟机的性能都差不多):

$ dd if=/dev/zero of=testfile bs=1G count=1 oflag=direct
1+0 records in
1+0 records out
1073741824 bytes (1.1 GB) copied, 4.82804 s, 222 MB/s

空闲时的延迟(await)约为 8ms。

如果我在 K8S POD 内部挂载 RBD 卷,性能会非常差:

$ dd if=/dev/zero of=testfile bs=1G count=1 oflag=direct
1+0 records in
1+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 128.619 s, 8.3 MB/s 

在高负载(rbd 卷的实用率为 100%)期间,RBD 卷的延迟大于 30 秒。

我知道我的设置不是 ceph 推荐的,并且 dd 不是分析磁盘性能的最佳工具,但是在 VM 磁盘上使用 ceph 的代价仍然很大。

VM 操作系统是

CentOS 7.7.1908.
Kernel 3.10.0-1062.12.1.el7.x86_64

工作节点之间的网络带宽:

[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-10.00  sec  2.35 GBytes  2.02 Gbits/sec

网络延迟小于1毫秒。

我正在寻找一些提示来进一步解决问题并提高性能。

答案1

关于您的 CEPH 集群的信息还不够。但有些东西可以提高性能:

  • 有必要将日志放在单独的 SSD 上(NVMe 更好)。即使您有 SSD。
  • 使用10GbE网络,将集群与外部网络分开。这将改善网络延迟。
  • 不要使用 3 个副本卷。这是一个不错的功能,但它会使您的集群变慢。
  • 默认情况下,清理始终有效。有必要进行更改。最好在晚上进行清理。
  • 使用 BlueStore 作为 OSD 的格式。
  • 调整服务器以获得最佳性能。例如,CPU 调节器应为性能。

相关内容