WordPress增加伺服器Swap交換空間檔案取代記憶體

WordPress自架站的資源可利用度向來讓許多站長傷透了腦筋,畢高速CPU和巨量記憶體雖然能讓網站運作速度加快,但那些可都是靠砸錢砸出來,對於小型網站的用戶來說是很大的成本。

如果伺服器的記憶體太小,那可以做什麼樣的改善呢?

其實有一個方法就是在硬碟上面建立一個記憶體交換空間檔案(Swap files),供系統當作記憶體存貯用,將原本在記憶體存放的資料也能存放在大容量的硬碟中,如此一來便能避免記憶體不夠用的問題。

這個功能在十幾年前的個人電腦也曾經風靡過一段時間,只不過那時候的記憶體貴,現在的記憶體便宜,也就越來越少會進行這種配置。

其實這種做法有一個明顯缺點,那就是硬碟的讀寫速度絕對無法跟記憶體相提並論。以前個人電腦可以用效能降低來獲得較大的記憶體空間,避免當機還可以執行大程式,但伺服器卻不能這樣做,伺服器避免當機只是個基本條件,還必須提供足夠的效能才不會讓網站使用者在操作時感到不耐煩。

不過換一個角度來思考,以前硬碟的讀寫速度會慢那是因為機械式傳統硬碟原有的物理性限制,但是現在已成為主流的固態硬碟 (Solid-state drive,簡稱SSD),雖然讀寫速度一樣無法跟記憶體相提並論,卻也是傳統HDD硬碟的好幾倍。所以如果用SSD硬碟來建立交換空間,其實也頗具優勢條件。

下面列出在Linux伺服器中建立交換空間檔案提供WordPress內容管理系統使用的操作指令,只要逐一執行,就可以建立高達1G的交換空間,提供網站更穩定的運作。

⚠️注意:老話一句,操作前請先備份網站。

建立記憶體交換空間檔案指令集

sudo fallocate -l 1G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Linux指令用法介紹

  • fallocate:用於快速建立大文件。
  • chmod:更改文件權限。
  • mkswap:建立交換分區。
  • swapon:啟用交換分區。
  • echo和tee:螢幕標準輸出和同時輸出到檔案。
結果與討論

筆者在將一個原本只有0.6GB記憶體的小網站擴增1GB交換空間檔案後,雖然不能說是因為增加了交換檔案空間所以訪客數量暴增,不過修改隔日的訪問量確實從500人次暴增到1000人次,操作時的流暢度也很有感覺。接著會再觀察幾天來判讀增加交換空間的優點是否明顯。

分享您的想法

發佈留言

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