商会资讯

 找回密码
 立即注册

QQ登录

只需一步,快速开始

用新浪微博连接

一步搞定

搜索
热搜: 活动 交友 discuz
查看: 6232|回复: 0
打印 上一主题 下一主题

关于Linux下总文件数与单个目录下子目录数/文件数限制问题

[复制链接]

109

主题

1

好友

3774

积分

管理员

Rank: 9Rank: 9Rank: 9

  • ta_mind
    mb_qb7
    2013-3-19 01:56
  • classn_01: 366 classn_02

    [LV.9]以坛为家II

    跳转到指定楼层
    楼主
    发表于 2016-11-22 16:56:08 |只看该作者 |倒序浏览
    一、文件数限制:
        系统所能生成的总的文件数受系统所剩节点数限制,执行
    tune2fs -l /dev/sda1(目录所在的分区) |grep inodes
        可以查看剩余节点数
    在一台ext3的系统中执行,结果为
    Free inodes:              845504
    2种解决办法:   
    1、重新mkfs,mkfs时将inode数调的多一些(根据你fs中文件的总数而定),块尺寸调得小一些(根据每个文件的平均大小而定)   
    2、使用loopback文件系统临时解决   
    在/usr中(也可以在别处)创建一个大文件,然后做成loopback文件系统,将原来的文件移到这个文件系统中,并将它mount到/usr下合适的位置。这样可以大大减少你/usr中的文件数目。但是系统性能会有点损失。
    3、选用XFS

    二、目录数限制:
        RHEL4.3中,在 同一个路径下,一级子目录的个数限制为31998 。如果你的应用生成的目录可能会超过这个数,那要注意进行目录分级。例如,如果目录 名为数字的话,可以将数字除以10000后的整数值做为父目录名(/data/1/13892);如果是目录名为字幕的,可以用前几个字符来做为父一级目 录(/data/ab/abcdefg)等等
    解决方法:
    得到一个目录下一级子目录的总数   
    ls -F | grep   /   |wc
    1、创建子目录
    2、linux为了cpu的搜索效率而规定的,要想改变数目大概要重新编译内核.

    三、单个目录下文件数限制:
        原来以为linux下单个目录内有文件数量限制,google了一番没有看到明确的说法,到是freebsd下有65535的限制,通过重新编译内核可以更改。(可以看看/usr/include/sys/syslimits.h)
        不过不建议在一个目录下放太多文件,会影响系统性能。




    补充: ulimit -a命令查看所有的限制,并能临时改变限制

    分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    分享分享0 收藏收藏0 转发到微博
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    回顶部