增加httpd进程优先级有什么影响(负nice)?

Dan*_*ing 4 httpd task-scheduler nice

将进程调整为负的 nice 级别会增加进程的调度优先级。高优先级进程在低优先级进程之前运行。它们还可以在被抢占之前运行更长时间(它们获得更长的时间片)。

在 web 服务器上,使用负的 nice值运行httpd 进程应该减少上下文切换,从而提高整体性能

有没有人试过这样做?它有什么不同?响应时间是否有所改善?响应时间标准偏差是增加还是减少?吞吐量是否有所提高?

编辑:

我不打算降低其他进程的优先级;而且我不打算修复过载的系统。我想知道负的 nice 级别是否会影响减少的上下文切换,如果是,这对响应时间和吞吐量有什么影响。

EEA*_*EAA 6

我强烈建议要这样做。如果您的服务器负载如此之重,以至于 apache 无法获得所需的 CPU 时间,那么重新启动进程的影响将非常小(如果有的话)。此外,apache 将同时运行许多不同的进程。您可以重新使用父进程,它的子进程将继承父进程的优点,但是所有的 httpd 进程将在时间上相互争斗。

在旧内核(比如 90 年代末/00 年代初)中,我发现重新处理进程有一些价值(尽管我通常只降低优先级,而不是增加优先级)。使用现代内核中的调度程序,我从来没有发现它是必要的,甚至值得考虑。

总之,为了解决性能问题,在我开始指责进程优先级之前,我会注意许多其他领域。

  • 问题不在于服务器负载过重。假设事实并非如此。无论有多少个 httpd 进程或负载有多大,httpd 进程都会竞争 CPU 时间。重点是通过减少抢占和其他上下文切换,以牺牲交互性为代价来优化实际吞吐量;通过为每个 httpd 提供尽可能多的时间来进行上下文切换,整体性能应该会提高——这就是理论上的。我不想责怪进程优先级,我希望将其用作减少上下文切换的工具。 (2认同)
  • 我并不是想不同意你的观点;但是您是否有任何细节或理论来解释为什么优先处理流程会降低性能?我同意这可能没有太大区别,并且可能会增加“抖动”(响应时间标准偏差);但理论上它也应该增加整体吞吐量,因为系统将花费更少的时间进行上下文切换。你知道或有其他想法吗? (2认同)