许多进程:httpd -k restart -DSSL

我试图更多地了解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 

有人可以解释这对一个新手pipe理员? 这些网站都运行良好,我还应该担心吗?

谢谢奥利弗

如果您使用相当出色的htop实用程序并以树视图排列,则可以看到这些是Apache的subprocess。 事实上,看看刚刚我pipe理的一个盒子,我所有的Apache进程(父母和孩子)都有这个path。

从Apache手册 :

指示httpd进程的第二种方法是使用-k命令行选项: stoprestartgracefulgraceful-stop ,如下所述。 这些是httpd二进制文件的参数,但是我们build议您使用apachectl控制脚本发送它们,它将把它们传递给httpd

-DSSL只是告诉Apache从SSL支持开始。

如果你有许多subprocess不断产生,这将适应你在httpd.conf中设置的任何东西 – 或者根据你的设置,你可以使用一个 httpd的confs。 例如,在我的VPS上,我使用MPM prefork加载项,所以我的主要configuration在httpd-mpm.conf处理。 在那里,我的服务器configuration是这样的:

 <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(这是一个巨大的资源浪费,并不喜欢在虚拟机中托pipe,即使调整)。 我宁愿提供更长的页面加载时间,也不会因为我的连接限制而贪婪地无意中结束DDoSing。

为了充分理解subprocess的影响,内存需求,交换使用/物理RAM使用情况/磁盘I / O /高或低Apache限制等方面的好坏,更糟糕的是,许多人会说很多相反的事情,唯一真正知道什么对你有用的方法是在服务器上引起持续的适度负载,并观察它是如何执行的。 Protip:如果你的SSHterminal在负载下变得迟缓,那还不够好。

一些负载testing/基准testing链接阅读:

tl; dr:如果您的服务器足够快地提供页面而不影响正常的性能,请勿触摸任何东西。 :-)如果你触摸任何东西,总是先备份你的Apacheconfiguration。 调整MySQL可能会在未来引起你更多的麻烦;-)