and*_*ber 3 memory httpd central-processing-unit apache-2.2
我正在尝试管理 Amazon 上的服务器,用于每月接收约 1 亿次综合浏览量的网站网络。不幸的是,我的 5 名开发人员团队中没有人拥有丰富的服务器管理经验。
现在我们将 MaxClients 设置为 1400。目前我们的流量大约是平均水平,我们总共有 1150 个 Apache 进程在运行,每个进程使用大约 2% 的 CPU!在这 1150 个中,有 800 个当前正在休眠,但仍在占用 CPU。我相信有办法优化这个。我有几个想法:
所以,这是我们的 Apache 设置。我们确实计划尽快与服务器管理员签约,但在我们找到某人之前,我真的很感激一些建议。
Timeout 25
KeepAlive Off
MaxKeepAliveRequests 200
KeepAliveTimeout 5
<IfModule prefork.c>
StartServers 100
MinSpareServers 20
MaxSpareServers 50
ServerLimit 1400
MaxClients 1400
MaxRequestsPerChild 5000
</IfModule>
<IfModule worker.c>
StartServers 4
MaxClients 400
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
Run Code Online (Sandbox Code Playgroud)
全顶输出:
top - 23:44:36 up 1 day, 6:43, 4 users, load average: 379.14, 379.17, 377.22
Tasks: 1153 total, 379 running, 774 sleeping, 0 stopped, 0 zombie
Cpu(s): 71.9%us, 26.2%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 1.9%si, 0.0%st
Mem: 70343000k total, 23768448k used, 46574552k free, 527376k buffers
Swap: 0k total, 0k used, 0k free, 10054596k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1756 mysql 20 0 10.2g 1.8g 5256 S 19.8 2.7 904:41.13 mysqld
21515 apache 20 0 396m 18m 4512 R 2.1 0.0 0:34.42 httpd
21524 apache 20 0 396m 18m 4032 R 2.1 0.0 0:32.63 httpd
21544 apache 20 0 394m 16m 4084 R 2.1 0.0 0:36.38 httpd
21643 apache 20 0 396m 18m 4360 R 2.1 0.0 0:34.20 httpd
21817 apache 20 0 396m 17m 4064 R 2.1 0.0 0:38.22 httpd
22134 apache 20 0 395m 17m 4584 R 2.1 0.0 0:35.62 httpd
22211 apache 20 0 397m 18m 4104 R 2.1 0.0 0:29.91 httpd
22267 apache 20 0 396m 18m 4636 R 2.1 0.0 0:35.29 httpd
22334 apache 20 0 397m 18m 4096 R 2.1 0.0 0:34.86 httpd
22549 apache 20 0 395m 17m 4056 R 2.1 0.0 0:31.01 httpd
22612 apache 20 0 397m 19m 4152 R 2.1 0.0 0:34.34 httpd
22721 apache 20 0 396m 18m 4060 R 2.1 0.0 0:32.76 httpd
22932 apache 20 0 396m 17m 4020 R 2.1 0.0 0:37.34 httpd
22933 apache 20 0 396m 18m 4060 R 2.1 0.0 0:34.77 httpd
22949 apache 20 0 396m 18m 4060 R 2.1 0.0 0:34.61 httpd
22956 apache 20 0 402m 24m 4072 R 2.1 0.0 0:41.45 httpd
Run Code Online (Sandbox Code Playgroud)
有很多关于这个主题的书,但为了简单起见:
您的数据库工作负载和 Web 服务器工作负载完全不同,它们将以相互竞争的方式消耗资源。最好将它们分开,这将有助于您将来扩展。
考虑为静态内容运行一个更快的网络服务器,比如 nginx,并完全放弃 apache。如果可以,请在任何地方运行 nginx。
您的许多资源都因连接的拆除和拆除而被消耗。
如需更多好的建议,我强烈推荐:http : //www.webpagetest.org/。这将向您展示为什么该站点需要很长时间才能加载,并提供了许多修复性能的最佳实践提示:启用 gzip 压缩、缩小 javascript 和 css 等。请阅读它。