我试图了解在Postgres上启用log_lock_waits
的性能成本是多少。
根据这个文档,而log_lock_waits = on
:
控制会话等待时间超过
deadlock_timeout
以获取锁时是否生成日志消息。这对于确定锁等待是否导致性能低下很有用。默认情况是off
。只有超级用户才能更改此设置。
但它并没有说明它对性能的影响有多大,我在其他地方也找不到。
发布于 2019-09-30 06:44:17
这基本上是免费的,您应该在所有数据库中启用它,除非工作负载被设计为定期有长锁等待(这将是一个设计错误)。
这些错误消息是由死锁检测器编写的,运行起来代价很高,这就是为什么PostgreSQL不运行它,除非有人不得不等待deadlock_timeout
秒才能锁定。1秒很长,因此不应该正常发生(数据库事务应该短得多)。
但是死锁检测器无论如何都要运行,而这些日志消息只是你免费获得的一个副作用。
https://dba.stackexchange.com/questions/249901
复制相似问题