租用了新的雲端主機,有一天發現全部線上網站都掛了

經檢查發現是硬碟被吃光了,但是我應該沒有存那麼多資料&圖片才對

使用指令慢慢檢查根目錄,在查到 var 時

du -sh /var

發現是 var 資料夾佔用了 125 GB,顯然問題就在這裡

接著使用

du -h /var

發現疑似是 mysql 資料夾,佔用大量硬碟空間

繼續使用指令確認

du -sh /var/lib/mysql

以及查看細節

du -h /var/lib/mysql

發現就是這個資料夾沒錯,cd 進去 ls 看一下,看到大量的 binlog 檔案,命名類似這樣

...
binlog.000738
binlog.000739
binlog.000740
...

經研究,是 mysql 某種備份機制,暫時不深入研究,我目前不想使用這個備份功能


輸入以下 SQL 緊急移除這些備份

PURGE BINARY LOGS BEFORE NOW();

硬碟緊急狀況排除!


接著要避免之後再出現這個問題

參考這篇做法

https://askubuntu.com/questions/1322041/how-to-solve-increasing-size-of-mysql-binlog-files-problem

建立獨立檔案,方便日後維護

touch /etc/mysql/mysql.conf.d/howtomakeaturn.cnf

放入以下內容

# Added by howtomakeaturn at 2023-08-15 because of 100% disk usage issue.
[mysqld]
log_bin =                           # turn off
binlog_expire_logs_seconds = 86400  # 1 day
max_binlog_size = 104857600         # 100M

完成之後重啟資料庫

service mysql restart

大功告成!應該大致關閉 binlog 功能了,持續觀察幾天看看!


共有 1 則留言

2023-11-15 更新

硬碟又快滿了

這次是因為 Puppeteer 的 dev profile 檔案存在 /tmp 內部

使用以下指令

sudo find /tmp -type f -atime +0 -delete

可暫時清空