处理漂亮值

我只是在寻求一个关于一个过程的好处价值的澄清,或者如果我对这个错误有所了解的话,可能还有一些build议。

假设我在一台机器上有几十个Web服务器进程,而且我担心它们中的任何一个出现并占用了系统的所有资源。 马上就会好起来 – 我会给他们所有积极的善意价值,所以他们会使用任何资源,如果他们可用,但放弃,如果有需求他们。 这会按我的预期执行吗? 或者,如果他们都有相同的善意价值,那么他们基本上都是一样的,他们都是0?

基本上我想知道内核如何决定哪些进程应该优先考虑,如果它们都具有相同的优先级值并且都需要资源? 由于只有39个可能的漂亮程度(-20到+19 iirc),所以如果它以这种方式工作,我不能给每个服务器不同的值。

任何关于这个澄清将不胜感激。

我遇到过的其他一些解决scheme可以防止盗版:

  • cpulimit工具(对我来说segfaults)
  • ulimit – 每个用户的基础上,听起来很理想,因为每个服务器都有自己的用户,虽然它只提供cputime作为cpu资源使用的度量。 我很好奇,如果这意味着经过的时间或每秒的CPU时间的百分比或其他东西。
  • 过程控制组 – 从谷歌结果的一些初步浏览,这看起来像一个更复杂的解决scheme,但它可能不得不这样做。

首先,我build议你的linux发行版可能已经configuration好了,比如果你开始盗用诸如改变整个系统的好的值之类的东西,那么结果会比你想要的更好。

其次,我不认为会做你想做的事。 它有一些效果,但不如你想象的那样深刻。 调度器的类和它的内部规则集有更多的效果。 此外,你可能会遇到的问题是内存使用情况,而不是CPU时间,所以好的不可能是一种治疗方法。

ulimit系统可能更符合你的想法。

不过,我的主要build议是,你只能解决现实世界的问题 。 在事情发生之前担心事情会导致你因为稻草人问题而将系统与pipe道胶带连接起来。 当你有一个真正的问题,最好的解决scheme将更加明显。 当然,devise最差的校正和规划是件好事,但在这种情况下,您的Linux发行版可能已经为您完成了大部分工作。