gpt4 book ai didi

c - 在一个文件夹中写入十亿个文件但出现 "(No space left on device)"错误

转载 作者:行者123 更新时间:2023-11-30 19:44:56 24 4
gpt4 key购买 nike

我尝试使用多线程在一个文件夹中写入 10 亿个文件,但接下来我的程序写入了 2000 万个文件,我得到“设备上没有剩余空间”。我没有关闭我的程序,因为它仍在写入相同的文件。

  • 我对“inode”没有任何问题,我只使用了 7%。
  • /tmp、/var/tmp没有问题,都是空的。
  • 我将 fs.inotify.max_user_watches 增加到 1048576。

我使用 debian 和 EXT4 作为文件系统。有没有同样的人遇到这个问题,非常感谢您的帮助。

运行tune2fs -l/path/to/drive给出

Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize

Filesystem flags: signed_directory_hash

Default mount options: user_xattr acl

Filesystem state: clean

Errors behavior: Continue

Filesystem OS type: Linux

Inode count: 260276224

Block count: 195197952

Reserved block count: 9759897

Free blocks: 178861356

Free inodes: 260276213

First block: 0

Block size: 4096

Fragment size: 4096

Reserved GDT blocks: 1024

Blocks per group: 24576

Fragments per group: 24576

Inodes per group: 32768

Inode blocks per group: 2048

Flex block group size: 16

Filesystem created: ---

Last mount time: ---

Last write time: ---

Mount count: 2

Maximum mount count: -1

Last checked: ---

Check interval: 0 ()

Lifetime writes: 62 GB

Reserved blocks uid: 0 (user root)

Reserved blocks gid: 0 (group root)

First inode: 11

Inode size: 256

Required extra isize: 28

Desired extra isize: 28

Journal inode: 8

Default directory hash: ---

Directory Hash Seed: ---

Journal backup: inode blocks

最佳答案

检查这个问题 How to store one billion files on ext4?

你的 block 比 inode 少,这是行不通的,尽管我认为这是你的问题中最少的。如果你真的想这样做(数据库会更好吗?),你可能需要研究除 ext4 zfs 之外的文件系统,它是一个允许每个目录有 2^48 个条目的选项,并且应该这样做你想要什么。

如果这个问题https://serverfault.com/questions/506465/is-there-a-hard-limit-to-the-number-of-files-a-directory-can-have无论如何,使用 ext4 的每个目录的文件数量有限制,您可能会遇到这个限制

关于c - 在一个文件夹中写入十亿个文件但出现 "(No space left on device)"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27130302/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com