• Linux系统目录数和文件数限制


    对于系统管理员来说,了解系统的一些限制是非常有必要的,这样可以根据需要进行必要的参数配置和调整,进而实现更优的性能,对于系统设计人员甚至程序员来说,了解系统的一些限制,也会有助于设计更为合理的存储结构。

      一 目录数限制

      RedHat Enterprise Linux AS 4.0 Update 3

      在同一个路径下,一级子目录的个数限制为31998,如果你的应用生成的目录可能会超过这个数,那要注意进行目录分级。例如,如果目录名为数字的话, 可以将数字除以10000后的整数值做为父目录名 (/data/1/13892),如果是目录名为字母的,可以用前几个字符来做为父一级目录 (/data/ab/abcdefg)等等。

      通过以下的命令行可以得到一个目录下一级子目录的总数:

    $ ls -F | grep "/" | wc
      解决方法:

      1) 创建子目录

      2) Linux为了cpu的搜索效率而规定的,要想改变数目大概要重新编译内核. 

      二 文件数目限制

      每个文件对应一个inode,如果inode没有了,那就算有空间也不能再写文件了。

      通过以下命令行,可以看某个分区的inodes信息:

    [root@boss tmp]# tune2fs -l /dev/sda5 | grep "inodes"
    Free inodes:              1247005
    [root@boss tmp]#
      2种解决办法:  

      1) 重新mkfs,mkfs时将inode数调的多一些(根据你fs中文件的总数而定),块尺寸调得小一些(根据每个文件的平均大小而定)  

      2) 使用loopback文件系统临时解决

      在/usr中(也可以在别处)创建一个大文件,然后做成loopback文件系统,将原来的文件移到这个文件系统中,并将它mount到/usr下合适的位置。这样可以大大减少你/usr中的文件数目。但是系统性能会有点损失。

      三 单个目录下文件数限制

      原来以为Linux下单个目录内有文件数量限制,Google了一番没有看到明确的说法,到是Freebsd下有65535的限制,通过重新编译内核可以更改。(可以看看/usr/include/sys/syslimits.h)

      不过不建议在一个目录下放太多文件,会影响系统性能。

      补充: ulimit -a 命令查看所有的限制,并能临时改变限制。
  • 相关阅读:
    【特别推荐】12款最佳的网站速度和性能测试工具
    Skeljs – 用于构建响应式网站的前端开发框架
    EpicEditor – 可嵌入的 JavaScript Markdown 编辑器
    12个学习 CSS3 网站布局设计的优秀案例
    15套流行的扁平化设计的界面素材【免费下载】
    JavaScriptOO.com – 快速找到你需要的 JS 框架
    15款最好的 jQuery Modal(模态窗口)插件
    开眼了!20个极具创意的移动界面动画效果
    ShareDrop – 苹果 AirDrop 服务的 HTML5 实现
    Furatto – 轻量,友好的响应式前端开发框架
  • 原文地址:https://www.cnblogs.com/osroot/p/1663627.html
Copyright © 2020-2023  润新知