mysql導致tmp目錄空間耗盡問題
收到磁盤空間告警的信息,/tmp目錄磁盤使用率99%。
www.2cto.com
mysql 的 tmpdir 設置在/tmp目錄,第一時間查看 ls -alth 並為發現大文件,也沒有mysql臨時表之類的文件。
連接mysql,show processlist 並為發現異常查詢 ……
整個/tmp目錄8GB,用查看df -h 發現/tmp Avail 值剩下100MB左右;du -sh 發現tmp目錄只用了幾十MB。7GB多的空間哪裡去了?未釋放?
通過lsof |grep tmp |more 發現其中一個mysql實例很多類似 /tmp/MLXvlID8 (deleted)
查看mysqld.err中發現有多行: [ERROR] /mysql_base/bin/mysqld: Sort aborted
www.2cto.com
猜測:Sql異常終止,導致sort aborted 。而臨時目錄下的/tmp/ML****** 等文件雖然刪除,但由於mysql線程連接是長連接,線程還存在,暫時不會釋放空間。
若想釋放空間:
1.重啟mysql;
2.重啟應用程序,斷開長連接。
結果:
應用程序重啟,長連接斷開,刪除的空間就釋放了。