您好,欢迎来到思海网络,我们将竭诚为您提供优质的服务! 诚征网络推广 | 网站备案 | 帮助中心 | 软件下载 | 购买流程 | 付款方式 | 联系我们 [ 会员登录/注册 ]
促销推广
客服中心
业务咨询
有事点击这里…  531199185
有事点击这里…  61352289
点击这里给我发消息  81721488
有事点击这里…  376585780
有事点击这里…  872642803
有事点击这里…  459248018
有事点击这里…  61352288
有事点击这里…  380791050
技术支持
有事点击这里…  714236853
有事点击这里…  719304487
有事点击这里…  1208894568
有事点击这里…  61352289
在线客服
有事点击这里…  531199185
有事点击这里…  61352288
有事点击这里…  983054746
有事点击这里…  893984210
当前位置:首页 >> 技术文章 >> 文章浏览
技术文章

Linux系统中inode索引节点已满问题的解决方法

添加时间:2016-3-23 2:39:26  添加: 思海网络 
今天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。

关键字:Linux、系统、inode、索引
分享到:

顶部 】 【 关闭
版权所有:佛山思海电脑网络有限公司 ©1998-2024 All Rights Reserved.
联系电话:(0757)22630313、22633833
中华人民共和国增值电信业务经营许可证: 粤B1.B2-20030321 备案号:粤B2-20030321-1
网站公安备案编号:44060602000007 交互式栏目专项备案编号:200303DD003  
察察 工商 网安 举报有奖  警警  手机打开网站