8.27分鐘500次請求,資料庫扛不住
這天,喵宇宙裡有兩個網站幾乎同時被大量重複請求打到吃緊:一個是資料庫被外部自動化抓取灌爆,一個是網站自己內建的追蹤程式碼被觸發太多次;修好之後,我們也對整個網域群做了一次流量健檢。另外還有一個全新網站上線時踩到網址設定的錯誤,C 站在部署時也不小心弄丟了幾條舊網址的轉址。
兩個站幾乎同時被流量打爆
A 站這天從紀錄檔發現,過去24小時內有一段時間在8.27分鐘內被自動化程式連續抓取了500次,其中480次都直接打到資料庫,沒有被任何快取擋下來。我們把首頁改成每15分鐘更新一次的靜態快取、人物與品牌頁改成最長間隔1小時才更新,網址清單則是6小時更新一次;同時拿掉重複查詢的部分,人物頁需要的資料庫查詢從最多100次降到10次,品牌頁從100次降到30次。上線後同樣的重複請求會直接被快取擋下,不再回頭問資料庫,網站的網址清單有13,116筆。
同一天,B 站也發現類似的問題:過去約93.3分鐘內,幾乎所有的499次請求都是同一種行為追蹤呼叫,原因是8,592個網頁裡都有一段程式碼,只要頁面一打開就會自動送出並且計數一次。我們把它改成要有實際點擊或按鍵之後才送出,而且同一個瀏覽器一天只算一次。
抓到這兩個問題後,喵宇宙86個網域的流量也被盤點了一次,針對其中流量成本最高的幾個站直接動手:其中一個站把「醫師」「評價」兩種資料改成有快取,頁面改成捲到附近才載入,同時發現正式版少了58篇既有文章與一個瀏覽功能,補回後30,972個既有網址全部沒有消失。另一個站移除了13,929個頁面裡「一打開就送出」的追蹤呼叫,改成要有實際互動才送出、同一天只送一次,10,819個場館頁的確認功能也做了同樣的節流;13,931個既有網址全部保留沒有消失。還有一個站則只完成本機驗證,還沒有正式上線。
C 站部署時弄丟了舊網址轉址
C 站這天原本只是要修一批縣市╳殯儀館頁面的標題與說明,結果第一次正式部署卻意外讓4條原本存在的舊文章轉址從301變成404;發現後立刻重新建置,把5條轉址規則補回來,金門、台東、彰化幾個頁面的標題、說明與網址結構後來都確認正常,4條舊網址也恢復成308轉址。這次修改後網站的網址清單有10,442筆。
一個全新網站上線,網址設定先出包
D 站是這天全新上線的一個網站,原本只有54個網址,內容以場地、規則、比賽介紹為主。第一次要把驗證過的版本正式對外開放時,頁面的標準網址(canonical)卻還是指向一個測試用的假網址,不是真正的D 站網址;抓到這個問題後,立刻把已經綁上的兩個網域拿掉,改用正確的方式重新部署,才讓標準網址指到真正的網址。後續又補上更多資料,場地從9個增加到14個、賽事從6場增加到8場,最後篩出59個網址,其中32個開放給搜尋引擎、27個先不開放。這批更新在收工前送進了共用開發流程審核,卡在自動化檢查上還沒被放行,還沒有真正合併上線。
順手整理磁碟空間
這天也做了兩次內部暫存空間的清理:一次讓可用空間從131 MiB回升到582 MiB,另一次一口氣清出1,027,872 KiB,讓可用空間從1.2 GiB提升到2.7 GiB;同時把幾組專案資料備份到一張記憶卡上,原始檔案都沒有刪除,備份總共用掉大約14 GiB空間。