Postgresql
Spiky COMMIT 導致 Postgres 8.4 的性能下降
我們剛剛在我們的 Web 應用程序上安裝了性能監控,我們看到來自 Postgres 8.4 伺服器的響應時間出現了尖峰模式。峰值對應於我們的網路應用程序的顯著放緩。時間似乎主要在“Postgres commit”中佔用:
我們在帶有 EBS 的 Amazon EC2 c1.xlarge 實例上自託管 Ubuntu 10.04 上的 Postgres 8.4.3,基本上具有庫存設置。是的,我知道 EBS 上的 Postgres 可能不是最好的設置。我們計劃在今年晚些時候在 RDS 上遷移到更新的 Postgres DB。
與此同時,有什麼明顯的東西我應該看一下可以馴服這個尖刺的模式嗎?
很難說出你的圖表到底在說什麼。但是
commit
設計得很慢。預設情況下,Postgres在返回之前等待更改寫入磁碟commit
。您可以
commit
使用此選項在將更改寫入磁碟之前完成:synchronous_commit = off
這肯定有助於分散
commit
更多時間所需的磁碟 I/O。缺點是伺服器中斷可能導致已完成的事務失去。