linux磁盘空间满了,报 “no space left”

1.  查看磁盘占用情况

df -h

2.分析使用率

size 就是大小。

used 就是使用了多少

Avail 就是空闲多少

然后用了100%,Mounted on 表示 该路径下的文件使用的本磁盘。

 这个图中,可以看出系统盘满了,需要注意的是,系统盘下面的一些文件路径已经被挂载到了别的磁盘,所以是不占用系统盘内存空间的。在接下来分析的时候可以排除。

普通情况:

3.从根目录开始查找占用空间较大的子目录

du -sh /* | sort -n -r

4.如果您已经确定了某个特定的大目录,可以进一步深入查找该目录内的大文件或子目录

du -sh /app/* | sort -n -r

5.在接下来的结果中反复查找,就可以找到相对较大的文件,分析一下是否有用,没有就清理掉。

需要注意的是:要刨去那些已经挂载在别的系统盘上的文件路径,不然即使删了,也不会释放空间。

6.一般情况是 /tmp缓存文件多,在或者是一些保存日志文件的地方。总和分析进行删除。

特殊情况

问题:df查看磁盘空间已经满了,但是找不到占用磁盘空间的文件在哪里。手动 du -sh /* 进行统计,发现没用使用那么多的磁盘空间

解决:这种情况,一般是在清理文件的时候,直接rm ,但是程序还在使用原来文件的句柄,导致磁盘空间不会释放。

查看被删除文件,但是句柄还被占用的程序:

lsof -n | grep delete

# 列名称

COMMAND PID TID TASKCMD USER FD TYPE DEVICE SIZE/OFF NODE NAME

...

optest 7787 7799 Composito opcai 23u REG 0,23 144 637 /dev/shm/.org.chromium.Chromium.gwZDcZ (deleted)

optest 7787 7799 Composito opcai 24u REG 0,23 144 586 /dev/shm/.org.chromium.Chromium.nidu2H (deleted)

optest 7787 7799 Composito opcai 43r REG 0,23 1048576 1061 /dev/shm/.org.chromium.Chromium.CgIJvs (deleted)

optest 7787 7800 Composito opcai 23u REG 0,23 144 637 /dev/shm/.org.chromium.Chromium.gwZDcZ (deleted)

optest 7787 7800 Composito opcai 24u REG 0,23 144 586 /dev/shm/.org.chromium.Chromium.nidu2H (deleted)

optest 7787 7800 Composito opcai 43r REG 0,23 1048576 1061 /dev/shm/.org.chromium.Chromium.CgIJvs (deleted)

optest 7787 7804 TaskSched opcai 23u REG 0,23 144 637 /dev/shm/.org.chromium.Chromium.gwZDcZ (deleted)

optest 7787 7804 TaskSched opcai 24u REG 0,23 144 586 /dev/shm/.org.chromium.Chromium.nidu2H (deleted)

optest 7787 7804 TaskSched opcai 43r REG 0,23 1048576 1061 /dev/shm/.org.chromium.Chromium.CgIJvs (deleted)

...

查找到以 (deleted) 结尾的就是已经被删除的文件,SIZE那列就是显示句柄的大小,单位是byte,第一列就是程序名称,第二列就是PID,这时候根据PID重启一下程序就可以释放空间了。

注意:在清理文件的时候,不确定日志文件是否还在被使用,可以使用echo > logfile.log将文件内容清空,就可以马上释放磁盘空间。

特殊情况二

问题:df 查看磁盘空间空闲还有,但是还是一直报no space left。

解决:这个就要赶紧先排查一下是否是inode使用完了,太多的小文件,会占用大量的inode。inode多少是在格式化的时候已经固定了。处理方法,就是清理掉这些没用的小文件,如果是程序用到的数据文件,就让程序员修改程序了,尽量不要产生太多的小文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值