2010-06-23 44 views
0

我有一个具有UI模块和其他支持服务的应用程序。这些其他服务有内存泄漏和其他线程同步问题。因此,在某些机器,特别是四核,双核机器中,服务会偶尔崩溃。为进程及其效果设置处理器亲和力

我知道解决这个问题的最好方法是清理内存泄漏和同步问题。

但是作为解决办法,我们为这些服务中的2个设置了处理器关联性,并观察到在此之后崩溃没有发生。

现在我的问题是 我的服务是否会受到性能影响,因为我限制它们仅使用一个处理器?

编辑1:注意:这些服务是多线程的。

回答

1

这当然取决于这些服务是否依赖线程。如果他们是单线程的,你不会注意到太多的区别。

在你的情况中,因为服务是多线程的,它们可能会或可能不会经历性能损失 - 这取决于实际设计,具体取决于它们是否依赖并行执行的多个线程。

1

(可能更适合serverfault.com)

由于服务创建多个线程,最有可能的。

此外,即使系统没有负载,响应时间可能会增加。如果您绑定的CPU正忙于另一个线程,则必须等待该线程放弃其时间片。这可能会引起许多由(或)线程处理的小请求。

感知的结果可能是微妙的或破坏性的:您可能会在一段时间内运行良好,但当请求达到高峰时,依赖服务(如果有的话)可能会变慢。