一次線上問題處理過程記錄

declandragon發表於2021-12-12

業務部門反饋某個後臺系統,圖片無法上傳。

沒有運維崗,伺服器統一使用的寶塔皮膚

  • 準備上伺服器(寶塔皮膚後臺)看一下錯誤日誌,輸入賬號和密碼回車,提示登入成功又跳轉到了登入頁,換了幾個瀏覽器(自己有個瀏覽器只用來看生產伺服器)都是這個情況

  • ssh 登入伺服器成功,df -h 一看,好傢伙,系統盤 100%(系統盤只有 20G),問題找到了

  • 準備把回收站先清空一下,/www/Recycle_bin/ 目錄下啥都沒有

  • 在根目錄下執行 du -h --max-depth=1 命令,看一下哪個資料夾佔用比較多,/www/wwwlogs/ 目錄下的 nginx 的日誌佔了有 13G 左右

  • 找了幾個超過 1G 的日誌檔案,rm -rf xxx.log 刪除,登入皮膚後臺還是跟之前一樣的情況。df -h 發現系統盤還是 100% 佔用,檔案被刪了,空間沒回來

  • 原因是 linux 刪除檔案時,只是刪除了系統對於檔案的一個指標,如果還有程式在使用該檔案,那麼檔案就會一直存在。可以使用 lsof | grep delete 查詢對應的程式然後 kill,也可以直接重啟對應的服務。

  • 執行 /etc/init.d/nginx reload 命令過載 nginx 服務後發現剩餘空間正常了,測試上傳功能正常了。

  • 後續還做了兩件事,一是清理了一部分請求日誌,二是建了一個日誌定時清理的任務

刪除大檔案更好的方式應該是 echo '' > file.ext,直接覆蓋寫入。

本作品採用《CC 協議》,轉載必須註明作者和本文連結
感謝閱讀,有收穫的話不妨點個贊:smiling_imp:

相關文章