常用的OceanBase调优配置参数
内存相关参数:
- memory_limit:此参数用于设定OceanBase数据库实例可使用的最大内存量。适当配置该参数能防止因内存使用过量而引发的系统性能减退或内存不足问题。例如,若服务器内存总量为128GB,依据业务负载状况,可将其设置为约80GB,从而为操作系统及其他进程保留充足的内存资源。
- cache_warm_up_percentage:用于控制缓存预热的比例。在数据库启动或者数据加载阶段,适当提高这个参数可以加快数据缓存的预热速度,使得系统更快地达到高性能状态。取值范围是 0 - 100,例如设置为 50,表示会对 50% 的缓存数据进行预热。
存储相关参数:
- datafile_disk_percentage:它决定了存储数据文件在磁盘上占用的比例。当数据库存储的数据量不断增加时,合理设置这个参数可以确保磁盘空间得到有效利用,同时避免磁盘空间不足。比如,在一个 1TB 的磁盘分区中,设置该参数为 80%,可以为系统日志等其他文件留出一定的空间。
- compression_algorithm:OceanBase 支持多种数据压缩算法,如 zlib、snappy 等。通过选择合适的压缩算法,可以在数据存储量和性能之间取得平衡。例如,snappy 算法压缩速度快,但压缩比相对较低;zlib 算法压缩比高,但可能会对性能产生一定的影响。如果对存储成本比较敏感,且对性能影响可以接受,可以选择 zlib 算法。
事务相关参数:
- transaction_timeout:用于设置事务的超时时间。当一个事务执行时间超过这个设置值时,系统会自动回滚该事务。这有助于避免长时间运行的事务占用系统资源,导致其他事务等待。例如,将其设置为 60 秒,对于一些可能由于网络故障或者业务逻辑复杂导致的长时间事务,可以及时进行处理。
- max_transaction_size:限制单个事务的最大大小,包括事务涉及的数据量和操作数量。这可以防止过大的事务对系统资源造成过大的压力,保证系统的稳定性。例如,设置为 10MB,当一个事务涉及的数据量超过这个限制时,系统会拒绝执行该事务。
日志相关参数:
- redo_log_disk_quota:用于控制重做日志(redo log)在磁盘上占用的配额。重做日志对于数据的恢复和一致性至关重要,合理设置这个参数可以确保日志文件有足够的空间,同时避免日志文件占用过多磁盘空间。例如,在一个磁盘分区为 500GB 的环境中,设置该参数为 100GB。
- log_archive_dest:指定日志归档的目的地。适当的日志归档可以在数据恢复和审计等场景中发挥重要作用。可以将日志归档到本地磁盘的其他分区或者远程存储设备上,以增强数据的安全性和可恢复性。
网络相关参数:
- net_thread_count:这个参数决定了用于网络通信的线程数量。增加网络线程数量可以提高数据库在高并发网络请求下的处理能力,但也会增加系统的资源消耗。例如,在一个高并发的 OLTP(联机事务处理)场景中,根据服务器的 CPU 核心数,可以适当增加这个参数来提升网络响应速度。
- rpc_timeout:用于设置远程过程调用(RPC)的超时时间。在分布式数据库环境中,RPC 是不同节点之间通信的重要方式,合理设置超时时间可以避免长时间等待,提高系统的整体效率。例如,设置为 3 秒,当一次 RPC 调用超过 3 秒没有响应时,系统会认为该调用失败并进行相应的处理。
更多参数配置,可参考OceanBase最佳实践