小编use*_*563的帖子

我可以运行tmpfs大小

我正在尝试使用/ dev/shm tmpfs来编写我的文件.默认值是没有交换的物理RAM的一半.当我写出超出此挂载大小的内容时,会出现错误"磁盘上没有剩余空间".

我的问题是,它不应该使用交换空间而不是错误输出吗?有没有办法可以通过一个选项让我的应用程序耗尽比为tmpfs分配的更多?

如果我的某个进程正在运行并且几乎占用了/ dev/shm中的所有空间并且我有另一个正在运行的进程(在/ dev/shm之外),它还使用了超过50%的RAM空间,会发生什么?换了哪一个?

例如,假设我的总物理内存为40 GB,tmpfs为20 GB.其中一个进程是使用/ dev/shm,大约是20GB.现在还有另一个进程正在运行,大约需要30GB.换出哪一个进程?还是无法确定?

linux shared-memory

10
推荐指数
1
解决办法
2万
查看次数

Linux下跨进程共享数据

在我的应用程序中,我有一个进程分叉一个子进程,例如 child1,并且该子进程在磁盘上写入一个巨大的二进制文件并退出。然后,父进程派生出另一个子进程 child2,该子进程读取这个巨大的文件以进行进一步的处理。

文件转储和重新加载使我的应用程序变慢,我正在考虑完全避免磁盘 I/O 的可能方法。我已经确定的可能方法是 ram-disk 或 tmpfs。我可以以某种方式从我的应用程序中实现 ram-disk 或 tmpfs 吗?或者有没有其他方法可以完全避免磁盘 I/O 并可靠地跨进程发送数据。

c linux fork ipc

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

linux ×2

c ×1

fork ×1

ipc ×1

shared-memory ×1