Centos 中使用 cPanel/WHM 时系统 CPU 使用率高

Centos 中使用 cPanel/WHM 时系统 CPU 使用率高

在 Centos 5.7 上安装和配置 WHM/cPanel 后,似乎当我尝试访问 WHM、cPanel 或服务器上的 3 个网站之一时,一切都会冻结(WHM、cPanel 和所有网站),并且我注意到系统 CPU 飙升至 80% 以上(而用户 CPU 保持相当低)。这种情况并不总是发生 - 有时一切都正常(这不是 PHP 问题)。

两个问题:

1) 服务器有 2 个处理器,据我所知,这意味着 CPU 使用率可以高达 200%。如何确保系统正在使用两个处理器?

2) 如何查看系统进程?似乎没有任何地方提到它们,但它们却毫无理由地占用了所有 CPU。

====

评论中要求的内容:

顶部(问题发生时): http://ynhockey.net/personal/cpanel_linux_top2.png

正常运行时间:

13:38:13 启动 11 天,20:03,1 个用户,平均负载:0.15、0.07、0.05

自由的:

             已使用的、可用的、缓存的共享缓冲区总数
内存:2058752 1718608 340144 0 280996 852044
-/+ 缓冲区/缓存:585568 1473184
交换:522104 183784 338320

答案1

1:充分利用可用的核心

CPU(s)据我所知,输出顶部的计数已top针对核心数进行了标准化,因此 100% 表示正在使用的所有可用 CPU 资源。%CPU但该列未进行标准化,因此可能超过 100%。

top顶部验证这一点(它可能因系统版本而异,每个核心打开一个会话并gzip -c < /dev/zero > /dev/null在其中运行,同时top在另一个会话中观察。CPU 数字总计应为~100%而不是 100 *核心(它们在top系统上确实如此,我刚刚尝试过确认)。

一个可能影响上述测试的复杂因素是超线程(如果您的 CPU 中有超线程并且已启用)。top会将所有虚拟核心视为真实核心(因此,对于一个具有超线程的双核 CPU,top当您按 打开每个核心的显示时,您将看到四个核心1),但超线程并不能带来 100% 的处理资源提升(请参阅http://en.wikipedia.org/wiki/Hyper-threading在我的上网本上使用相同的测试(2 个内核,开启超线程,因此有 4 个虚拟内核)显示了类似的结果:两个单线程 CPU 消耗任务使top处理器使用率显示为 ~50%,四个这样的进程使处理器使用率显示为 ~100%(尽管总处理量为不是由于 HT 在每个核心的 vcore 之间共享 CPU 资源的方式,因此速度提高了一倍。

2:进程列表

%sys 不计算单独的系统进程。任何进程可以在“用户空间”中花费一些时间(进行计算、处理字符串等),这计入 %user,在“内核空间”中花费一些时间(当它要求内核分配一些内存等时),这计入 %sys。

你应该看到全部top输出中当前存在的进程,top如果进程在 的轮询间隔内创建并结束,则它们将“逃避”被计入s 列表top(但 top 仍可以看到使用的总时间,因为它使用内核范围的计数来计算这些数字)。

使用现代设备,您可以在 top 重新扫描当前进程列表并显示它之间的空闲时间内(默认情况下通常为一秒钟)创建许多进程,执行一些工作并结束。

您可能会在日志文件中找到证据来确认这种情况是否发生,但不幸的是,这也可能是没有留下日志足迹的过程。

相关内容