【发布时间】:2020-03-31 15:01:22
【问题描述】:
我正在对一个使用系统中所有可用内存的多线程程序进行性能分析。我的操作系统是 Ubuntu 18.04。我试图将可用内存限制为例如 32GB,即使我的服务器可能有 128GB 可用内存。
一直没有找到可靠的解决方案。似乎ulimit 并不完全符合我的要求。
我还可以通过另一个进程阻塞内存(例如,一个将消耗 64GB RAM 的可控进程)。但即使出于这个目的,我也不确定如何可靠地阻塞内存。
非常感谢您的想法。
【问题讨论】:
-
Ram 磁盘没有帮助,但您应该检查 cgroups *(如果在您的内核中启用,它应该适用于 ubuntu)。 systemd 托管服务的描述:paranoids.at/cgroup-ubuntu-18-04-howto,对于 docker
docker run --memory=1G ….,对于带有 cgcreate/cgset/cgexec 的自定义进程树:dev.to/vga/… -
非常感谢您提供有关 cgroups 的信息。我正在查看您发送的链接并将尝试一下。话虽如此,RamDisk 似乎正在工作。为什么你认为这没有帮助?
标签: memory memory-management linux-kernel ubuntu-18.04