我将与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,所以这个串联性能更好
相关:
答案 0 :(得分:1)
基本上它是一个额外的进程/线程层。
如果apache配置了worker dispatch,则ThreadsPerChild
和MaxClients
的配置指令定义了apache服务器将拥有的线程数和进程数。
例如,网站请求包括5 images
,3 scripts
,2 stylesheets
和1 for the content
,即11 requests
。浏览器没有并行地提出所有请求,但是您将花费相当多的内存和线程来提供静态内容,就像通过工厂生产复杂产品的“原始产品”而只是使用工厂提供未经修改的产品,并在工厂留下用于运输raw product
的大空箱(记忆)。
在某种意义上,apache进程的线程“更便宜”,只需要创建一个作业,处理与客户端的连接,并在apache的模块/处理程序传递给连接的任何地方进行传递。