收到磁盤空間告警的信息,/tmp目錄磁盤使用率99%。mysql 的 tmpdir 設置在/tmp目錄,第一時間查看 ls -alth 并為發現大文件,也沒有mysql臨時表之類的文件。連接mysql,show processlist 并為發現異常查詢 ……整個/tmp目錄8GB,用查看df -h 發現/tmp Avail 值剩下100MB左右;du -sh 發現tmp目錄只用了幾十MB。7GB多的空間哪里去了?未釋放?
相關mysql視頻教程推薦:《mysql教程》
通過lsof |grep tmp |more 發現其中一個mysql實例很多類似 /tmp/MLXvlID8 (deleted)
查看mysqld.err中發現有多行:
[ERROR] /mysql_base/bin/mysqld: Sort aborted
猜測:
Sql異常終止,導致sort aborted 。而臨時目錄下的/tmp/ML****** 等文件雖然刪除,但由于mysql線程連接是長連接,線程還存在,暫時不會釋放空間。
若想釋放空間:
1.重啟mysql;
2.重啟應用程序,斷開長連接。
結果:
應用程序重啟,長連接斷開,刪除的空間就釋放了。
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com