美文网首页
2021-06-07 [问题] Node.js Error: E

2021-06-07 [问题] Node.js Error: E

作者: yango3 | 来源:发表于2021-06-07 10:21 被阅读0次

    错误描述

    一个Node.js应用运行时出现了错误 , Error: ENOSPC: no space left on device
    使用df查看,磁盘上的空间还很大,此时只占用了20GB空间,为什么呢?

    应用场景: Linux ext4, 在某个目录下,会经常写入一个小文件,数量是很大的,百万级别。

    按照网上的一些线索:

    (1) 使用 docker system prune -af
    这个只是去删除docker images

    (2) 修改linux fs 最大user watches数量
    默认为 8*1024=8192
    cat /proc/sys/fs/inotify/max_user_watches

    后来发现systemlog里报错,
    EXT4-fs warning
    index full, reach max htree level :2
    Large directory feature is not enabled on this filesystem

    原来问题是:

    This "large directory" feature allows for exceeding the current limit of roughly 10 million entries allowed in a single directory with EXT4. The revised limit wasn't mentioned.

    large_dir
    This feature increases the limit on the number of files
    per directory by raising the maximum size of directories
    and, for hashed b-tree directories (see dir_index), the
    maximum height of the hashed b-tree used to store the
    directory entries.

    // 查看是否打开了large directory feature
    sudo tune2fs -l /dev/sdc | grep large_dir
    // 打开 large directory feature , /dev/sdc为磁盘的设备名称
    sudo tune2fs -O large_dir /dev/sdc

    运行后,问题似乎解决了。

    xfs文件系统由于是Dynamically Allocated inodes, 似乎也支持目录下的无限个文件。

    相关文章

      网友评论

          本文标题:2021-06-07 [问题] Node.js Error: E

          本文链接:https://www.haomeiwen.com/subject/hffleltx.html