Ruby进程如何限制其CPU使用率?

Ner*_*ian 6 ruby performance

假设我希望Ruby进程不要使用超过15%的CPU.可能吗?怎么样?

mu *_*ort 11

您可以尝试使用Process.setrlimit标准核心:

设置进程的资源限制.

这看起来它只是setrlimit来自C库的包装器,所以它可能只在Unix-ish平台上可用.setrlimit不支持CPU百分比限制,但它支持以秒为单位限制CPU时间.

如果你只是试图阻止你的Ruby进程占用整个CPU,那么你可以尝试调整它的优先级,Process.setpriority它只是libc的包装器,setpriority并提供对进程调度优先级的一些控制.同样,可用性可能会受到您的平台的限制,但它应该适用于Linux,OSX或任何其他Unix-ish系统.