Nginx的高并发得益于其采用了epoll模型,与传统的服务器程序架构不同,epoll是linux内核2.6以后才出现的。下面通过比较Apache和Nginx工作原理来比较。 传统Apache都是多进程或者多线程来工作,假设是多进程工作(prefork),apache会先生成几个进程,类似进程池的....
分类:
Web程序 时间:
2015-04-13 20:44:40
阅读次数:
180
如果要启动大量的子进程,可以用进程池的方式批量创建子进程: #!/usr/bin/env?python
from?multiprocessing?import?Pool
import?os,?time,?random
def?long_time_task(name):
????????print?‘...
分类:
编程语言 时间:
2015-03-05 13:08:51
阅读次数:
353
经过查找资料,先说下我对进程池的理解:进程池包括两个进程:管理进程和工作进程。管理进程的主要任务是创建工作进程,监听事件请求,有事件到达时,然后查询工作进程看是否有空闲的工作进程,如果有空闲的工作进程,则将请求的事件与工作进程建立连接,工作进程处理完工作后,管理进程则回收工作进程;如果没有空闲的工作...
分类:
系统相关 时间:
2015-02-02 12:19:48
阅读次数:
265
讲 PHP 优化的文章往往都是教大家如何编写高效的代码,本文打算从另一个角度来讨论问题,教大家如何配置高效的环境,如此同样能够达到优化的目的。pool一个让人沮丧的消息是绝大多数 PHP 程序员都忽视了池的价值。这里所说的池可不是指数据库连接池之类的东西,而是指进程池,PHP 允许同时启动多个池,每...
分类:
Web程序 时间:
2014-12-29 10:22:21
阅读次数:
199
a simple erlang process pool analysis这是一个简单的erlang进程池分析,是learn you some erlang for Great Good里面的一个example,具体的内容可到官网查看!基本的流程图实现原理这个的样例的实现原理官网都有比較具体的说明,...
分类:
其他好文 时间:
2014-12-18 13:33:22
阅读次数:
181
引言让服务器在启动阶段调用fork创建一个子进程池,通过子进程来处理客户端请求。子进程与父进程之间使用socketpair进行通信(为了方便使用sendmsg与recvmsg,如果使用匿名管道,则无法使用以上两个函数)。以下针对TCP进行分析。server端使用select轮询用于监听客户端请求的被...
分类:
系统相关 时间:
2014-10-12 21:43:28
阅读次数:
371
一、多进程
在Unix/Linux下,为我们提供了类似c中头文件中的的fork()函数的接口,这个函数位于os模块中,同样与c中类似,对于父进程fork()调用返回子进程ID,对于子进程返回0
import os, time
pid = os.fork()
if pid == 0:
while True:
print 'child process'...
分类:
编程语言 时间:
2014-10-11 18:46:15
阅读次数:
278
多进程编程多用在并发服务器的编写上,当收到一个请求时,服务器新建一个进程处理请求,同时继续监听。为了提高响应速度,服务器采用进程池的方法,在初始化阶段创建一个进程池,池中有许多预创建的进程,当请求到达时,只需从池中分配出来一个进程即可;当进程不够用时,进程池将再次创建一批进程。类似的方法可以用在.....
分类:
编程语言 时间:
2014-10-09 14:31:54
阅读次数:
317
一开始不怎么明白fastcgi和cgi的区别,查了资料说,fastcgi多了一个进程池,不要每次都fork和退出这个不是重点,还是对着代码看吧怎样在lighttpd运行php呢,需要下面这样配置把fastcig模块的前面井号去掉,然后在下面加上这个相关的配置就可以fastcgi.debug = 1f...
分类:
其他好文 时间:
2014-09-17 23:06:23
阅读次数:
571
1. 信号处理问题对于相同信号,按信号的先后顺序依次处理。可能会产生的问题是,正在处理sig1信号时,又来了2个或更多的sig1信号,此sig1时只会在处理完原来的sig1信号后,再处理1个sig1信号。因此对于相同信号,会产生信号掉包的问题。一个儿子退了之后,程序在处理handler(),如果此时...
分类:
其他好文 时间:
2014-09-11 16:57:32
阅读次数:
216