鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

Ceph配置调优

通过调整Ceph配置选项,最大化利用系统资源。

所有的Ceph配置参数都是通过修改“/etc/ceph/ceph.conf”实现的。具体配置及使能步骤如下:

  1. ceph1节点进入“/etc/ceph/”目录并编辑ceph.conf文件。
    1
    2
    cd /etc/ceph
    vi ceph.conf 
    
  2. 在ceph.conf文件添加如下配置。配置文件中的参数解释请参见表1 参数释义
      1
      2
      3
      4
      5
      6
      7
      8
      9
     10
     11
     12
     13
     14
     15
     16
     17
     18
     19
     20
     21
     22
     23
     24
     25
     26
     27
     28
     29
     30
     31
     32
     33
     34
     35
     36
     37
     38
     39
     40
     41
     42
     43
     44
     45
     46
     47
     48
     49
     50
     51
     52
     53
     54
     55
     56
     57
     58
     59
     60
     61
     62
     63
     64
     65
     66
     67
     68
     69
     70
     71
     72
     73
     74
     75
     76
     77
     78
     79
     80
     81
     82
     83
     84
     85
     86
     87
     88
     89
     90
     91
     92
     93
     94
     95
     96
     97
     98
     99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    [global]
    
    public_network = 192.168.3.0/24   #根据实际划分的网段进行调整
    cluster_network = 192.168.4.0/24  #根据实际划分的网段进行调整
    mon_max_pg_per_osd = 3000
    mon_max_pool_pg_num = 300000
    ms_bind_before_connect = true
    ms_dispatch_throttle_bytes = 2097152000
    osd_pool_default_min_size = 0
    osd_pool_default_pg_num = 1024
    osd_pool_default_pgp_num = 1024
    osd_pool_default_size = 3
    throttler_perf_counter = false
    bluefs_buffered_io=false
    
    osd_max_write_size = 256
    osd_enable_op_tracker = false
    
    rbd_cache = false
    
    [mon]
    mon_allow_pool_delete = true
    
    [osd]
    rocksdb_cache_index_and_filter_blocks = false
    rocksdb_cache_size = 2G
    osd_memory_cache_min = 3G
    osd_memory_base = 3G
    
    bluestore_rocksdb_options = use_direct_reads=true,use_direct_io_for_flush_and_compaction=true,compression=kNoCompression,min_write_buffer_number_to_merge=32,recycle_log_file_num=64,compaction_style=kCompactionStyleLevel,write_buffer_size=64M,target_file_size_base=64M,compaction_threads=32,max_bytes_for_level_multiplier=8,flusher_threads=8,level0_file_num_compaction_trigger=16,level0_slowdown_writes_trigger=36,level0_stop_writes_trigger=48,compaction_readahead_size=524288,max_bytes_for_level_base=536870912,enable_pipelined_write=false,max_background_jobs=16,max_background_flushes=8,max_background_compactions=16,max_write_buffer_number=8,soft_pending_compaction_bytes_limit=137438953472,hard_pending_compaction_bytes_limit=274877906944,delayed_write_rate=33554432
    osd_pg_object_context_cache_count = 256
    
    mon_osd_full_ratio = 0.97
    mon_osd_nearfull_ratio = 0.95
    osd_min_pg_log_entries = 10
    osd_max_pg_log_entries = 10
    
    bluestore_cache_meta_ratio = 0.49
    bluestore_cache_kv_ratio = 0.49
    bluestore_cache_size_ssd = 6G
    osd_memory_target = 10G
    bluestore_clone_cow = false
    
    [osd.0]
    osd_numa_node=0
    [osd.1]
    osd_numa_node=0
    [osd.2]
    osd_numa_node=0
    [osd.3]
    osd_numa_node=0
    [osd.4]
    osd_numa_node=0
    [osd.5]
    osd_numa_node=0
    [osd.6]
    osd_numa_node=1
    [osd.7]
    osd_numa_node=1
    [osd.8]
    osd_numa_node=1
    [osd.9]
    osd_numa_node=1
    [osd.10]
    osd_numa_node=1
    [osd.11]
    osd_numa_node=1
    [osd.12]
    osd_numa_node=2
    [osd.13]
    osd_numa_node=2
    [osd.14]
    osd_numa_node=2
    [osd.15]
    osd_numa_node=2
    [osd.16]
    osd_numa_node=2
    [osd.17]
    osd_numa_node=2
    [osd.18]
    osd_numa_node=3
    [osd.19]
    osd_numa_node=3
    [osd.20]
    osd_numa_node=3
    [osd.21]
    osd_numa_node=3
    [osd.22]
    osd_numa_node=3
    [osd.23]
    osd_numa_node=3
    [osd.24]
    osd_numa_node=0
    [osd.25]
    osd_numa_node=0
    [osd.26]
    osd_numa_node=0
    [osd.27]
    osd_numa_node=0
    [osd.28]
    osd_numa_node=0
    [osd.29]
    osd_numa_node=0
    [osd.30]
    osd_numa_node=1
    [osd.31]
    osd_numa_node=1
    [osd.32]
    osd_numa_node=1
    [osd.33]
    osd_numa_node=1
    [osd.34]
    osd_numa_node=1
    [osd.35]
    osd_numa_node=1
    [osd.36]
    osd_numa_node=2
    [osd.37]
    osd_numa_node=2
    [osd.38]
    osd_numa_node=2
    [osd.39]
    osd_numa_node=2
    [osd.40]
    osd_numa_node=2
    [osd.41]
    osd_numa_node=2
    [osd.42]
    osd_numa_node=3
    [osd.43]
    osd_numa_node=3
    [osd.44]
    osd_numa_node=3
    [osd.45]
    osd_numa_node=3
    [osd.46]
    osd_numa_node=3
    [osd.47]
    osd_numa_node=3
    
    [osd.48]
    osd_numa_node=0
    [osd.49]
    osd_numa_node=0
    [osd.50]
    osd_numa_node=0
    [osd.51]
    osd_numa_node=0
    [osd.52]
    osd_numa_node=0
    [osd.53]
    osd_numa_node=0
    [osd.54]
    osd_numa_node=1
    [osd.55]
    osd_numa_node=1
    [osd.56]
    osd_numa_node=1
    [osd.57]
    osd_numa_node=1
    [osd.58]
    osd_numa_node=1
    [osd.59]
    osd_numa_node=1
    [osd.60]
    osd_numa_node=2
    [osd.61]
    osd_numa_node=2
    [osd.62]
    osd_numa_node=2
    [osd.63]
    osd_numa_node=2
    [osd.64]
    osd_numa_node=2
    [osd.65]
    osd_numa_node=2
    [osd.66]
    osd_numa_node=3
    [osd.67]
    osd_numa_node=3
    [osd.68]
    osd_numa_node=3
    [osd.69]
    osd_numa_node=3
    [osd.70]
    osd_numa_node=3
    [osd.71]
    osd_numa_node=3
    

    配置文件中的osd_numa_node=0表示osd0进程绑在NUMA0上,本文档依据鲲鹏920 7260处理器进行调优,该CPU型号有4个NUMA,每台节点部署24个OSD,为了将osd进程均匀绑定在CPU核心上,充分发挥硬件性能,每连续的6个OSD绑在同一个NUMA上,若使用的CPU只有2个NUMA,则每连续的12个OSD绑在同一个NUMA上,其它情况以此类推。具体查看CPU NUMA数量的命令为:lscpu

  3. 执行以下命令将配置同步到其他节点。
    1
    ceph-deploy --overwrite-conf admin ceph1 ceph2 ceph3
    
  4. 执行以下命令,在所有服务端节点重启OSD进程,使配置生效。
    1
    systemctl restart ceph-osd.target
    
