.

iT邦幫忙

1

<已解決>在 VPS 佈署 API、PostgreSQL Container 遇到問題

  • 分享至 

  • xImage

大家好,最近想嘗試將前、後端與資料庫佈署到 Vultr VPS

前端的部分是用 React 框架完成的,使用 nginx 服務目前可以正常運作。後端使用 nodeJS、資料庫使用 PostgreSQL 並以 docker 做部署。

剛開始佈署到 VPS 都可以正常運作,API 可以正常觸發並調用資料庫內容。但每隔一段時間 API 服務就會掛掉。使用docker stats會發現 Postgres Container 的 CPU 突然變成99%,然後 API 服務就掛了。

使用docker logs furniture-postgres發現錯誤 server process (PID 3948334) was terminated by signal 9: Killed 初步判斷為內存不足所致。

因為這個緣故,我有調整過一次 VPS 的規格
原始規格:1 vCPU, 1024 MB RAM, 25 GB NVMe, 2.00 TB Transfer
調整規格:1 vCPU, 2048 MB RAM, 50 GB NVMe, 3.00 TB Transfer

目前做過的嘗試

  1. PostgreSQL AutoVacuum:定期執行自動清理回收已刪除的資料、更新統計資訊,以保持效能穩定。若資料表更新頻繁,AutoVacuum 可能會佔用大量 CPU。
    參考 chatGPT 手動設定 postgresql.conf
  • autovacuum_vacuum_cost_delay = 2ms => 10ms # 減少影響
  • autovacuum_vacuum_cost_limit = -1 => 500 # 增加清理效率
  1. 調整其他參數
    參考 chatGPT 手動設定 postgresql.conf
    shared_buffers = 64MB # 減少到最小值
    work_mem = 1MB # 每個查詢內存減少
    effective_cache_size = 128MB # 適當調整
    max_connections = 10 # 限制並發連接數

想詢問 PostgreSQL 一直故障的原因是否為 VPS 規格太低,或可能有其他問題,謝謝

.

尚未有邦友回答

立即登入回答