在达到一定内存使用量后强制用户使用交换空间(使用 limits.conf?)

在达到一定内存使用量后强制用户使用交换空间(使用 limits.conf?)

我有一个后端应用程序,由我们服务器上托管的开发人员内部使用,但不幸的是,该应用程序需要使用 Passenger 和 Ruby,这两者都非常耗内存。

我有一个 SSD 交换文件,它应该可以为我们的使用提供合理的性能,我想强制此应用程序使用交换空间并为我们的前端应用程序保留 RAM 开放。

所以问题是,有没有办法强制进程/用户(该进程在特定用户下运行)尽可能多地使用交换空间?我认为 limits.conf 可能可以,但我不想它给出内存不足错误,只需切换到交换文件即可。

答案1

你应该看看cgroups(对照组)。有一些临时信息cgroups 还说

请注意,内存限制仅适用于 RAM 使用 - 一旦任务达到此限制,它们将开始交换。

这似乎正是您想要的。


如果您的后端开发人员应用程序给您的前端应用程序带来麻烦,那么将后端内容移动到它自己的服务器可能是个好主意。

相关内容