网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > linux > 网络管理 > 网络管理 > 测试Linux平台Inode使用情况的过程命令  

测试Linux平台Inode使用情况的过程命令

2008-06-27  作者:bitsCN整理  来源:中国网管联盟  点评 投稿 收藏

    Linux/Unix like OS 的文件系统中每个目录树中的节点并不是像 Windows 那样直接包含文件的具体信息,而只包含了文件名和 Inode number .通过 Inode number 所找到对应于文件名的 Inode 节点中才真正记录了文件的大小/物理地址/所有者/访问权限/时间戳/被硬链接的次数等实际的 metadata .因此你可以在 Linux 系统中通过硬链接( hard link ) 的方式给某个文件创建无数个位于不同目录下的文件名,而实际的文件数据只需要一份拷贝。

网管联盟bitsCN@com

    但也正因为这种文件系统的结构,当你在 Linux 中进行 IO 操作的时候,需要的资源除了磁盘空间以外,还要有剩余的 Inode 才行。缺省情况下, Linux 在系统安装过程中按照1个 Inode 对应 2k 磁盘空间来计算每个分区的最大 Inode 数。一旦文件系统创建之后,每个分区可用 Inode 数就无法进行动态调整。正常来说,一般不太会出现某个分区的 Inode 耗尽而磁盘空间尚余的情况,除非像我碰到的这样垃圾小文件疯长而又没进行有效的清理。但如果确实需要的话,可以在创建文件系统(比如用 mke2fs )的时候根据实际需要来调整这个参数(比如分区如果用于存放超大视频文件的话 Inode 的数量可以少一些;如果打算存放的文件是大量小于 2k 的迷你文件的话就要考虑多创建一些 Inode)。 中国网管论坛bbs.bitsCN.com

    使用df -i命令可以看到每个分区的总inode数目和被使用的以及空闲的inode数目

网管网www_bitscn_com

    首先我们测试一下将Inode占用完的情况:先找到一个200K大小的文件(test.log),然后通过如下命令将其拆成数个小文件: 网管u家u.bitscn@com

    split -a 10 -b 1 test.log z

网管u家u.bitscn@com

    多次重复以上的动作,即可将Inode全部占用完。此时导致的现象是虽然通过df -k可以查看系统还存在剩余的空间,但由于无法分配Inode,导致无法新建新文件了。

网管网www_bitscn_com

    通过如下命令可以将这些大量的小文件删除:

中国网管联盟bitsCN.com

    find ~ -name "*.log" | xargs -L rm 网管u家u.bitscn@com

    注意不能直接通过rm命令删除,因为rm命令是将被删除的文件作为一个又一个参数传递进来的,当被删除的文件过多时,容易导致出现参数过长的错误提示:arg list too long 网管网www_bitscn_com

    当Inode被用尽时,也会导致Oracle的监听进程启动错误。

中国网管论坛bbs.bitsCN.com


TAGs
 上一篇:Ubuntu 8.04不能上网的问题的解决   下一篇:Linux系统下比较两个文件并删除相同部分
测试Linux平台Inode使用情况的过程命令 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: