WordPress 問題解說:在虛擬主機上,只要一段時間網站就變很慢

原問題為『不知道有沒有人遇過在虛擬主機上,只要一段時間就變很慢,但從GA上看到的使用者只有幾個人,必須刪除mysql的user重新建立新的user連線才恢復正常,請問這是什麼原因造成的呢?要如何排除?』

首先要了解虛擬主機的種類

  • VirtualHost 型。通常在便宜的主機上。該主機所有資源皆共用。CPU/RAM/SSD/網路/DB 任何一個網站有超大的使用量時皆會影響其它人的網站。
  • VPC 共享型。也是出現在較便宜的主機上。基本上 CPU/RAM 為共享。也會因同台主機的其它 VPC 的使用狀況而『被』影響。
  • VPC 專用型。價格較貴。但所有資源會被獨立分配。較不會有『被』同台主機上的 VPC 所影響。

問題解析

  • GA4 數字少
  • 清掉 mysql 上的連線可緩解
  • 都是發生在高併發時

其它人回應

PHP設定不正確或是網站有錯誤有可能導致記憶體無法釋放,長期下來就會累積直到滿了

基本上這是亂說。主機的記憶體滿了一進後台就會噴 500 錯誤。不會讓你有變慢的感覺

可能是你有舊的連接池沒釋放?

WordPress + MySQL 不會有連接池(Connection Pool)?這也是亂說。MySQL 可設定 max connections 但沒有 Connection Pool 這功能。我猜回答的人沒弄清楚兩者之差。

個人說明

  • GA4 數字少 表示活人上線少很。但不代表沒機器人/AI爬蟲/漏洞掃描機器人 這些非人的行為仍會造成或建立新的連線。
  • 清掉 mysql 上的連線可緩解。表示連線可能真的爆了。MySQL default 都有設定 100 的連線。一個網站要有 100 個同時連線其實算高流量了。除非那台主機真的有夠慢。不能依我管理的經驗 100 個最大連線其實都可撐 GA 30 分數字上萬都都不是問題。
  • 都是發生在高併發時。比較有可能是資料庫問題。如果是 php-fpm 問題,在連線時 php-fpm 就會噴 500 錯誤。而不是等待資料庫回應。

結論

由於發問者的資訊並不夠多讓我足以下問題點。不過仍給了可能的方向。其實網路上發問是要有技巧的。發生的問題人事時地物最好有圖片或log。這樣有意願幫忙的人才會比較正確的指出問題點,而不是大家一直猜。

blog.ocam.live
blog.ocam.live

關注科技新聞、SEO、人工智慧、電玩模擬器、程式設言、與 IT 日常等議題,深入簡出文章的說明並持續追蹤相關新聞的發展與報導。