增加httpd进程优先级的影响是什么(负面的好)?

将进程重新映射到不错的级别会提高进程的调度优先级。 高优先级进程在低优先级进程之前运行。 他们也被允许在被抢先之前跑得更长 (他们获得更长的时间片)。

在Web服务器上,运行带有负值的httpd进程 应该减less上下文切换 ,从而提高整体性能

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

编辑:

我不打算减less其他进程的优先级, 我不想修复一个重载的系统。 我想知道是否负面的好水平影响减less了上下文切换,如果是的话,这是什么影响响应时间和吞吐量。

我强烈build议要这样做。 如果你的服务器负载过重,Apache不能获得所需的CPU时间,那么重新编译一个进程将会产生非常小的影响。 另外,apache将有许多不同的进程在同一时间运行。 你可以renice父进程,其子将inheritance父母的好处,但所有的httpd进程将相互争夺时间。

在旧的内核(比如90年代末/ 00年代早期),我发现在重新生成过程中有一些价值(虽然我通常只是减less了优先级,而不是增加)。 有了现代内核中的调度器,我从来没有发现它是必要的,甚至是值得思考的。

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

警告:IANAKD(我不是内核开发者:)

假设我们正在谈论Linux,你可以阅读关于如何实现:

http://www.kernel.org/doc/Documentation/scheduler/sched-nice-design.txt

为了试图回答你的问题,它不会影响吞吐量,因为在阻塞I / O的同时,进程被优先化,服务静态内容的Web服务器很可能会被I / O限制。

另请参阅“ionice”命令 – 尽pipe除非不同的进程正在争夺I / O,否则它是无用的。

最终,我不认为减less上下文切换将有所作为。 一个服务于静态内容的Web服务器很可能花费所有的时间在I / O(networking或磁盘)上,而且CPU相对闲置。 现在处理器比I / O子系统function强大得多,它们很less成为许多服务器场景的瓶颈。 (很明显纯粹的数字处理或3D渲染,这是例外)如果你正在考虑在一台真正的服务器上实现这一点来提高性能,我build议首先使用诸如top,iostat,vmstat,dstat等工具监视系统看看大部分时间花在哪里 一旦你有了瓶颈的数据,你将处于寻找解决scheme的好位置。