实际上Apache如何帮助提供大量流量?

时间:2012-11-09 12:58:53

标签: apache cherrypy

我将与Apache一起设置cherrypy。来自cherrypy documentation

if you have a simple website that doesn't have a really high traffic website 
(say, less than 50 hits/second) [...], then running CherryPy exposed is fine.
Otherwise, running it behind Apache is probably the right option for you.

Cherrypy standalone会创建一个线程池并提供请求。当我在Apache后面使用它时,Apache增加了一些可以处理更大负载的魔法。

我的问题是:apache到底做了什么?它管理线程池本身吗?它会创建更多线程吗?它是否在工作安排方面做得更好?它是否为每个Apache线程生成一个单独的cherrypy实例?

我的问题是一般来说Apache做了什么,我知道:)我想知道哪些樱桃的“责任”转移到了Apache,所以这个串联性能更好

相关:

1 个答案:

答案 0 :(得分:1)

基本上它是一个额外的进程/线程层。

如果apache配置了worker dispatch,则ThreadsPerChildMaxClients的配置指令定义了apache服务器将拥有的线程数和进程数。

例如,网站请求包括5 images3 scripts2 stylesheets1 for the content,即11 requests。浏览器没有并行地提出所有请求,但是您将花费相当多的内存和线程来提供静态内容,就像通过工厂生产复杂产品的“原始产品”而只是使用工厂提供未经修改的产品,并在工厂留下用于运输raw product的大空箱(记忆)。

在某种意义上,apache进程的线程“更便宜”,只需要创建一个作业,处理与客户端的连接,并在apache的模块/处理程序传递给连接的任何地方进行传递。