我正在考虑限制一个centos / apache web服务器上的httpd进程的最大数量。 我已经看到几个讨论采取这个行动来减less内存负载的post(这就是为什么我正在考虑它),但是没有一个讨论最终用户的后果。 如果有人能够澄清这一点,将不胜感激。
最终用户的结果是,一旦服务器达到同时进程/线程/连接的限制,在其他用户停止之前,它不会再接受任何连接。
编辑:正如symcbean在评论中指出的,他们首先会得到一个延迟的响应,因为服务器有一个backlog监听队列。 直到队列满了,他们才会被Connection拒绝。 无论如何,结果是他们会得到更慢的反应或没有反应。
作为一般规则,您应该了解您通常在高峰期间同时有多less用户,并确保您的服务器至less可以处理两次。 如果访问者的模式发生变化,您需要定期重新访问这些统计信息并更改您的设置。
我build议阅读你如何做负载testing和容量规划的网站? 有关这方面的更多信息。
确切的效果取决于操作系统/版本的Apache。
在你的CentOS上,你有两个值要考虑: – 进程(子) – 每个进程的线程
如果您现在每个孩子有100个线程并允许100个孩子,则您可以同时访问10.000个人。
如果你减less到5个孩子(相同的ThreadsPerChild),只有500人可以同时访问。
对你有积极的影响:节省内存,但可能产生的负面影响:人(任何人> 500人)无法访问你的网站
它有助于了解有多less人在一定时间内访问您的网站,以了解同时访问多less人。
成本是人们有效地被告知“忙,稍后再试”,而花费很长时间等待结果。
例如,如果一个页面的正常服务时间是1/10秒,一个小型服务器将很快发送到10个,但是之后这个限制会显着减慢:50个用户将在4秒内看到个别响应,慢了40倍,而连接100个用户会看到他们的反应需要9秒,慢90倍。 这是一个相当“正常超负荷”的可怕后果(;-))
如果记忆是一个很好的build议,使用“准入控制”,以防止用尽。 如果你做了一个微不足道的负载testing,发现你的内存不足,并开始在500个用户的颠簸,设置的限制,以保持低于那个。
–dave