这是一个关于选择正确的 Apache httpd MPM的规范问题。
我对 Apache 提供的不同 MPM 有点困惑——'worker'、'event'、'prefork' 等。
它们之间的主要区别是什么,我如何确定哪一个最适合给定的部署?
<IfModule mpm_event_module>
StartServers 2
ThreadLimit 196
MinSpareThreads 96
MaxSpareThreads 192
ThreadsPerChild 96
MaxRequestWorkers 192
MaxConnectionsPerChild 96
</IfModule>
Run Code Online (Sandbox Code Playgroud)
服务器版本:Apache/2.2.4 (Unix) OpenSSL/1.0.1e mod_fastcgi/mod-fastcgi-SNAP-0910052141
服务器构建时间:2013 年 5 月 24 日 16:48:07
当前时间:2013 年 6 月 17 日星期一 09:48:11 COT
重启时间:2013 年 6 月 17 日星期一 08:35:14 COT
父服务器配置。代:1
父服务器 MPM …
我正在运行 CentOS 64 位,刚刚发现我在我的双四核 Xeon 上运行 prefork MPM。有人告诉我,worker 会给我更低的内存使用率和更高的性能,因为我运行的是一个流量非常高的网站。
如果这是真的,我该怎么做?
在 Apache 中使用 Worker MPM 时,您可以调整子进程数和每个子进程的服务器线程数。
各自的优缺点是什么?在什么情况下你会增加一个或另一个?
我花了一两个星期研究和设置我的服务器来运行带有 Worker MPM 和 FCID 的 Apache。我正在尝试优化它以允许尽可能多的并发连接。在 Worker MPM 上找到好的信息一直是一场噩梦。
服务器 - 具有 1GB RAM 的 VPS(关闭 Apache 仅使用大约 150MB 的 RAM)我希望 Apache 具有大约 750MB 的内存使用上限 - 这样我的服务器就永远不会耗尽 RAM。
我已经运行服务器大约 2 年没有任何问题 - 但我们最近开始流式传输 MP3,这需要更多的并发连接。服务器也发生了一些轻微的 DDOS 攻击 - 所以我将设置减少了很多以防止服务器内存不足 - 我还添加了一些防火墙规则来限制速率。
我现在的设置看起来运行良好 - 但我遇到了一些 Segmentation fault 错误
[Sat Mar 23 03:19:50 2013] [notice] child pid 28351 exit signal Segmentation fault (11)
[Sat Mar 23 03:56:20 2013] [notice] child pid 29740 exit signal Segmentation fault (11)
*** glibc detected *** /usr/sbin/httpd.worker: …Run Code Online (Sandbox Code Playgroud) 我读了很多帖子说我不应该使用worker MPMwithPHP。
我的问题是这是否仍然有效,还是worker MPM不建议使用 。
我问这个的原因是因为我看到工作 MPM 确实支持 PHP,我认为甚至有一个为此目的的包 php-zts
如何在 ubuntu 服务器上从 prefork mpm 切换到 worker mpm?
如果有问题如何回滚?
root@myserver:~# apache2ctl -l
Compiled in modules:
core.c
mod_log_config.c
mod_logio.c
prefork.c
http_core.c
mod_so.c
root@myserver:~# aptitude search apache2-mpm-
p apache2-mpm-event - Event driven model for Apache HTTPD
p apache2-mpm-itk - multiuser MPM for Apache 2.2
p apache2-mpm-perchild - Transitional package - please remove
i A apache2-mpm-prefork - Traditional model for Apache HTTPD
p apache2-mpm-worker - High speed threaded model for Apache HTTPD
root@myserver:~#
Run Code Online (Sandbox Code Playgroud)
提前致谢。
apache-2.2 ×8
mpm-worker ×8
mpm-prefork ×4
apache-2.4 ×1
centos ×1
httpd ×1
memory ×1
mod-fcgid ×1
performance ×1
php ×1
threads ×1
ubuntu ×1