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

2016-03-31 16:39 21 1 收藏

get新技能是需要付出行动的,即使看得再多也还是要动手试一试。今天图老师小编跟大家分享的是详解Linux系统中inode索引节点已满问题的解决方法,一起来学习了解下吧!

【 tulaoshi.com - 服务器 】

详解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

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/fuwuqi/)

  代码如下:

  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

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/fuwuqi/)

  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

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/fuwuqi/)

  代码如下:

  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

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/fuwuqi/)

  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,文件数据四者之间的关系。

201633115915009.jpg (640×483)

  从上图可以看到,目录项中包含了文件名和inode。

来源:https://www.tulaoshi.com/n/20160331/2052867.html

延伸阅读
标签: 电脑入门
提示你QQ号码需要激活才能使用?那就去激活吧,很简单的(相关文章:提示QQ号码需要激活无法登录的解决办法)。激活不了?可能是下面的原因,您可以照着试试…… 问:为什么我无法正常下载安全检查控件? 答:如果您无法正常下载安全检查控件,请尝试如下步骤: 步骤1、在您点击“下载控件”时,将出现文件下载的安全警告对...
标签: 电脑入门
1. 如何关闭UAC? 控制面板→用户帐户→打开或关闭用户账户控制→取消使用用户账户控制(UAC)帮助保护您的计算机。 2. 如何关闭系统备份与还原? 控制面板→备份和还原中心→创建还原点或更该设置→系统保护→自动还原点→取消已经选中的磁盘上的还原点。 3.为什么在某个固定的时间会出现狂读硬盘的现象? 这...
JTable的排序是一个让人头疼的问题,Sun没有为排序这个最常用的功能提供类。 但是近日翻看Sun官方java的tutorial,却发现其在文档中提供了这个类的实现,使用非常简单! 使用方法示例: 代码如下: TableSorter sorter = new TableSorter(new MyTableModel()); //ADDED THIS //JTable table = new JTable(new MyTableModel()); //OLD JTable ...
标签: 电脑入门
网络延迟的现象不知道在大家的电脑里频不频繁,如果很频繁出现这个问题的话,那就要动手来解决了,那么肯定会有很多用户要问:我要怎样才能解决Win7网络延迟问题啊? QoS是什么呢?QoS(Quality of Service)服务质量,是网络的一种安全机制, 是用来解决网络延迟和阻塞等问题的一种技术。对关键应用和多媒体应用十分必要。当网络过载或拥塞时,Q...
标签: 电脑入门
由于QQ所采用的nProtect键盘输入加密控件与最新的Windows Vista操作系统不兼容,因此,Windows Vista系统的用户在使用QQ的时候,可能会产生计算机蓝屏等故障。 蓝屏问题的临时解决方案: 1、请找到QQ的安装目录,方法如下: 在桌面上找到QQ图标,用鼠标右键点击图标,在出现的菜单中,点击“属性” 在弹出的窗口中...

经验教程

562

收藏

83
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部