请帮我解决这个问题。我在专用服务器上有一个图像处理网站。在转移到更强大的服务器后,我遇到了奇怪的问题。
第一个服务器配置是:
核心 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,或者学会忍受它。您的网站运行速度是否比您的情况可以接受的速度慢?