/tmp/orbit-oracle/目录inode耗尽
# du -cks * | sort -nr | head -n?
20
删除部分文件,释放inode。
如需转载请注明出处:No space left on device?http://www.ttlsa.com/html/2066.html
?===========
?
http://www.zijidelu.org/thread-46862-1-1.html
看到这个错误,第一个反应是磁盘空间满了;但?df?一看,每个分区的空间都还富余的很。从?munin?的监控图表上看 Filesystem usage 也很平稳,但下面的 Inode usage 就有问题了,其中一个分区的 usage 已经到了100%。赶紧跑到服务器上?df -i?检查,果然是 Inode 耗尽。原来这个分区是用来扔各种日志和临时文件的,其中有某个程序产生的临时文件又小又多,又没有进行定时回滚,造成在磁盘空间耗尽之前文件系统的 Inode 就被用光了。
Linux/Unix like OS 的文件系统中每个目录树中的节点并不是像 Windows 那样直接包含文件的具体信息,而只包含了文件名和 Inode number 。通过 Inode number 所找到对应于文件名的 Inode 节点中才真正记录了文件的大小/物理地址/所有者/访问权限/时间戳/被硬链接的次数等实际的?metadata?。因此你可以在 Linux 系统中通过硬链接( hard link ) 的方式给某个文件创建无数个位于不同目录下的文件名,而实际的文件数据只需要一份拷贝。
但也正因为这种文件系统的结构,当你在 Linux 中进行 IO 操作的时候,需要的资源除了磁盘空间以外,还要有剩余的 Inode 才行。缺省情况下, Linux 在系统安装过程中按照1个 Inode 对应 2k 磁盘空间来计算每个分区的最大 Inode 数。一旦文件系统创建之后,每个分区可用 Inode 数就无法进行动态调整。
正常来说,一般不太会出现某个分区的 Inode 耗尽而磁盘空间尚余的情况,除非像我碰到的这样垃圾小文件疯长而又没进行有效的清理。但如果确实需要的话,可以在创建文件系统(比如用?mke2fs?)的时候根据实际需要来调整这个参数(比如分区如果用于存放超大视频文件的话 Inode 的数量可以少一些;如果打算存放的文件是大量小于 2k 的迷你文件的话就要考虑多创建一些 Inode)。
(编辑:重庆站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
方法2通过find命令,将文件清单输出到mv命令,使其一次处理一个,这样就完全避免了过量参数的存在,另外通过不同的参数,可以指定除了名称以外的时间戳,权限,以及inode等匹配模式。 ? 方法3 : 创建shell函数 ? function huge_mv () 写一个shell函数并不涉及到某种程度的复杂性, 这种方法比方法1和方法2相比更加灵活。 ? function huge_mv () 相比例3.1,例3.2生成了文件的md校验散列文件和名字备份,符合给自己留条后路的哲学。 ? 方法4 : 终极解决方案,重新编译内核 首先使用这个方案之前要谨慎,因为涉及到修改内核源代码,在生产环境中还是要斟酌一下并做好测试。 修改 MAX_ARG_PAGES数值为 64 或者更高即可完善的解决参数受限问题。 ? ================================ http://blog.csdn.net/iefreer/article/details/6124761 http://www.ttlsa.com/linux/no-space-left-on-device/ 一. 收到报警 线上有一台服务器磁盘检测告警了,提示空间不足。爬到服务器查看相关信息: /data分区只使用了71%,创建文件却提示磁盘空间不足,按理说不会出现这种情况的。难道inode耗尽? 二. 分析原因 查看/data分区inode使用情况相关信息如下: 果不其然,IUse%=100%,导致无法创建文件。 在linux系统下,硬盘被分区格式化后,包含inode和block,inode是用来记录文件的大小,物理地址,属主,属组,读写权限,时间戳,被硬链接的次数等等元数据的。block是用来存储数据的。正因为这种文件系统结构,在linux下,除了剩余磁盘空间之外,还要剩余inode才行,两者缺一不可的。可通过dumpe2fs -h /dev/sdb1或tune2fs -l /dev/sdb1 来查看最大inode数和inode大小。一旦文件系统创建后,每个分区的可用inode数无法动态的进行调整,除非重新格式化。 三. 查找原因并解决 /data是线上业务数据目录,各种站点、日志、临时文件存放目录。其中有个程序产生大量的小文件造成的。可通过下面的命令找出占用空间最多的文件或目录: |