记一次排查linux空间满的问题

执行命令

df -lh

显示信息

文件系统              容量  已用 可用 已用% 挂载点
/dev/sda1             9.9G  9.5G     0 100% /
udev                  2.0G   64K  2.0G   1% /dev
/dev/sda3             5.9G  4.5G  1.2G  81% /usr/local
/dev/sda4             178G   150G   28G  84% /data

通过命令du -h --max-depth=1找到占用大的目录,删除无用文件。

重新查看磁盘使用情况,显示如下。

文件系统              容量  已用 可用 已用% 挂载点
/dev/sda1             9.9G  9.5G     0 100% /
udev                  2.0G   64K  2.0G   1% /dev
/dev/sda3             5.9G  4.5G  1.2G  81% /usr/local
/dev/sda4             178G   97G   73G  58% /data

可以看到/dev/sda4目录的空间释放了,但是/dev/sda1仍然提示100%已用。

晚上吃饭的时候跟同事说了这个事,他说可能是有进程一直在写,虽然删了,但是空间不释放。

执行命令

lsof | grep deleted

显示结果

tail       6017 user_00    4r      REG                8,1  761278464     267179 /tmp/proxy-access_log (deleted)
tail       6017 user_00    5r      REG                8,1 4247490560     267176 /tmp/proxy-error_log (deleted)

这两个文件我已经删掉了,这里可以看到是有进程还在往里写。

杀掉对应的进程

kill -9 6017

再看磁盘使用情况

df -lh

结果如下

文件系统              容量  已用 可用 已用% 挂载点
/dev/sda1             9.9G  4.8G  4.6G  52% /
udev                  2.0G   64K  2.0G   1% /dev
/dev/sda3             5.9G  4.5G  1.2G  81% /usr/local
/dev/sda4             178G   97G   73G  58% /data

空间终于释放了。

标签: linux

添加新评论