MySQL 主機硬碟占用 100%

TLDR 問題:log 檔案過大,將剩餘空間占滿,導致服務異常 原因:MySQL 被設定開啟 mysql-gen.log,且未設定定時清理 調查方法:檢查 MySQL 設定與空間占用狀況 解決方案:使用 logrotate 設定定時清理 情境 正式環境的 MySQL Slave 會定期製作分析報告並郵寄給相關人員。 收到通知已有一段時間沒收到報告,登入主機嘗試手動寄出,卻顯示因空間不足,寄送失敗。 資料庫的檔案未有異常,且資料庫位於外接硬碟,剩餘空間非常大。 調查過程 檢查 Linux 空間狀況 首先用 df -h 檢查空間狀況,卻發現剩餘空間非常少。 1 df -h 1 2 3 4 5 6 7 8 # 結果示意 Filesystem Size Used Avail Use% Mounted on /dev/sda1 50G 50G 0 100% / tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs 3.9G 1.2M 3.9G 1% /run tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/sdb1 100G 60G 35G 64% /data /dev/sdc1 200G 150G 50G 75% /backup 檢查根目錄下大文件夾 可用以下命令查看根目錄下佔用空間最大的前 20 個文件夾。 ...

2024-10-25 · 2 分鐘 · 262 字 · Jun Chen

Nginx 接收不到 SSE

TLDR 問題:將 Nginx 配置從測試環境遷移到正式環境後,無法接收 SSE 原因:Nginx 1.22.0 預設使用了 HTTP/1.0 而不是 HTTP/1.1 調查方法:啟用調試日誌並分析 解決方案:在 Nginx 全局設置中指定 HTTP 版本為 1.1 情境 使用一樣的 Config,從測試環境搬移到正式環境後,一般請求皆正常,但 SSE 無回應(Timeout)。 經過人工、工具比對,以及 ChatGPT 分析,都沒有發現設定上的問題。 唯一差異在於測試環境是 1.22.1,而正式環境的 Nginx 版本是 1.22.0。 調查過程 啟用調試日誌 首先在 /etc/nginx/nginx.conf 中啟用調試日誌,印出詳細的錯誤: 1 error_log /var/log/nginx/error.log debug; 檢查配置並重新加載 Nginx: 1 2 nginx -t nginx -s reload 分析日誌 我們可以在 /var/log/nginx/error.log 找到錯誤資訊。 若是緊急線上修復,且很多使用者在線,可能導致 log 過多難以查找,這時候可以用以下方法: 1 tail -f -n 1 /var/log/nginx/error.log | grep -i "sse" # sse可替換為你想要查找的關鍵字 這行指令會持續追蹤 error.log 的最新一行,並且過濾出含有 “sse” 的 log。 ...

2024-10-24 · 2 分鐘 · 247 字 · Jun Chen