限制 Debian 所有进程的 CPU/RAM

限制 Debian 所有进程的 CPU/RAM

每当我运行 CPU/RAM 密集型任务时,我都无法使用我的计算机,它会冻结,直到任务完成。我正在寻找一种方法来限制所有进程的每个进程的资源。

也就是说,没有任何进程的 CPU 使用率超过 25% 或 RAM 使用率超过 3GB。

谢谢

答案1

限制全部将流程限制在任意限制范围内可能并不像您最初想象的那么有益。

正如评论指出的那样,你可以限制 CPU,但根据流程的不同,您可能更愿意简单地设置 nice- 进程的优先级(也称为进程优先级)。这样做将允许进程在您只是浏览网站且不使用任何 CPU 时全速运行,但一旦浏览器需要开始利用 CPU 来执行任何 JavaScript(作为示例),它就会让位于您的浏览器。

另一个选项是设置CPU 亲和性 进程的关联。这样操作系统就只能在一个特定的 CPU 核心上运行进程,而其他 3 个(就您而言)则可供其他可能需要它的任务使用。当您的进程是单线程进程(例如视频编码进程或源构建进程)时,这种关联非常有用;您可以将关联设置为第一个 CPU 核心,而其他 3 个核心则处于空闲状态(直到使用)。

还有ulimit,您可以使用它来设置软、硬限制或 RAM/CPU(尽管这是系统范围的而不是每个进程的)。

应该注意的是,限制 RAM 可能会产生意想不到的后果(例如交换使用),因此您应该在限制 RAM 之前尝试值nice、CPU 亲和性或ulimitCPU 时间。RAM 不像 CPU,使用越多就会降低整体系统性能;相反,当可以使用更多 RAM 时,系统性能往往会提高,并且只有在必须使用交换区域而不是 RAM 时,您才会注意到性能下降(因为交换通常基于磁盘,并且比 RAM 慢几个数量级),如果您注意到大量交换区域与大量可用 RAM 一起使用,那么还有其他事情需要解决(例如内核设置)。

希望能够帮到你。

相关内容