linux - 过多创建和删除文件缺点

标签 linux filesystems programming-languages

我有一个目前运行良好的应用程序,

因为我在我的应用程序中使用了很多不同的服务(os 服务)和编程语言(python,java,C++,MySql), 我需要使用文件系统在它们之间进行通信,所以我创建和删除文件大约每分钟 1000 个文件

正如我所说,系统目前运行良好,但我担心这种方法可能会缩短硬盘的预期生命周期。

只是为了把事情弄清楚。它是一个 linux(ubuntu) 系统。

所以我的问题是“过度创建和删除文件(和文件夹)是否会导致长期问题?

最佳答案

这不太可能,1000 次写入/分钟(16 次/秒)并非不正常。使用 vmstat 1 检查在未运行您的应用程序的常规系统上每秒发生的写入次数(查看 bo 列)。在我相对安静的 Linux 机器上,我会看到每分钟 300-600 次写入。

Linux 缓冲区缓存将减少写入次数。写入首先命中缓存,仅刷新到磁盘 on a certain schedule .许多操作将单独发生在内存中,因为您正在创建/删除的一些文件不会存在足够长的时间来刷新到磁盘。

如果您不需要数据在重启后仍然存在,请考虑使用 tmpfs(通常在/tmp 上,您也可以专门为您的目的创建一个)。这样你就永远不会碰到磁盘。您还可以通过避免写入同步来提高性能。

根据您的应用,您可能需要考虑使用 named pipes使用 mkfifo 命令。这为您提供了一种显示为磁盘文件的基于内存的 IPC 机制。

关于linux - 过多创建和删除文件缺点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27444990/

相关文章:

node.js - 如何在 Linux 上升级 angular-cli? CLI v6 不支持 Node.js V6.14.3

c - 如何在linux内核中选择 "sys'和 "proc"文件

ruby - Traits vs. Interfaces vs. Mixins?

language-agnostic - 解析二进制和字 rune 件的语言

Linux diff 仅在输出中获取行号

linux - 使用 find -name 命令的通配符和双引号

regex - Bash 脚本 sed -e

iphone - iPhone开发中有没有快捷方式进入/Resources/文件夹?

windows - 添加或扩展windows下的文件系统支持

java - 假设 - 支持非字符串文本中的非 ASCII 字符