![每秒将数百个文件写入磁盘](https://linux22.com/image/1373630/%E6%AF%8F%E7%A7%92%E5%B0%86%E6%95%B0%E7%99%BE%E4%B8%AA%E6%96%87%E4%BB%B6%E5%86%99%E5%85%A5%E7%A3%81%E7%9B%98.png)
我正在开发一款软件,它能帮助我们每秒将 100 到 200 个文件写入磁盘。文件大小从 1k 到 3k 不等。Ubuntu是操作系统,使用ext4文件系统。
到目前为止,我看到了一些奇怪的行为。首先索引节点用完了,导致我们收到“磁盘空间不足”的错误。但为了解决这个问题,我们已移至大分区并大幅增加了 inode 数量。
然而,我仍然收到“设备上没有剩余空间”错误。在不同的机器上。df -i
并df -h
报告有足够的可用空间和足够的可用 inode。
从与人们的交流中,我得到的答案各不相同,从“应该没问题”到“每秒写入磁盘的文件太多了”。我在 3 台不同的 Ubuntu 机器上都遇到过这种情况。
这个问题有明确的答案吗?对于这么多的写入,我应该只使用数据库还是操作系统应该能够处理这个问题?
答案1
打开文件描述符的数量可能有问题;您可以通过检查系统的当前值ulimit -n
。
如果这还不够,请通过执行来增加它ulimit -n 50000
(例如)。