【问题标题】:Centos 6.5 CPU load high intermittently [closed]Centos 6.5 CPU负载间歇性高[关闭]
【发布时间】:2014-10-21 07:21:43
【问题描述】:

我在 CentOS 6.5 中运行一个网络服务器应用程序,有 200 个分支,每个分支最多有 100,000 个客户端。通常流量是每分钟 200K 请求。我已经看到 CPU 负载高达 200%,然后在几分钟内恢复到 2% 左右。它大约每 30 分钟左右发生一次。

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

我想知道 CentOS 与 RHEL 的性能是否存在重大差异。

我已经使用 valgrind 清理了任何内存泄漏的代码,但遇到了同样的问题。这些事情在我脑海中浮现 CentOS 在分叉死后承担了创建分叉的任务。 CentOS 内核没有使用快速计时器。 CentOS 内存管理器不如 RHEL 高效。 我是否应该尝试 CentOS 6.3,或者它比新版本的 CentOS 6.5 更稳定。

【问题讨论】:

标签: c linux centos6.5


【解决方案1】:

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

但是,当我们在 CentOS 中尝试相同的应用程序时,该错误不会触发分段错误,而是使进程处于睡眠模式,内存消耗非常高,接近 25%。这样,进程会留在系统中并持有导致高负载和峰值的内存。

结论是,在 CentOS 中运行时,需要非常擅长编码中的内存泄漏检查,因为与 RHEL 不同,CentOS 不够聪明,无法自愈。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-04
    • 2017-05-28
    • 2023-04-09
    • 1970-01-01
    • 2012-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多