我的网站非常慢,但 %CPU 只有 25%

我的网站非常慢,但 %CPU 只有 25%

我的网站有 2 个服务器:

  • 一台服务器 256GO RAM 20c/40t 用于 MySQL
  • 一台 256GO RAM 20c/40t 的 Apache 服务器

MySQL 服务器始终正常(CPU 使用率为 30-50%)。

但是当我的网站同时连接访客达到 10,000 人次(每分钟加载 5,000 个页面)时,Apache 服务器变得超级慢。奇怪的是,这台服务器还没有达到极限,因为 CPU 的内存占用率约为 20-30%。

这是topApache 服务器上的返回值(当网站有 10,000 名访问者且速度非常慢时)。

top - 22:04:17 up 22:34,  1 user,  load average: 12.61, 13.59, 13.47
Tasks: 2139 total,  20 running, 2119 sleeping,   0 stopped,   0 zombie
%Cpu(s): 28.2 us,  7.2 sy,  0.0 ni, 63.0 id,  0.0 wa,  0.0 hi,  1.6 si,  0.0 st
KiB Mem : 26410644+total, 17146396+free,  8632064 used, 84010416 buff/cache
KiB Swap:  1047548 total,  1047548 free,        0 used. 25449820+avail Mem

就好像这个服务器的 CPU 负载有一个限制。

这是 Apache 服务器的配置:

keepalive: Off
keepalivetimeout: 2
maxclients: 3000
maxkeepaliverequests: 1000
maxrequestsperchild: 15000
maxspareservers: 300
minspareservers: 150
serverlimit: 3000
startservers: 1000
timeout: 300

我应该更准确地说,昨天我在 Apache 服务器上使用了 128G RAM,网站可以支持 13,000 名同时连接的访问​​者,然后它开始变得非常慢。所以我决定换成 256G RAM,但结果更糟……

有任何想法吗?

我正在使用 WHM。

(对不起我的英语不好)

答案1

“MaxClients 指令设置了同时处理的请求数限制。任何超过 MaxClients 限制的连接尝试通常都会排队,最高数量取决于 ListenBacklog 指令。一旦子进程在另一个请求结束时被释放,连接就会得到服务”(参考文献)。http://httpd.apache.org/docs/2.2/mod/mpm_common.html#maxclients)。

如果你深入研究相关文档,你会发现如何根据预分叉/工人MPM,以避免 Michael Hampton 所描绘的情况(非常具有解释力!)。

此外,通过检查日志您应该找到一些有关此的证据。

相关内容