Centos

負載平均峰值導致 Web 應用程序的響應非常慢

  • August 21, 2015

我們在 Azure 中有一個 D11(2 核,14GB 記憶體)大小的 vm 來託管我們公司的新 web erp 系統,該系統由安裝在 centos 7 上的 jboss 和 postgresql 組成,只有 14 個使用者同時登錄。

有時我們會遇到響應緩慢的情況,使用者需要等待一分鐘或有時幾分鐘才能載入頁面。使用 free -h 檢查記憶體,有超過 8GB 的​​可用空間,檢查 azure 門戶中的 CPU 使用率始終低於 10%。然而,在延遲響應期間平均負載增加。

當平均負載低於 1.0 時,Web 應用程序響應很快,當平均負載高於 1.0 時變得非常無響應。我檢查了 iotop 並意識到在高 postgresql 更新和送出期間通常會出現無響應的 Web 應用程序。我可以知道 IO> 下 99.99% 對於 Postgres 的含義是什麼: jboss wsemp 127.0.0.1(40291) COMMIT 嗎?這是瓶頸發生的地方嗎?另一個引起我注意的 99.99% 是 Postgres:檢查點程序 i.imgur.com/XINJhwN.png

這聽起來很容易成為檢查點活動,是的。配置 PostgreSQL 以執行傳播檢查點。看:

確保它checkpoint_segments對於您的工作負載足夠高,並設置checkpoint_completion_target為 0.8 之類的值,以鼓勵儘早完成大部分檢查點工作。這將通過減少可以完成的寫入組合量來降低整體性能,但會平滑活動以減少停頓。

引用自:https://serverfault.com/questions/715760