Postgresql

在 Postgres 上啟用“log_lock_waits”的性能成本是多少?

  • September 30, 2019

我試圖了解log_lock_waits在 Postgres 上啟用的性能成本是多少。

根據本文件,同時log_lock_waits = on

deadlock_timeout控制當會話等待時間超過獲取鎖時是否生成日誌消息。這對於確定鎖定等待是否導致性能不佳很有用。預設值為off. 只有超級使用者可以更改此設置。

但它並沒有說明它對性能的影響有多大,而且我在其他任何地方都找不到。

這基本上是免費的,您應該在所有數據庫中啟用它,除非工作負載被設計為定期進行長時間的鎖定等待(這將是一個設計錯誤)。

這些錯誤消息是由死鎖檢測器編寫的,它執行起來很昂貴,這就是 PostgreSQL 不執行它的原因,除非有人必須等待deadlock_timeout幾秒鐘才能獲得鎖。1 秒非常長,因此通常不會發生這種情況(數據庫事務應該更短)。

但是死鎖檢測器無論如何都必須執行,而這些日誌消息只是您免費獲得的副作用。

引用自:https://dba.stackexchange.com/questions/249901