其他分享
首页 > 其他分享> > Ceph集群性能优化介绍

Ceph集群性能优化介绍

作者:互联网

1.集群硬件配置

典型硬件资源配置建议:

组件 CPU 内存 网络 存储空间
Monitor 1vCore 2GB 1x 1GbE+ NICs 单个Mon 10GB+
OSD 1vCore BlueStore后端,单个OSD 至少3 GB。裸容量每增加1 TB,则内存相应增加1 GB 1x 1GbE+ NICs (建议10GbE+) 一个OSD 对应一块独立的硬盘

对于采用的BlueStore的Ceph,将SSD 用在合适的地方一般可以显著提升性能:

2.常见性能影响因素

集群性能评估

根据采用的硬件和集群规模,应当对集群有个大致的性能估算。集群性能影响因素主要有:硬盘(单个硬盘的性能和硬盘总数)、网络性能、内存和CPU。其中前两个是估算集群整体性能的主要因素,而根据场景,性能主要是IOPS和带宽。
一般:

集群读取性能:W*n*μ,无论在FileStore还是BlueStore下
其中,
W: 单块裸盘读带宽
n: OSD数量
μ: 损耗系数 一般为0.7~0.8
集群写入性能:[(W*n)/WAF]*μ
W: 单块裸盘写入带宽
n: OSD数量
WAF: 写放大系数
μ: 损耗系数
X: 写入数据块大小(KiB)
N: 多副本Size大小
K: 纠删码K值
M: 纠删码M值
FileStore 5: 5KiB, FileStore中transaction元数据的数据量大小(推测值)
BlueStore 5: 5KiB, BlueStore中RocksDB的WAL数据大小(推测值)
BlueStore 20: 20KiB, BlueStore小文件写入时产生的Zero-filled数据块大小

经过对集群的性能评估,结合主要的影响因素,试着找出性能瓶颈的大方向。

常见性能优化点

排除硬件瓶颈的可能,则可以从常见的几项对照排查修改。

3.使用Cache-tiering

使用缓存分层,可以根据需求在热层和冷层之间自动迁移数据,从而提高群集的性能。
采用的cache-tiering的前提是要搞清业务场景,因为cache-tiering 是工作负载相关的,不合适的场景匹配不合适的缓存模式(cache mode)反而会让整体性能下降。

cache-tiering 配置流程

首先,除storage pool 外,需要创建一个全SSD 的cache pool(通过修改 crushmap)。
根据实际场景:

必要操作步骤:
1)关联cache pool 和后端存储池:ceph osd tier add

2)设置cache-mode:ceph osd tier cache-mode writeback

3)将原storage pool的流量指向cache pool:ceph osd tier set-overlay

4)必要的缓存阈值设置,所有的请求在达到target_max_bytes 或target_max_objects 设定值时会被阻塞

ceph osd pool set target_max_bytes {#bytes}
ceph osd pool set target_max_objects {#objects}

4.Damons 相关配置优化

常见配置优化项及建议值,根据实际场景可再做调整。
默认应将RGW Cache 和RBD cache打开。

OSD

osd_scrub_begin_hour = 1 #根据业务实际设置在非业务时间scrub
osd_scrub_end_hour = 5
osd_recovery_op_priority = 3
osd_client_op_priority = 63
osd_recovery_max_active = 10
osd_recovery_sleep = 0
osd_max_backfills = 10

RGW(对象存储)

rgw_cache_enabled = true # 开启RGW cache
rgw_thread_pool_size = 2000
rgw_cache_lru_size = 20000
rgw_num_rados_handles = 128

RBD(块存储)

rbd_cache_enabled = true # 开启RBD cache
rbd_cache_size = 268435456
rbd_cache_max_dirty = 134217728
rbd_cache_max_dirty_age = 5

标签:性能,cache,osd,Ceph,集群,tier,优化,OSD,pool
来源: https://www.cnblogs.com/dengchj/p/13096320.html