【 TiDB 使用环境】生产环境
【 TiDB 版本】v5.3.4
【复现路径】无
【遇到的问题:问题现象及影响】只有4台物理机,每台300G内存,混合部署了tidb,tikv,pd,给tidb-server设置的内存是64G,出现问题时,3个tidb-server几乎同时宕机,var/log/message里有oom-killer,但是tidb.log没有oom-killer日志。如何修改默认设置,让tidb-server在内存使用量达到 <实例内存> 限制的80%时就触发报警,记录 goroutinue 、heap 、running_sql等信息?
你不是找到需要修改的参数了吗 ? 还有什么问题吗
默认配置下,tidb-server 实例会在机器内存(机器内存是300G)使用达到总内存量的 80% 时打印报警日志,并记录相关日志文件。
我想让tidb-server 实例在使用达到“实例内存"(tidb-server设置的内存是64G)的 80% 时打印报警日志,并记录相关日志文件。请问有办法吗?
https://docs.pingcap.com/zh/tidb/v5.4/tidb-configuration-file#memory-usage-alarm-ratio-从-v409-版本开始引入
- 当内存阈值报警功能开启时,如果配置项
server-memory-quota未设置,则内存报警阈值为memory-usage-alarm-ratio * 系统内存大小;如果server-memory-quota被设置且大于 0,则内存报警阈值为memory-usage-alarm-ratio * server-memory-quota。
你先将tidb-server的server-memory-quota设置一下啊
如果 server-memory-quota 被设置且大于 0,则内存报警阈值为 memory-usage-alarm-ratio * server-memory-quota 。
那你现在应该就是这样啊,是没报警吗?
64G*0.8=51.2g内存 你设置成300的百分17 不就好了吗
请问server-memory-quota这个参数可以在5.3.4版本的生产环境中设置吗?有没有什么问题?
因为是混合部署的,不知道会不会由于tikv,或其他组件占用了内存,让tidb一直记录日志,和 goroutinue 、heap 、running_sql也不太好吧
官方文档有详细的说明,你看看
https://docs.pingcap.com/zh/tidb/v5.4/configure-memory-usage
mem-quota-query 参数,该参数用于限制单个查询的内存使用量。你可以根据实际情况调整该参数的值,以控制单个查询的内存占用。


