我正在尝试进一步了解 Apache 的工作原理。我使用 top -c 来分析 Apache 进程。在我的两台服务器上,我经常遇到以下情况:
httpd -k restart -DSSL
httpd -k restart -DSSL
httpd -k restart -DSSL
httpd -k restart -DSSL
httpd -k restart -DSSL
据我所知,这会重新启动 Apache。为什么有这么多进程重新启动 Apache。我预期的是:
httpd -DSSL
有人能向新手管理员解释一下吗?网站都运行正常,我还应该担心吗?
谢谢你奥利弗
答案1
如果您使用相当出色的htop
实用程序并在树视图中排列,您可以看到那些是 Apache 的子进程。事实上,查看我刚刚管理的一个框,我的所有 Apache 进程(父进程和子进程)都有该路径。
向进程发送信号的第二种方法
httpd
是使用-k
命令行选项:stop
、restart
和,如下所述。这些是二进制文件的参数,但我们建议您使用控制脚本发送它们,控制脚本会将它们传递给。graceful
graceful-stop
httpd
apachectl
httpd
-DSSL
只是告诉 Apache 开始使用 SSL 支持。
如果你有许多子进程不断生成,这是为了适应你在 httpd.conf 中设置的内容——或者其中一个子-httpd confs 取决于您的设置。例如,在我的 VPS 上,我使用MPM 预分叉插件,所以我的主要配置在 中处理httpd-mpm.conf
。在那里,我的服务器配置如下:
<IfModule mpm_prefork_module>
StartServers 1
MinSpareServers 1
MaxSpareServers 5
ServerLimit 4
MaxClients 7
MaxRequestsPerChild 10
</IfModule>
这是一台虚拟机,配备双 CPU、1 GB RAM、1 GB 交换空间和大量磁盘空间。Linux 报告为 Intel Xeon X3360 @ 2.83 GHz。
这些值相对较低,但服务器已经忙于处理邮件、垃圾邮件过滤、DNS 和 MySQL(这会占用大量资源,即使经过调整,也不喜欢托管在虚拟机中)。我宁愿提供更长的页面加载时间,也不愿因为连接限制而无意中遭受 DDoS 攻击。
您需要阅读大量资料才能完全理解子进程的影响、内存要求、交换使用/物理 RAM 使用/磁盘 I/O/Apache 高或低限制方面真正的好坏...更糟糕的是,许多人会说很多相反的事情,真正了解什么对您有用的唯一方法是在服务器上引入恒定的适度负载并观察其性能。专家提示:如果您的 SSH 终端在负载下变得迟缓,那就不好了。
一些负载测试/基准测试链接可供阅读:
- https://webapps.stackexchange.com/questions/5487/web-server-stress-testing-tool
- https://stackoverflow.com/questions/5139953/web-server-load-testing-tool
- http://jmeter.apache.org/
- http://en.wikipedia.org/wiki/Web_server_benchmarking
- http://www.devcurry.com/2010/07/10-free-tools-to-loadstress-test-your.html
总结:如果您的服务器提供页面的速度足够快,并且不会影响常规性能,请不要动任何东西。:-) 如果您确实要动任何东西,请务必先备份您的 Apache 配置。调整 MySQL 可能会在未来给您带来更多麻烦 ;-)