[GCloud] WordPress 網站突然反應很慢,記憶體不足啦!

[GCloud] WordPress 網站突然反應很慢,記憶體不足啦!

今天家人說在 Google Cloud Platform 上的 WordPress 網站,

突然變得很慢,連不進去…

試了一下,果真如此,是怎麼一回事呢?

 

用 Google Cloud Platform 上的 SSH 連進虛擬機器,

先用 sudo apt-get install atop 安裝一下 atop,

再執行 atop 看一下系統狀況~

發現記憶體和磁碟 I/O 出現紅字,記憶體剩約  123 MB,

而磁碟 I/O 讀寫很忙,一秒鐘有 123 個讀取,且持續不停:

 

觀察 Google Cloud Platform 上 Compute Engine 提供的圖表,

可以看到 CPU 使用率突然飆高,且持續在高點。

其實如果點 1 小時或 6 小時的圖表來看的話,

甚至可以看到有好幾個小時的時間,

CPU 使用率都超過了 100% (也就是吃超過 1 顆 CPU 了):

 

從 atop 的結果來看,造成 CPU/磁碟使用率升高的禍首,

應該是 mysqld 或 php-fpm 這兩支 process。

試著執行下面的指令重啟它們,但重啟後狀況依舊:

sudo /opt/bitnami/ctlscript.sh restart mysql
sudo /opt/bitnami/ctlscript.sh restart php-fpm

 

將整個 Bitnami (包含 Apache, MySQL, PHP) 全部重啟也一樣:

sudo /opt/bitnami/ctlscript.sh restart

 

決定一一排除看看…

先試著 ctlscript.sh stop php-fpm 停掉 php-fpm 這支 process,

結果 mysqld 這支 process 一樣狂讀寫硬碟…

把 mysqld 也停掉的話,就回復正常,atop 上也沒有紅字了…

推測是有什麼東西一直在讀寫資料庫,

但從 mysql 的記錄檔裡沒看到什麼 (可能是因為 log level 太高)…

 

因為家人的 WordPress 網站已經掛站一個下午,

沒有太多時間查出問題點,只好按 Google Cloud Platform 上的建議,

將機器從最低階的 f1-micro 升級到高一階的 g1-small:

  • f1-micro:0.2 顆 vCPU + 0.6 GB 記憶體
  • g1-small:0.5 顆 vCPU + 1.7 GB 記憶體

 

更換機器等級後,Google Cloud Platform 會自動處理,

猜測是會關閉虛擬機器、修改虛擬機器的設定、再重新啟動虛擬機器,

大約 5~10 分鐘內,新的虛擬機器就可以用了,

之前設定好的外部 IP 也仍然維持一樣,因此 DNS 那邊也不用修改~

 

升級機器之後,磁碟 I/O 忙碌的問題消失了~

感覺上之前是 mysql 在讀寫什麼東西到資料庫,但因為記憶體不夠 (0.6 GB),

導致它一直在做 swapping,將記憶體的東西寫到硬碟去,

所以磁碟 I/O 才會變得很忙…

 

如下圖,綠色的框框是升級機器後的 CPU 使用率,

可以看到升級後使用率立刻掉了下來:

 

atop 的結果也沒有紅字了~

唯一的紅字是 SWP,看起來這機器上是沒有設定 swap 的空間,

不過有 1.7 GB 的記憶體,應該也比較不會輕易達到記憶體不足的狀況:

 

不過升級機器,當然會讓支出增加,

但幸好目前還在 Google Cloud Platform 給的一年 300 美金免費使用期內,

所以還可以像這樣隨意的升級機器 😛

還是得花時間研究一下,要怎麼查找 PHP 和 MySQL 的效能問題啊~

(本頁面已被瀏覽過 2,128 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料