PostgreSQL的內存利用率高時如何檢查


如果內存利用率很高,那么首先應該確認哪個進程產生了內存消耗。

 

使用linux的top工具

找出哪些或哪個進程消耗了大量的內存。然后再檢查進程在執行什么操作!

 

結合postgresql和系統的日志

比如,如果內存不夠,可能會發現類似日志信息:

Resource temporarily unavailable
 
Out of memory: Kill process 1161 (postgres) score 366 or sacrifice child

  

或者可能會發現死鎖的信息:

FATAL:  password authentication failed for user "username"
 
ERROR:  duplicate key value violates unique constraint "sbtest21_pkey"
 
ERROR:  deadlock detected

  

使用pg_top

 

如果知道PostgreSQL進程有很高的內存利用率,但是日志沒有幫助,那么可以使用另一個工具pg_top。這個工具類似於linux工具,但它是專門為PostgreSQL而設計的。因此,使用它,將獲得關於運行數據庫的內容的更詳細信息,甚至可以終止查詢,或者在檢測到某些錯誤時運行explain作業。

 

但是,如果無法檢測到任何錯誤,並且數據庫仍然使用大量RAM,會發生什么情況呢?

可能需要檢查數據庫配置。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM