`

Linux系统中限制目录数和文件数的方法详解

阅读更多
限制Linux系统目录数和文件数的方法。

根据需要进行参数配置,实现更优的性能,有助于设计更为合理的存储结构。

一 目录数限制
RedHat Entere LinuxAS环境中。

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

查询一个目录下级子目录的总数
$ ls -F | grep “/” | wc


1) 创建子目录
2) Linux为了cpu的搜索效率而规定的,要改变数目要重新编译内核.

二 文件数目限制
每个文件对应一个inode,如果inode没有了,那就算有空间也不能再写文件了。
查看某个分区的inodes信息:
# tune2fs -l /dev/sda5 | grep “inodes”
Free inodes: 1247005

解决办法:
1) 重新mkfs,mkfs时将inode数调的多一些(根据你fs中文件的总数而定),块尺寸调得小一些(根据每个文件的平均大小而定)
2) 使用loopback文件系统临时解决
在/usr中(可以在别处)创建一个大文件,然后做成loopback文件系统,将原来的文件移到这个文件系统中,并将它mount到/usr下合适的位置。
这样可以减少/usr中的文件数目,但是系统性能有损失

三 单个目录下文件数限制
Freebsd下有65535的限制,通过重新编译内核可以更改。(查看/usr/include/sys/syslimits.h)
不建议在一个目录下放太多文件,会影响系统性能。
ulimit -a 命令查看所有的限制,并能临时改变限制。

没有优化或修改内核的测试,测试平台:RHEL5U3_x64
测试ext3文件系统下filename最大字符长度:
LENTH=`for i in {1..255};do for x in a;do echo -n $x;done;done`
touch $LENTH

当增加到256时,touch报错,File name too long
linux系统下ext3文件系统内给文件/目录命名,最长127个中文字符,英文支持255个字符

测试ext3文件系统下一级子目录的个数限制
RHEL5U3_x64
# for i in {1..32000}; do mkdir $i; done
mkdir: cannot create directory `31999′: Too many links
mkdir: cannot create directory `32000′: Too many links

ext3文件系统一级子目.Linux为了cpu的搜索效率规定的,要改变数目要重新编译内核.

测试ext3文件系统下单个目录里的最大文件数
单个目录下的最大文件数没什么特别限制,受限于所在文件系统的inode数限制
df -i
或者使用tune2fs -l /dev/sdaX
或者dumpe2fs -h /dev/sdaX 查看可用inode数

后两个命令输出结果是一样的,跟df所得出的可用inode数会有些误差

常用两种解决办法:
1 重新mkfs,ext3默认block大小4096 Bytes,block设置小一些inode数设置大一些
2 使用loopback文件系统临时解决:
在/usr中(也可以在别处)创建一个大文件,然后做成loopback文件系统,将原来的文件移到这个
文件系统中,并将它mount到/usr下合适的位置。这样可以大大减少你/usr中的文件数目,系统性能会有损失。

测试打开文件数限制(文件句柄、文件描述符)
ulimit -n 65535设置,或者/etc/security/limit.conf里设置用户打开文件数、进程数、CPU等.
分享到:
评论

相关推荐

    Linux磁盘及文件系统管理详解

    综上所述,通过对硬盘物理结构、逻辑结构和文件系统逻辑结构的理解,我们可以更好地管理Linux系统中的磁盘空间和文件系统,从而避免磁盘容量浪费或文件存储不足的问题。这对于系统管理员来说是非常重要的技能。

    LINUX系统的硬件配置方法.pdf

    在Linux中,硬件设备被视为文件,通过文件系统进行管理和操作,这一概念称为设备文件。本文将深入探讨Linux系统如何进行硬件配置,包括硬盘分区、硬件设备的命名规则以及配额管理。 首先,Linux将硬盘视为一个文件...

    linux分区图解+详解

    3. **根分区(/)**:这是Linux系统的核心分区,包含了所有系统文件和目录,相当于Windows的C盘。在示例中,剩余的空间被分配给了EXT3的根分区,并选择“使用全部可用空间”。 Linux分区还涉及到基本分区和逻辑分区...

    Linux 文件和目录的属性

    ### Linux 文件和目录的属性详解 #### 1. Linux 文件属性概说 在 Linux 操作系统中,每一个文件和目录都具有丰富的属性信息。这些属性不仅帮助用户了解文件的基本信息,还提供了对文件进行管理所需的控制机制。主要...

    linux中passwd文件详解

    为了提高安全性,许多Linux系统会使用shadow技术,将加密后的用户口令字存放到/etc/shadow文件中,而/etc/passwd的口令字段中会存放一个特殊字符,如“x”或者“*”。 3. 用户标识号(UID):这是一个整数,系统...

    Linux文件特殊权限SGID-UID详解

    在 Linux 操作系统中,为了实现更为灵活和安全的权限管理机制,除了基本的读(r)、写(w)、执行(x)权限外,还引入了一些特殊的权限控制方式,包括 Set User ID (SUID)、Set Group ID (SGID) 和 Sticky Bit (SBIT)。...

    Linux命令详解手册

    Linux命令详解手册是一本适合Linux新手和有一定基础的用户深入学习Linux命令的指南。它详细介绍了大量的Linux命令,涵盖了系统管理、系统设置、文档编辑以及压缩备份等多个方面的操作。掌握这些命令对于理解和使用...

    Linux系统性能测试

    在Linux系统中进行性能测试,有几个核心的工具和目录是必不可少的。这些工具可以帮助我们深入了解系统的运行状态,包括CPU使用率、内存使用情况、磁盘I/O、网络流量等关键指标。 ##### **1. /proc 目录** `/proc` ...

    Linux基本的命令详解

    在深入探讨具体的Linux命令之前,先了解Linux系统中的关键目录及其作用非常重要。 1. **/etc/default/useradd**:此文件用于存储添加用户时的默认配置信息。 2. **/etc/passwd**:这是一个文本文件,包含了系统中...

    开发Linux操作系统后台服务进程详解

    守护进程在Linux操作系统中扮演着重要的角色,它们作为后台服务,独立于控制终端,执行预设的任务或响应特定事件。常见的守护进程有inetd(Internet服务器)、httpd(Web服务器)、crond(作业规划进程)和lpd(打印...

    Linux文件查找技巧

    在Linux系统中,不同用户对文件或目录有不同的访问权限。如果普通用户尝试查找某些受限制的目录中的文件,可能会遇到“Permission denied”的错误。此时,可以使用重定向来避免这类问题。 **示例:** 为了避免查找...

    linux系统下的 DCMTK-3.6.0

    **Linux系统下的DCMTK-3.6.0详解** DCMTK(DICOM Toolkit)是一套开源的软件库和工具集,专为处理DICOM(Digital Imaging and Communications in Medicine)标准而设计,广泛应用于医学图像通信、医学影像处理和...

    linux网络服务实验.doc

    - 在Windows中,使用命令行工具(如`ftp`命令)连接到Linux系统的FTP服务,下载`login.txt`文件到C盘目录下。 7. **实验记录**: - 实验的每个步骤,包括IP地址配置、互相ping通的过程以及FTP文件传输等,都需要...

    磁盘与文件系统详解(FAT32+NTFS+安全删除文件流程及C代码实现)

    ### 磁盘与文件系统详解 #### 零、MBR DPT EBR - **MBR(主引导记录/扇区)** - 作为磁盘的第一个扇区,通常位于0柱面0磁道1扇区的位置,占据512字节的空间。 - 包含446字节的引导程序、64字节的DPT(磁盘分区表...

Global site tag (gtag.js) - Google Analytics