EC2 上的 OpenLiteSpeed 伺服器在小型電子商務網站上逾時

EC2 上的 OpenLiteSpeed 伺服器在小型電子商務網站上逾時

希望你做得很好 - 我正在 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實例):

CPU利用率%

網路輸入+網路輸出

CPU積分餘額

到目前為止我嘗試過的:

  • 我嘗試將最大連接數和子進程數增加到 350,但超時問題仍然存在。
  • 我已將 php.ini 記憶體限制增加到 512mb,但沒有任何區別。
  • 嘗試將資料庫儲存從 30Gb 增加到 100Gb,但沒有成功。
  • 試著將 EC2 執行個體儲存從 30Gb 增加到 50Gb,但還是沒有成功。

需要問題/幫助

  • 根據我的設置,我應該尋找哪些指標(及其聚合)才能找出超時的根本原因? AWS 擁有如此之多的信息,以至於我對什麼可以真正起到推動作用感到困惑。
  • 我應該擴展我的 EC2 執行個體以提供更多 CPU 能力嗎? 0r 我應該擴展我的 RDS 實例嗎?或沒有?我的預算有限,所以這個選擇不太可行。
  • 我可以嘗試網頁伺服器上的任何配置嗎?如果有幫助的話我可以上傳我的conf檔。
  • 我是否應該將所有內容轉移到託管主機並從此過上幸福的生活?

先致謝

相關內容