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

时间:2011-05-15 14:13:30

标签: ruby performance

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

1 个答案:

答案 0 :(得分:11)

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

  

设置流程的资源限制。

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

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