
希望你做得很好 - 我正在 OpenLiteSpeed Web 伺服器上運行帶有 Woocommerce 的 Wordpress 網站,在大量使用 PHP 的情況下,該網站開始顯示逾時 504 錯誤。我將所有內容託管在 AWS 中,並且正在努力找出 504 錯誤的原因以及可以進行哪些改進來避免這些錯誤。以下是一些細節:
AWS 設定:
- Web 伺服器安裝在具有 Ubuntu 20.04 amd64 和 50Gb EBS 儲存(啟用 I/O 最佳化)的 t3.medium 實例中。目前正在使用約 10Gb。
- 運行 PHP 7.4 和
- 我使用兩種 CloudFront 發行版作為 CDN:一種用於伺服器映像(在 S3 中),另一種用於伺服器 CSS/JS 檔案。
- 我有一個 ELB 來管理 Web 伺服器的流量,空閒逾時設定為 300 秒。
- 我有一個運行Mariadb 10.5.13的db.t3.small RDS實例(100Gb gp2),資料庫大小約為1.5gGb。
- 我使用帶有三個cache.t3.micro 節點的Redis ElastiCache。
網站統計:
- 網站每週約有 1,000 次點擊。
- 大約有350個產品頁面和50個頁面。
- 頁面大小範圍從 500kb 到 13.5Mb。
有什麼問題?
- 當使用繁重的 PHP 功能時,例如上傳產品(並附加圖像)、上傳圖像、在短時間內多次刷新 OLS 快取(大約 3-4 次)或導航時,該網站會超時並拋出 504 錯誤該網站打開一堆產品頁面並將它們添加到購物車。
- EC2 CPUUtilization 顯示最大峰值為 99%,但網路頻寬似乎可以達到 2.0Gb 的最大峰值,且 CPU 積分保持穩定。
- 資料庫連線峰值為每分鐘 50 個,CPU 使用率在 20% 到 30% 之間波動。
- 突發信貸保持穩定。
- stderr.log 顯示許多「達到最大子程序限制:35,額外:0,目前:35,繁忙:35,請增加 LSAPI_CHILDREN。」。
截圖(EC2實例):
到目前為止我嘗試過的:
- 我嘗試將最大連接數和子進程數增加到 350,但超時問題仍然存在。
- 我已將 php.ini 記憶體限制增加到 512mb,但沒有任何區別。
- 嘗試將資料庫儲存從 30Gb 增加到 100Gb,但沒有成功。
- 試著將 EC2 執行個體儲存從 30Gb 增加到 50Gb,但還是沒有成功。
需要問題/幫助:
- 根據我的設置,我應該尋找哪些指標(及其聚合)才能找出超時的根本原因? AWS 擁有如此之多的信息,以至於我對什麼可以真正起到推動作用感到困惑。
- 我應該擴展我的 EC2 執行個體以提供更多 CPU 能力嗎? 0r 我應該擴展我的 RDS 實例嗎?或沒有?我的預算有限,所以這個選擇不太可行。
- 我可以嘗試網頁伺服器上的任何配置嗎?如果有幫助的話我可以上傳我的conf檔。
- 我是否應該將所有內容轉移到託管主機並從此過上幸福的生活?
先致謝