`

linux(ubuntu)文件夹和文件最大数量

 
阅读更多
最近的项目需要在网上爬取些资料,爬取内容很简单就是数量很多,一条内容一个文件,写了个贼啦简单的爬虫,当时就考虑到操作系统支持的最大文件数量是多少,简单的google+百度了一下都说没上限。于是程序开始运行,当下载到500万条的时候出现了“设备上没有空间”的错误。查看了一下硬盘还有很大的空间呢,于是想到文件数量过多的问题,这次仔细查找了一下,发现些资料。
简单的说在linux下一个文件或文件夹对应一个inode,分区的inode的数量是有限的,如果inode用完,即使分区有空间也不能创建新的文件和文件夹了
。当然也有相应的解决,为了抓紧时间我用了最简单的方式:修改程序把保存路径换到另外一个分区。因为每个分区的inode是有上限的。
下面是查看inode数量的方法,inode相关资料以及inode用完的解决方法
一、目录数限制:

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

解决方法:

得到一个目录下一级子目录的总数

ls   -F   |   grep   /   |wc

二、 文件数目限制:

每个文件对应一个inodes ,如果iodes没有了,那就算有空间也不能再写文件了。
查看当前分区的iodes信息:

tune2fs -l /dev/hda2 
Free inodes:              374919  //我出现问题的时候free inodes的值为“Free inodes:              47”
解决办法:
1. 重新mkfs,mkfs时将inode数调的多一些(根据你fs中文件的总数而定),块尺寸调得小一些(根据每个文件的平均大小而定)

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

相关推荐

    【IT十八掌徐培成】Linux基础-01.VMware安装-Ubuntu-安装-Linux常用命令-文件夹结构.zip

    在VMware中安装Ubuntu Linux,步骤通常包括下载VMware软件、获取Ubuntu ISO镜像文件、创建新的虚拟机、配置虚拟机硬件参数(如内存、CPU数量、磁盘空间等)、挂载ISO文件作为CD/DVD驱动器,并启动安装过程。...

    ubuntu下 .img 镜像的制作

    本文将详细介绍如何在 Ubuntu 系统下创建包含特定文件夹和文件的 `.img` 镜像。 #### 准备工作 在开始之前,请确保已经安装了 Ubuntu 操作系统,并且具备基本的 Linux 命令行操作能力。此外,还需要准备一个文本...

    Ubuntu Linux系统的分区方案

    根据用户数量和预计数据量的不同,/home分区的大小可以从几GB到数百GB不等。 4. **/boot**:这个分区主要用于存放启动加载器(如GRUB)和内核映像文件。它的大小一般建议为100MB至500MB之间,以确保有足够的空间来...

    Ubuntu22.04安装教程以及Ubuntu下C++环境配置

    在配置虚拟机环境时,需要选择preview 并创建一个新的文件夹来安装 Ubuntu,以便更方便地寻找文件。然后,需要选择网络地址转换,并配置内存大小。建议按照 VMware 的推荐配置来设置内存大小。 五、安装 Ubuntu ...

    win7虚拟机上安装linux之ubuntu

    ### 在Win7虚拟机上安装Linux之Ubuntu及配置开发环境 #### 一、概述 本文将详细介绍如何在Windows 7操作系统环境下使用VMware Workstation 12安装并配置Ubuntu 12.04.5 LTS操作系统。此外,还将介绍如何安装VMware...

    How to Build a Ubuntu Linux host under VirtualBox

    为了方便地在Ubuntu和Windows之间传输文件,可以设置共享文件夹。在VirtualBox设置中,选择“共享文件夹”,然后添加需要共享的文件夹。启动虚拟机后,通过挂载共享文件夹即可在虚拟机内部访问这些文件。 ##### 8. ...

    ubuntu for Mac (m1)

    - 文档中提到了多个Ubuntu版本的镜像文件,包括16.04、18.04、20.04和22.04。 - 您可以根据自己的需求选择合适的Ubuntu版本进行下载。对于日常使用和开发环境来说,推荐使用最新的稳定版本,即Ubuntu 22.04 LTS。 ...

    Linux(ubuntu22.04)系统Opencv4.7和opencv-contrib4.7编译CMAKE时缺失包

    在Linux(Ubuntu 22.04)系统中编译OpenCV 4.7和OpenCV Contrib 4.7时,经常会遇到CMake过程中因网络问题导致第三方库下载失败的问题。OpenCV是一个强大的计算机视觉库,它包含了大量用于图像处理、特征检测、对象...

    ubuntu安装与配置

    - **访问共享文件夹**: 在Windows中访问Ubuntu提供的共享文件夹。 通过上述步骤,您可以全面了解Ubuntu的安装与配置过程,以及如何在虚拟机环境中高效使用Ubuntu系统。这对于初学者来说是非常宝贵的指南,不仅能够...

    Ubuntu精美桌面

    保持桌面整洁可以提高工作效率,使用文件夹或者Dock栏来整理常用的应用程序和文件,可以使得工作空间更加有序。 总之,Ubuntu精美桌面是一个涵盖广泛的主题,包括但不限于壁纸更换、图标美化、桌面环境定制、窗口...

    Spark本地版安装教程(Ubuntu).docx

    注意,为了更好地理解和使用这些工具,建议深入学习Linux命令行操作,如文件管理、进程控制等。同时,掌握Scala或Python编程语言,因为它们是Spark的主要编程接口。在实践过程中,遇到问题要善于查阅官方文档和社区...

    Ubuntu权威指南(2/2)

    1.4 安装Ubuntu Linux系统 9 1.4.1 安装前的准备 10 1.4.2 安装Ubuntu Linux系统 11 1.4.3 安装后的软件维护与更新 16 第2章 GNOME桌面环境 18 2.1 GNOME桌面环境概述 19 2.1.1 GNOME注册界面 19 2.1.2 GNOME桌面...

    Ubuntu权威指南(1/2)

    1.4 安装Ubuntu Linux系统 9 1.4.1 安装前的准备 10 1.4.2 安装Ubuntu Linux系统 11 1.4.3 安装后的软件维护与更新 16 第2章 GNOME桌面环境 18 2.1 GNOME桌面环境概述 19 2.1.1 GNOME注册界面 19 2.1.2 GNOME桌面...

    Ubuntu16.04中配置Qt5.9.1和OpenCV3.4.0过程

    设置处理器数量和内存大小。 7. 选择网络连接模式为“NAT”。 8. 选择硬盘容量,默认即可。 9. 最后,点击“完成”。 10. 选择ISO镜像文件,即下载好的Ubuntu 16.04镜像。 11. 启动虚拟机进行Ubuntu系统的安装...

    虚拟机与Linux的安装

    以Ubuntu、CentOS或Fedora等常见的Linux发行版为例,安装过程通常包括以下步骤: 1. 下载Linux发行版的ISO镜像文件。 2. 在虚拟机软件中创建新虚拟机,选择合适的操作系统类型(如Linux,再选择具体版本)。 3. 指定...

    winxp下的linux虚拟

    常见的Linux发行版有Ubuntu、CentOS、Fedora等,它们在功能、界面和社区支持上各有特点,适合不同的用户群体。 4. **虚拟机配置**:在VMware Workstation中,用户需要配置虚拟机的硬件参数,如分配给虚拟机的内存...

    vm创建linux系统

    常见的Linux发行版包括Ubuntu、CentOS、Fedora等。 #### 3.5 配置网络 为了使虚拟机中的Linux系统能够正常上网,还需要设置网络连接方式。通常可以选择桥接模式或NAT模式。桥接模式下,虚拟机将被视为与宿主机同等...

    linux环境搭建

    **Linux环境搭建**主要涉及在虚拟机中安装和配置Linux系统(本例为Ubuntu),并在此基础上安装一系列开发工具和软件,如Java、Hadoop、MySQL和Spark等。本文将详细介绍如何在VMware Workstation中安装Ubuntu系统,并...

Global site tag (gtag.js) - Google Analytics