Inode占满导致No space left on device解决

线上有一台web服务器磁盘检测告警了,提示空间不足,登到服务器查看

touch:cannot touch `furm.html‘: No space left on device

使用df -h命令查看发现

/data/web分区只使用了2%,创建文件却提示磁盘空间不足,按道理不会出现这种情况的。怀疑是inode耗尽导致。

分析导致的原因:
使用df –i查看发现inode已经耗尽,则系统上将不能创建文件

查找原因并解决

/data/web是线上业务数据目录,其中有个程序产生大量的小文件造成的。可通过下面的命令找出占用空间最多的文件或目录:

find / -type d -size +10M

此命令作用是找出大小大于10M的目录(目录大小越大,表示目录下的文件越多)。

大量的小文件分布在大量的目录下

cd /

find */ ! -type l | cut -d / -f 1 | uniq -c

此命令作用是找出目录下文件总数,可能需要执行多次。比如上面的命令找出了/data目录下存在大量的小文件,但/data/目录还有很多目录,这时候我们还需要继续执行:

cd /data

find */ ! -type l | cut -d / -f 1 | uniq -c

直到找出具体的目录。

在/data/web下有超多的文件 ls 半天没反应

用rm -rf * 会自动跳出root,用xargs来解决。

# ls | xargs rm –f

此时用df –i命令查看发现正常了,创建文件也不会出现错误

另外:

要注意的是下面这个目录当安装了sendmail服务但是没有开启的话,这个目录也会临时产生大量的小文件,按照上面的解决方法解决即可。

# cd /var/spool/clientmqueue

# ls | xargs rm –f

原因分析:系统中cron执行的程序有输出内容,输出内容会以邮件形式发给cron的用户,而sendmail没有启动所以就产生了这些文件;

解决办法:  将crontab里面的命令后面加上>/dev/null 2>&1

总结

对inode占用进行监控,并且收到inode告警时应及时使用以上方法来定位问题,并反馈给相应人员从根源解决。以后遇到类似的问题要注意,用df -i 检查inode的使用情况。

扩展:

查看block和inode的大小

[[email protected] ~]# dumpe2fs /dev/sdb1 |grep -i"Block size"
dumpe2fs 1.41.12 (17-May-2010)
Block size:               1024
 
[[email protected] ~]# dumpe2fs /dev/sdb1 |grep -i"Inode size"
dumpe2fs 1.41.12 (17-May-2010)
Inode size:               128

查看block和inode的总的数量(一般是block大于inode数量)

[[email protected] ~]# dumpe2fs /dev/sdb1 |grep"Block count"
dumpe2fs 1.41.12 (17-May-2010)
Block count:              524272
 
[[email protected] ~]# dumpe2fs /dev/sdb1 |grep"Inode count"
dumpe2fs 1.41.12 (17-May-2010)
Inode count:              131072
时间: 2024-10-24 06:47:30

Inode占满导致No space left on device解决的相关文章

linux系统inode占满故障处理

Linux系统inode占满故障处理 众所周知,文件系统中inode编码是指向磁盘block的唯一编号,若服务器遭入侵或日志文件将磁盘inode资源编号耗尽,新数据无法获取inode编号导致无法存储.举例说明:在磁盘中/boot独立分区中查看现有inode资源并通过for循环创建大量文件占用耗尽inode编号,导致磁盘无法写入内容,最后进行处理故障. [[email protected] ~]#  df -i /boot/                                 #查看i

centos编译内核出现:no space left on device 解决方法

1.问题:原来将源码放在根目录下面 编译过程中出现了 no space left on device 利用df -h 命令查看 根目录空间占用完毕 2.将源码改在其他空间很足的地方编译 在make module_install 还是出现no space left on device 但是该目录下面的空间很足 ,继续df -h 根目录满了 3解决方法 将根目录中的不用的文件删除,因为在安装的时候要经过根目录, 所以要保持根目录中的空间充足 centos编译内核出现:no space left on

磁盘空间被占满导致前台的验证码无法显示

昨晚上11点多,公司的后台程序员打电话说登陆页面的验证码突然显示不出来了,我查看了一下,并和测试机上的代码做了一下比较(测试机上能正常显示,这是外包做的网站,不是自己写的),请求的地址都是一样的,地址文件也是一样的,请求也是成功的,只是没有数据的返回,之后还把实际上的文件用测试机上的文件覆盖了,还是不能正常显示,重启了服务器还是不能显示.折腾了很久,后来发现服务器上的磁盘被占满了,删除了一些多余的文件之后终于能正常显示了.之后查了一下说原来磁盘空间被占满,会出现web程序报错的情况.

Linux索引节点(inode)用满导致的一次故障

一.发现问题: 在一台配置较低的Linux服务器(内存.硬盘比较小)的/data分区内创建文件时,系统提示磁盘空间不足,用df -h命令查看了一下磁盘使用情况,发现/data分区只使用了66%,还有12G的剩余空间,按理说不会出现这种问题. 二.分析问题: 后来用df -i查看了一下/data分区的索引节点(inode),发现已经用满(IUsed=100%),导致系统无法创建新目录和文件. inode译成中文就是索引节点,每个存储设备(例如硬盘)或存储设备的分区被格式化为文件系统后,应该有两部份

彻底解决Linux索引节点(inode)用满导致故障的方法

登录到服务器上df -i一看/路径下96%而数据目录/data下才用了30%故初步判断生成的数据量正常可能是一些系统产生的文件把根路径占满了 于是乎在执行以下命令查看根路径下各个文件夹的文件数 for i in /*; do echo $i; find $i |wc -l|sort -nr; done 数文件数超过10W的有两个/data我们的数据分区确认数据量正常和/var /data 13W+文件 /var下70W+文件 楼主linux水平有限于是把/var下的目录一个个的执行了上面的命令

Linux索引节点(Inode)用满导致空间不足

https://blog.csdn.net/liuxiao723846/article/details/79423581 https://blog.csdn.net/samxx8/article/details/44779245 原文地址:https://www.cnblogs.com/jing1617/p/10419670.html

No space left on device 解决Linux系统磁盘空间满的办法

由于当初安装系统时设计不合理,有些分区分的过小,以及网络通讯故障等造成日志文件迅速增长等其他原因都可能表现为磁盘空间满,造成无法读写磁盘,应用程序无法执行等. (以/home空间满为例): 1. 定期对重要文件系统扫描,并作对比,分析那些文件经常读写 #ls –lR /home >;files.txt #diff filesold.txt files.txt 通过分析预测空间的增长情况,同时可以考虑对不经常读写文件进行压缩,以减少占用空间. 2. 查看空间满的文件系统的inodes消耗 #df

生产环境下案例 No space left on device (inode使用满的情况)

第一种情况: 问题: 如果想磁盘写入数据提示如下错误: No space left on device. 通过df -h查看磁盘空间,发现没满,请问可能原因是什么? 解答: 可能是inode数量被消耗尽了. df -i查看是否耗尽了inode数量. 企业工作中邮件临时队列/var/spool/clientmquene这里很容易被大量小文件占满导致No space left on device的错误. clientmquene目录只有安装了sendmail服务才会有.CentOS5.X默认会装se

Linux索引节点(Inode:no space for device)用满导致的一次故障

问题描述 在storm测试环境集群上上nimbus和supervisor自动挂调,重启时显示no space for device,也不能创建,添加文件及目录,df -h查看 ilesystem Size Used Avail Use% Mounted on /dev/vda1 40G 2.9G 35G 8% / tmpfs 3.9G 0 3.9G 0% /dev/shm /dev/vdc1 100G 3.1G 92G 4% /home /dev/vdd1 50G 180M 48G 1% /ho