【发布时间】:2011-11-06 17:37:56
【问题描述】:
我正在尝试使用 /dev/shm tmpfs 来编写我的文件。默认值是物理 RAM 的一半,没有交换。当我写入超出此挂载大小的内容时,它会给出错误“磁盘上没有剩余空间”。
我的问题是,它不应该使用交换空间而不是出错吗?有没有一种方法可以让我的应用程序用完的内存超过分配给 tmpfs 的内存,也许是通过一个选项?
如果我的一个进程正在运行并且已用完 /dev/shm 中的几乎所有空间,而我正在运行另一个进程(在 /dev/shm 之外),它也使用了超过 50% 的 RAM 空间,会发生什么情况?哪一个被换掉了?
例如,假设我的总物理内存为 40 GB,tmpfs 为 20 GB。其中一个进程正在使用 /dev/shm,大约 20GB。现在有另一个进程正在运行,大约需要 30GB。哪一个进程将换出?还是无法确定?
【问题讨论】:
标签: linux shared-memory