限制 CPU 和 *nix 进程的内存

Limit CPU & Memory for *nix Process

是否可以限制 CPU 和 *nix 进程的内存?

CPU 限制可能类似于 "use no more than 10% of one core"。

内存限制可能看起来像"use no more than 100Mb",OS可能会限制它或在它试图超过限制时杀死进程,两种方式都可以。

任何可以做到这一点的*nix 都可以。

好像可以用虚拟机来实现,但是不能接受,开销太大

尝试CPULimit

cpulimit 是一个简单的程序,它试图限制进程的 cpu 使用(以百分比表示,而不是 cpu 时间)。当您不希望它们吃得太多时,这对于控制批处理作业很有用 cpu。它不作用于 nice 值或其他调度优先级的东西,而是作用于真正的 cpu 用法。此外,它还能够动态快速地适应整个系统负载。

如果您碰巧使用 Solaris,限制资源使用的能力是一项本机功能。

可以使用 rcap.max-rss setting while CPU usage can be limited per project using the project.cpu-caps.

限制每个进程的内存 (RAM) 使用量

请注意,与裸机 OS 实例相比,Solaris 还允许 OS 级别的虚拟化(a.k.a. 区域),如果有的话,它没有显着的开销。

资源上限是 Solaris 区域配置的一部分。