某台搭建mysql数据库的服务器,邮件一直报警磁盘空间占用大。于是df -hT查看。
Filesystem Type Size Used Avail Use% Mounted on
/dev/vda1 ext4 197G 161G 27G 86% /
tmpfs tmpfs 16G 0 16G 0% /dev/shm
在根目录下通过du查找占用较大的目录,但得出的结论是所有目录容量加一块也才60G。那问题出在哪里。
后面百度得知,原来有的文件可能删除了,但是并没有被释放,就像进入回收站一样,于是用lsof命令查看那些删除了但是还打开着文件句柄的文件,并按照大小顺序排列。
# lsof -n | grep delete
mysqld 25176 mysql 4w REG 252,1 73470 7602260 /tmp/2019-06-14.txt (deleted)
mysqld 25176 mysql 3230w REG 252,1 103458123336 7602258 /tmp/log/20190614-16.log (deleted)
发现有两个log文件状态为deleted,但是文件句柄仍然被打开了。如果有进程在使用某个文件,你把这个文件删掉之后,它不会马上释放空间,除非你手工重启该进程。于是reload一下mysql,问题解决。
参考链接:
1、磁盘满了,却找不到大文件
https://blog.csdn.net/maquealone/article/details/83054103