我有一个具有UI模块和其他支持服务的应用程序。这些其他服务具有内存泄漏和其他线程同步问题。因此,在某些机器中,特别是四核,双核机器,服务时不时会崩溃。
我知道解决此问题的最佳方法是清理内存泄漏和同步问题。
但是,作为解决方案,我们为这些服务中的2个设置了处理器亲和力,并观察到之后没有发生崩溃。
现在我的问题是 我的服务会受到性能影响,因为我限制他们只使用一个处理器吗?
编辑1:注意:这些服务是多线程的。
答案 0 :(得分:1)
这当然取决于这些服务是否依赖于线程。如果它们是单线程的,你就不会发现太大的不同。
在您的情况下,由于服务是多线程的,它们可能会或可能不会遇到性能损失 - 这取决于实际设计,特别是它们是否依赖于并行执行多个线程。
答案 1 :(得分:1)
(可能更适合serverfault.com)
当服务创建多个线程时,很可能是。
此外,即使系统没有负载,它的响应时间也可能会增加。如果您所约束的CPU忙于另一个线程,则必须等待该线程放弃其时间片。对于(或)线程处理的许多小请求,这可能会变得显着。
感知结果可能是微妙的或破坏性的:你可能会运行一段时间,但是当请求达到峰值时,可能会减少依赖服务(如果有的话)。