假设我希望Ruby进程不要使用超过15%的CPU。可能吗?怎么样?
答案 0 :(得分:11)
您可以尝试使用标准核心中的Process.setrlimit
:
设置流程的资源限制。
这看起来它只是来自C库的setrlimit
的包装器,所以它可能只在Unix-ish平台上可用。 setrlimit
不支持CPU百分比限制,但它确实支持以秒为单位限制CPU时间。
如果你只是想让你的Ruby进程不要占用整个CPU,那么你可以尝试用Process.setpriority
来调整它的优先级,setpriority
只是libc的{{3}}的包装,并提供一些控制权。进程的调度优先级。同样,可用性可能会受到您的平台的限制,但它应该适用于Linux,OSX或任何其他Unix-ish系统。