2014-08-27 90 views
-2

我在CentOS 6.5中运行一个网络服务器应用程序,每个fork有200个最大客户端分叉。通常情况下,流量是每分钟200K个请求。我已经看到CPU负载高达200%,然后在几分钟内恢复到正常的2%左右。它每隔30分钟左右发生一次。Centos 6.5 CPU间歇性加载高

运行在RHEL 5.8中的相同应用程序没有这样的问题。

我想知道CentOS与RHEL的性能有很大差异。

我已经使用valgrind清除了任何内存泄漏的代码,但具有相同的问题。在我看来,这些东西让我们想起了CentOS在他们死后正在创造叉子的负担。 CentOS内核没有使用快速定时器。 CentOS内存管理器与RHEL无效。 我应该试试CentOS 6.3,要么比新版本的CentOS 6.5更稳定。

+1

非常相似:http://stackoverflow.com/questions/25491949/centos-6-5-spike – 2014-08-27 16:32:33

回答

1

经过很多天,我们发现在我们的代码中存在一个错误,它在RHEL中执行分段错误,并且由于多进程应用程序新进程在此之后诞生,并且RHEL有效地释放了引起该进程的内存分段错误。

但是,当我们在CentOS上尝试相同的应用程序时,该错误不会触发分段错误,但会使进程处于睡眠模式,并且极高的内存消耗将近25%。通过这种方式,进程停留在系统中并保持导致高负载和尖峰的内存。

结论是,在CentOS中运行编码时需要非常好的内存泄漏检查,因为与RHEL不同,CentOS并不足以自我修复。