详解Linux系统中inode索引节点已满问题的解决方法
今天login server的一个网站,发现login后没有生成session。根据以往经验,一般是空间已满导致session文件生成失败。
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/dev01-root 75G 58G 14G 82% /
udev 2.0G 4.0K 2.0G 1% /dev
tmpfs 396M 292K 396M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 2.0G 4.0K 2.0G 1% /run/shm
/dev/sda1 228M 149M 68M 69% /boot
空间剩余14G,可以排除空间已满的情况。导致文件生成失败还有另一个原因,就是文件索引节点inode已满。
df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/mapper/dev01-root 4964352 4964352 0 100% /
udev 503779 440 503339 1% /dev
tmpfs 506183 353 505830 1% /run
none 506183 5 506178 1% /run/lock
none 506183 2 506181 1% /run/shm
/dev/sda1 124496 255 124241 1% /boot
inodes 占用100%,果然是这个问题。
解决方法:删除无用的临时文件,释放inode。
查找发现 /tmp 目录下有很多sess_xxxxx的 session临时文件。
ls -lt /tmp | wc -l
4011517
进入/tmp目录,执行find -exec命令
sudo find /tmp -type f -exec rm {} \;
如果使用rm *,有可能因为文件数量太多而出现Argument list too long错误。除了/tmp的临时文件外,0字节的文件也会占用inode,应该也释放。
遍历寻找0字节的文件,并删除。
sudo find /home -type f -size 0 -exec rm {} \;
删除后,inode 的使用量减少为19%,可以正常使用了。
df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/mapper/dev01-root 4964352 940835 4023517 19% /
udev 503779 440 503339 1% /dev
tmpfs 506183 353 505830 1% /run
none 506183 5 506178 1% /run/lock
none 506183 2 506181 1% /run/shm
/dev/sda1 124496 255 124241 1% /boot
PS:什么是inode
linux中,文件查找不是通过文件名称来查找的。实际上是通过inode来实现文件的查找定位的。我们可以形象的将inode看做是一个指针fip。当文件存储到磁盘上去的时候,文件肯定会存放到一个磁盘位置上,可以这样想象,既然文件数据是存放在磁盘上的,如果我们知道这个文件数据的地址,当我们想要读写文件的时候,我们是不是直接使用这个地址去找到文件就可以了呢?
是的,linux下,inode其实就是可以这么认为,把inode看作是一个指向磁盘上该文件存储区的地址。只不过这个地址我们一般是没办法直接使用的,而是通过文件名来间接使用的。事实上,inode不仅包含了文件数据存储区的地址,还包含了很多信息,比如数据大小,等等文件信息。但是inode是不保存文件名的。文件名是保存在一个目录项中。每一个目录项中都包含了文件名和inode。
我们可以通过一个图来看看目录项,inode,文件数据四者之间的关系。
从上图可以看到,目录项中包含了文件名和inode。
相关文章
Win7系统经常弹出“Windows检测到一个硬盘问题”提示窗口的故障原因及
有win7用户反映系统经常弹出“Windows检测到一个硬盘问题”窗口,这是怎么回事呢?这种情况怎么关闭?本文将提供Win7系统经常弹出“Windows检测到一个硬盘问题”提示窗口的2016-03-12微软推送Win10更新KB3144756:修复浏览器卡住/游戏界面冻结及麦克风无
微软为Win10正式版用户推送了KB3144756的更新,这是针对系统内置Flash Player插件的安全更新补丁,该KB3144756更新为主修复了浏览器卡住、游戏界面冻结及麦克风无法访问等2016-03-12Win10 Mobile RedStone 14283已修复与已知问题汇总
3月11日凌晨微软推送Win10 Mobile红石预览版14283,,本次红石预览版更新优先面向Lumia950、Lumia950 XL、Lumia650、Lumia550、小米4和阿尔卡特Fierce XL手机2016-03-11- Win7系统打不开鼠标属性问题怎么办?针对此问题,下面小编就给大家带来Win7系统打不开鼠标属性问题的解决方法,希望可以帮助到大家2016-03-10
- win8.1系统桌面扬声器图标不见了怎么恢复?针对此问题,下面小编就给大家带来win8.1系统桌面扬声器图标不见了问题的解决方法,希望可以帮助到大家2016-03-08
Win10系统激活后提示许可证过期的解决办法 图解Win10激活许可证过期问
有些用户在激活Win10系统后,突然开始收到你的Windows许可证即将到期的信息。这是因为你使用的是临时性的激活密钥,一般出现这种情况就要重新激活。下面脚本之家小编给大家2016-03-07Win10 Redstone预览版14279更新已知问题与解决方法
3月5日凌晨微软推送了Win10 Redstone预览版14279快速版,尽管本次更新相比以往几个版本稳定了许多,微软也开始加入界面性的更新,那么本次更新微软又“创造”了哪些问题呢2016-03-05Win10无法启动承载网络怎么办?win10无法启动承载网络问题的解决方法
Win10无法启动承载网络怎么办?针对此问题,下面小编就给大家带来win10无法启动承载网络问题的解决方法,希望可以帮助到大家2016-03-03- 这篇文章主要介绍了虚拟机中向CentOS添加网卡无法识别的问题解决,同时作者还介绍了将CentOS7中网卡名修改为通常大家所更熟悉的eth0的方法,需要的朋友可以参考下2016-03-03
Win8开机提示“你的电脑出现问题需要重启,我们只需要收集这些错误信息
升级安装win8系统之后,开机提示“你的电脑出现问题需要重启,我们只需要收集这些错误信息”,重新启动电脑多次之后,还是一样,没办法解决,无法正常运行win8系统,这种情2016-03-02
最新评论