![跟踪服务器负载 WHM/CPANEL](https://linux22.com/image/559994/%E8%B7%9F%E8%B8%AA%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%B4%9F%E8%BD%BD%20WHM%2FCPANEL%20.png)
尝试找出服务器负载过高的原因。
不确定这是否与此有关,但在 whm 中的进程管理器中,我注意到大约有 200 个这样的进程正在运行:/usr/local/apache/bin/httpd -k start -DSSL
每个使用大约7.6%的内存。
我知道httpd是apache,但是那个进程到底是什么?
有任何想法吗?
答案1
Apache MPM-Prefork 为每个连接启动一个新进程。听起来效率很低,但不幸的是,这是完全正常的。
我从来没有用 MPM-Prefork 运行 apache,为了便于管理,它是默认设置。
Apache 还有另外两个可用的 MPM,MPM-Worker 和 MPM-Event。Worker 是多线程的,而 Event 是异步的。
我更喜欢 Worker,因为它更成熟,而且在我看来性能更好。有些人更喜欢 Event,有些人则持相反意见。无论如何,这都比每次都分叉一个进程要好。
PHP 默认是非线程安全的,有些人会说不管怎样都是非线程安全的!因此您不能将常规 mod_php 与 MPM-Prefork 以外的任何东西一起使用。
但是,您可以使用 MPM-Worker 并通过 FastCGI 为 PHP 提供服务。我更喜欢通过 PHP-FPM 执行 FastCGI,但是使用 Cpanel 很容易通过 mod_fcgi 执行此操作。
您应该使用 easyapache 脚本重新编译 apache。在运行 easyapache 之前更新您的 Cpanel。
确保选择 apache 2.2、PHP 5、MPM-Worker、FastCGI、suEXEC
我还选择 Suhosin 来提高安全性,选择 eaccelerator / Zend 优化器来提高性能。
一旦构建完成,您将获得一个菜单来选择如何提供 php,选择 fcgi!
阅读更多内容 http://docs.cpanel.net/twiki/bin/view/EasyApache3/ApachePHPRequestHandling
...或者处理糟糕的表现。