之前網站因為增加了許多自訂的發文推播
導致網站速度變慢,GCP的VM觀測數據顯示發文的時候,CPU的執行率可以達到200%
所以也出現提升CPU等級的建議,但是往上升一級就多了近一倍的費用
對我來說實在吃不消,因為除了GCP的費用之外,還有youtube的月費、google 雲端硬碟的年費
一年付給google公司7~8千元跑不掉,GCP費用占了80%
當初建置網站的目的是為了紀錄一些學習程式的過程,順便紀錄自己感興趣的東西
所以想先試試看能不能透過一些方式來降低網站的執行負荷量
之前為了增加特定功能,會嘗試不同的外掛,從中挑選最適合的
但是其他的外掛,我通常只是設定成未啟用,沒有刪除
不過為了網站效能,這次刪除了所有沒有啟用、或者用不到的外掛
另外還進行了兩個改變
第一個是整併推播外掛程式
因為都是同一個觸發事件,這樣會導致網站同時執行多個程式
所以我把這些通通整併成一個程式
也就是事件觸發之後,Line、Blogger、facebook的推播都是接續處理
不再分開(卻可能同時)處理
也因為這些推播都是向外發出請求
都是非同步執行,所以每個部分都暫停5秒鐘才接續往下執行
剛好跟一般認知的概念相反,這裡是指各個程式的執行是各做各的
不會等其他程式完成,再進行下一個
第二個是不在網站的編輯器撰寫文章
後來發現在網站的編輯器撰寫文章,也會導致網站的負荷量飆高
所以我嘗試改成先在其他網頁編輯器完成內容,再將html格式的內容貼回去
之前一直使用的線上網頁編輯器,使用了CKEditor4的編輯器
出於好奇,查看了網站的程式碼,發現其實引用的方式很簡單
所以我自己也炮製了一個線上網頁編輯器
目前CKEditor除了4之外,最新的是5
不過CKEditor5是node架構了,而且好像也沒有免費授權的版本
而CKEditor4 除了LTS(Long-term support,長期支援)版本需要授權之外
其他版本都是可以免費使用,所以我引用了最後的4.22.1
目前這些方法似乎有效果,即使網站發文的時候,CPU執行率也沒有超過100%了