【问题标题】:Limiting the memory usage of a program in Linux在 Linux 中限制程序的内存使用
【发布时间】:2013-07-04 00:15:01
【问题描述】:

我是 Linux 和终端(或它使用的任何类型的命令提示符)的新手,我想控制一个进程可以使用的 RAM 量。我已经找了几个小时来找到一个易于使用的指南。我有一些限制它的要求:

  1. 将运行程序的多个实例,但我只想限制其中的一些实例。
  2. 我不希望进程在超出限制后崩溃。我希望它使用 HDD 页面交换。
  3. 该程序将在 WINE 下运行,并且是一个 .exe。

那么有人可以帮忙使用命令来限制 Linux 中进程的 RAM 使用吗?

【问题讨论】:

标签: linux memory limit ulimit setrlimit


【解决方案1】:

您使用 Wine 的事实在这个特定的上下文中没有任何区别,这留下了要求 1 和 2。要求 2 –

我不希望进程在超过限制后崩溃。我希望它使用 HDD 页面交换。

– 被称为限制进程的驻留集大小rss,实际上在Linux上做这件事相当重要,正如a question asked in 2010所证明的那样。您需要设置Linux control groups (cgroups)。幸运的是,Justin L.’s answer 简要介绍了如何执行此操作。请注意

  • 您应该使用自己的 Unix 用户名,而不是 jlebar,并且
  • 您应该使用wine /path/to/Windows/program.exe,而不是your/program

使用 cgroups 还可以满足您的其他要求 - 您可以启动任意数量的程序实例,但只有以 cgexec -g memory:limited 开头的实例会受到限制。

【讨论】:

    猜你喜欢
    • 2012-09-16
    • 1970-01-01
    • 1970-01-01
    • 2016-11-23
    • 1970-01-01
    • 1970-01-01
    • 2021-12-23
    • 2011-06-06
    • 2010-10-01
    相关资源
    最近更新 更多