全部产品
云市场

系统配置管理

更新时间:2019-09-17 14:56:42

系统配置 zone_merge_concurrency

在开启轮转合并(enable_merge_by_turn = true)的情况下,轮转合并的策略会配合zone_merge_concurrency来进行调度。

RS在调度合并的时候满足1个规则:相同region下面zone类型相同并且有相同副本的zone不会一起合并,同时优先调度合并时间较长的zone开始合并;具体实现根据用户设置的zone_merge_concurrency的值,RS采用两种不同的策略;

  1. zone_merge_concurrency = 0

首先,RS按照上一轮合并时间长短进行排序, RS遵守同一个region下面zone类型相同并且有相同副本的zone不一起合并的准则,优先从合并时间长的zone开始调度,并且不对并发度进行控制,只要两个zone不在同一个region下,或者没有相同的副本就可以将这个两个zone的合并并发起来;最好的情况下,所有zone都不在一个region下,那么只要一轮调度所有的zone都会开始合并; 这个场景和1.4其他版本的实现是一样的;

  1. zone_merge_concurrency > 0

首先,RS根据上一轮合并的合并时长对zone进行排序,优先从合并时间长的zone开始检查,选择与当前正在合并的zone不在同一个region下的zone或者在同一个region但是zone类型不一致或者没有相同副本的zone进行决策,如果没有超过最大并发度的话,就可以调度该zone进行合并;如果等于最大并发度的话,则停止本地检查调度过程;

系统配置 major_freeze_duty_time

该系统配置为每天定时执行升级主版本号的冻结操作的时间,取值范围:[00:00-24:00]。由于OceanBase集群每天冻结合并会占用一定的系统资源(CPU、IO等),所以根据业务类型特点、每日内存增量的数据量不同,该时间一般配置为业务低峰期的时间。

比如交易流水型业务,该参数配置为02:00;比如夜间零点跑批的业务,该参数可以配置为05:00。

系统配置 major_freeze_trigger_percentage

该配置项用来配置整个集群major freeze触法阈值。

计算方法: major_freeze_trigger_percent =major_freeze触发阈值 /memstore的容量,其中,memstore的容量,通过配置项memstore_lmt_percent计算所得。 计算公式为: memstore_lmt_percent=memstore_limit/min_memory。

由于OceanBase是准内存型数据库,如果内存写满而未能得到及时释放,则数据库无法提供正常服务;同时,如果通过major freeze释放内存过于频繁,也会影响整个系统的性能表现,所以该参数应该结合服务器实际内存大小,以及业务实际写入速度等类型特点,进行合理的配置。

系统配置 minor_freeze_times

该参数控制自动触发的转储次数,即当触发几次minor freeze后会触发major freeze,但如果major freeze触发失败,仍然会继续触发minor freeze尽量释放内存。

  1. minor_freeze_times=0

该参数设为0表示关闭转储功能。

实际中,如果两次major freeze之间发生转储次数过多,会影响数据库的实际性能,所以,该参数应该与业务实际特点相结合,进行合理配置。

系统配置 memory_limit_percentage

该参数配置表示OBServer用于存放增删改的数据的内存容量,占整个内存资源的百分比。由于OceanBase是准内存型数据库,如果内存写满而未能得到及时释放,则数据库无法提供正常服务。所以该参数应该结合服务器实际内存大小,以及业务类型特点,进行合理的配置。

系统配置 trace_log_slow_query_watermark

该系统配置参数,用来配置打印trace log慢查询控制阈值,取值范围:[1ms,+∞),会根据实际业务的sql执行特点来配置,如果业务sql执行速度很快,慢查询比较少,该参数可以配置成100ms~1s,否则可以配置的大一些。

如果不希望OceanBase打印慢查询相关的日志,可以将该参数设大,比如’50s’。

系统配置 max_syslog_file_count

该配置参数用于指定每个OBServer最多同时存在多少个日志文件,旧的日志文件会自动删除,每个日志文件占用256M空间。

该参数的配置,应与安装OceanBase的系统home盘的实际容量大小相匹配,注意,当该值设为0时,表示日志文件不进行自动删除。

系统配置 large_query_threshold

这个参数用于定义当前OceanBase集群的大查询阈值,sql请求的预计执行时间大于该阈值,请求会被当成大查询进行调度,该参数需要结合业务特点进行调整。

如果该阈值设置的太小,大部分请求都被当成大查询进行调度,从而影响整个系统的RT。

系统配置 large_query_worker_percentage

结合large_query_threshold系统配置一起使用,large_query_worker_percentage用于定义用作大查询处理的工作线程的百分比,同样要结合业务实际特点,进行合理的配置。

比如该参数设置为30时,OceanBase集群会使用30%的工作线程用作大查询的处理。对于OLTP场景的话,为保证响应,可以把该参数适当调低。