首批通过分布式安全可靠测评,为关键业务系统打造
日志稳定性
更新时间:2026-05-29 12:47:15
同步打印日志的方案,指工作线程同时负责日志内容封装和写文件操作,除了对程序性能的损耗,某些 IO 异常可能导致写日志阻塞进而 SQL RT 抖动,甚至造成 OceanBase 数据库进程状态异常。OceanBase 数据库引入了异步打印日志的解决方案。工作线程仅负责日志内容的封装, 写文件操作交给单独线程负责,从而提升程序性能和系统稳定性。通过集群配置项 enable_async_syslog 控制是否开启异步日志打印功能,默认开启。
注意
出于稳定性考虑建议开启异步日志。但是开启异步日志后,在 OBServer 异常退出的情况下,会有最后一小段日志没来得及刷盘而丢失,所以在测试环境中建议关闭异步日志。
系统异常情况下,OceanBase 数据库会打印大量日志。为了保留更长时间的日志以便排查问题,OceanBase 数据库支持日志限流功能。通过集群配置项 syslog_io_bandwidth_limit 控制日志打印速率,默认值为 30MB/秒。发生日志限流时会随机丢弃日志,同时打印 REACH SYSLOG RATE LIMIT 的 INFO 日志,ERROR 级别的日志不会被限流。
注意
虽然有异步日志打印方案,但依然会有 CPU 损耗。某些极致性能场景下(例如大促活动)可以将日志级别设置为 ERROR 以减少日志量。