表1 参数释义

参数名称

参数含义

最优配置值

ms_bind_before_connect

用于控制在连接过程中绑定的行为。

true

throttler_perf_counter

性能监控的选项,对在OSD请求处理过程中使用的限速器的性能进行监控和统计。

false

bluefs_buffered_io

缓冲I/O配置项。

false

osd_max_write_size

配置OSD写入操作时的最大数据块大小。

256

osd_enable_op_tracker

用于增强OSD监控和性能分析的配置选项。

false

rbd_cache

RBD缓存配置项。

false

rocksdb_cache_index_and_filter_blocks

配置是否在块缓存中缓存索引和过滤器。

false

rocksdb_cache_size

配置RocksDB内部缓存的大小。

2GB

osd_memory_cache_min

当启用tcmalloc和缓存自动调优时,设置用于缓存的最小内存量。

3GB

osd_memory_base

当启用tcmalloc和缓存自动调优时,估算OSD所需的最小内存量。

3GB

bluestore_rocksdb_options

RocksDB相关的配置选项。

use_direct_reads=true,use_direct_io_for_flush_and_compaction=true,compression=kNoCompression,min_write_buffer_number_to_merge=32,recycle_log_file_num=64,compaction_style=kCompactionStyleLevel,write_buffer_size=64M,target_file_size_base=64M,compaction_threads=32,max_bytes_for_level_multiplier=8,flusher_threads=8,level0_file_num_compaction_trigger=16,level0_slowdown_writes_trigger=36,level0_stop_writes_trigger=48,compaction_readahead_size=524288,max_bytes_for_level_base=536870912,enable_pipelined_write=false,max_background_jobs=16,max_background_flushes=8,max_background_compactions=16,max_write_buffer_number=8,soft_pending_compaction_bytes_limit=137438953472,hard_pending_compaction_bytes_limit=274877906944,delayed_write_rate=33554432

osd_pg_object_context_cache_count

OSD对象上下文缓存条目数。

256

mon_osd_full_ratio

当集群容量达到mon_osd_full_ratio的值时,集群将停止写入,但允许读取,集群会进入到HEALTH_ERR状态。

0.97

mon_osd_nearfull_ratio

当集群容量达到mon_osd_nearfull_ratio的值时,集群会进入HEALTH_WARN状态。

0.95

osd_min_pg_log_entries

PG日志中维护的最小条目数。

10

osd_max_pg_log_entries

PG日志中维护的最大条目数。

10

bluestore_cache_meta_ratio

metadata占用缓存的比例。

0.49

bluestore_cache_kv_ratio

rocksdb database cache占用缓存的比例。

0.49

bluestore_cache_size_ssd

bluestore缓存容量。

6GB

osd_memory_target

OSD最大内存使用限制。

10GB

bluestore_clone_cow

写拷贝模式,写的性能会较差,调整为写重定向。

false