Ceph配置调优
通过调整Ceph配置选项,最大化利用系统资源。
所有的Ceph配置参数都是通过修改“/etc/ceph/ceph.conf”实现的。具体配置及使能步骤如下:
- ceph1节点进入“/etc/ceph/”目录并编辑ceph.conf文件。
1 2
cd /etc/ceph vi ceph.conf
- 在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。
- 执行以下命令将配置同步到其他节点。
1
ceph-deploy --overwrite-conf admin ceph1 ceph2 ceph3
- 执行以下命令,在所有服务端节点重启OSD进程,使配置生效。
1
systemctl restart ceph-osd.target
参数名称 |
参数含义 |
最优配置值 |
---|---|---|
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 |