上传大文件时 CPU 使用率达到 100%

上传大文件时 CPU 使用率达到 100%

请帮我解决这个问题。我在专用服务器上有一个图像处理网站。在转移到更强大的服务器后,我遇到了奇怪的问题。

第一个服务器配置是:

核心 2 四核 6600
4G DDR2 RAM
2x500GB SATA + 硬件 Raid0
Fedora 32 位 + PAE

新的服务器配置是:

核心 2 四核 6600
8G DDR2 RAM
2x300GB SAS + 硬件 Raid0
CentOS 64 位

引擎使用 Nginx + Apache + fastcgi + perl
Nginx - 前端,提供静态内容。Apache
- 后端,使用 fastcgi 提供动态内容。

我必须升级服务器的原因是磁盘利用率过高,几乎达到 90..100%。
现在磁盘没有问题,但出现了新问题。
现在所有 fastcgi 进程加起来几乎占用了 100% 的 CPU。

我还注意到,当网站用户向服务器上传大型文件时,该进程会占用大量 CPU。文件上传后,CPU 使用率又恢复正常。

以下是从顶部开始的第一行

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND

18306 apache    15   0  427m  45m 5576 S 97.4  0.6   0:23.83 index.fcgi  
18294 apache    16   0  440m  58m 5312 S 68.8  0.7   0:22.81 index.fcgi  
17612 apache    16   0  465m  82m 5728 R 59.8  1.0   1:03.95 index.fcgi  
18164 apache    15   0  397m  79m 5628 S 40.9  1.0   0:35.59 index.fcgi  

我从未在旧服务器上看到过类似的事情。
你知道是什么原因导致这样的问题吗?
如果你需要一些额外的服务器信息,请告诉我

提前致谢!

答案1

很自然,当您消除一个瓶颈(磁盘 IO)时,系统会加速到遇到另一个瓶颈(在本例中,显然是 CPU)的程度。您应该提高代码的效率(以便更好地利用单个核心)、并行化代码(以便可以同时利用多个核心)、获得更好的 CPU,或者学会忍受它。您的网站运行速度是否比您的情况可以接受的速度慢?

相关内容