我需要在linux (Ubuntu20.04.3LTS)上运行一个不是我自己编写的程序(即BLAST),而且我需要为这个特定情况设置RAM使用的限制,因为我是在使用共享cpu。另外,我不喜欢安装或使用从其他人开发的脚本。我想我可以用点钱,就像:
prlimit --pid xxxx --rss=yyy但我不确定--rss是限制内存使用的正确参数,因为我是这个领域的新手,我对手册页中报告的不同选项感到有点困惑。此外,我也不知道如何表达这样的限制,我没有找到任何关于它(我需要将内存限制设置在300 to左右).So,我看了一个老的相关问题,但我仍然有这些疑问。
我还阅读了对其他问题的答复,但据我所知,这适用于当前用户(虽然我不想为我的特定用户设置限制,而只针对我目前正在运行的专门化进程)。
我试着使用以下命令:
prlimit --memlock=1024 --rss=1024 --pid xxxxxx限制设置为1024,只是为了看看它是否有效,但它没有。我的进程不会被杀死。知道我做错了什么吗?有其他解决办法吗?
提前感谢!
发布于 2022-04-03 13:57:08
通常,当我需要对一个一次性进程执行此操作时,我将在使用systemd-run中设置一些限制:
systemd-run --scope -p MemoryMax=300G {program or script}这将为进程和任何子线程提供使用cgroups有效管理资源。尽管该命令将询问您的密码,但该进程在您的用户下运行,并且不使用sudo。
https://askubuntu.com/questions/1400686
复制相似问题