deadlock_timeout

类型: integer
默认: 1000 (1s)
最低限度: 1 (1ms)
最大: 2147483647 (2147483647ms)
单元: milliseconds (ms)
上下文: superuser
重新开始: false

这是进行死锁检测之前在一个锁上等待的时间量。死锁检测相对昂贵,因此服务器不会在每次等待锁时都运行这个它。 我们乐观地假设在生产应用中死锁是不常出现的,并且只在开始检测死锁之前等待一会儿。增加这个值就减少了浪费在无用的死锁检测上的时间,但是减慢了报告真正死锁错误的速度。 如果指定值时没有单位,则以毫秒为单位。默认是 1 秒(1s),这可能是实际中你想要的最小值。 在一个高负载的服务器上,你可能需要增大它。这个值的理想设置应该超过你通常的事务时间,这样就可以减少在锁释放之前就开始死锁检查的机会。只有超级用户可以更改这个设置。

log_lock_waits被设置时,这个参数还可以决定发出关于锁等待的日志之前等待的时间量。如果你想调查锁延迟,你可能希望设置一个比正常的deadlock_timeout小的值。

建议 [EN]

Default is fine, except when you are troubleshooting/monitoring locks. In that case, you may want to lower it to as little as 50ms.

条评论