apache prefork是多进程处理请求的,worker模式是一个进程使用多个线程处理请求,等于说是多进程加多线程,处理并发请求可以更多,内存和CPU消耗更少,但有线程安全的问题。网上有一大堆比较这两个模式的区别,都是讲了我说的多进程,多线程的。 问题一:既然worker模式可以提高高并发,省内存和CPU,那为什么apache默认还要使用prefork模式呢? 问题二:apache用worker模式,然后再用linux的epoll模式,那是不是并发也能支持过万了?
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
apache当然可以使用worker模式进行对PHP处理了,就像你说的处理并发请求的能力增加,内存和CPU消耗会更少,但是唯一一点不足的是,prefork是多进程多线程的,而有些PHP扩展存在线程安全的问题,所以碰到不存在有线程安全的PHP扩展,完全可以使用,但如果存在,那么就最好别用,不然会造成数据的不一致性的,另外apache如果使用epoll确实也可以,但并发过万估计还是有点吃力
apache当然可以使用worker模式进行对PHP处理了,就像你说的处理并发请求的能力增加,内存和CPU消耗会更少,但是唯一一点不足的是,prefork是多进程多线程的,而有些PHP扩展存在线程安全的问题,所以碰到不存在有线程安全的PHP扩展,完全可以使用,但如果存在,那么就最好别用,不然会造成数据的不一致性的,另外apache如果使用epoll确实也可以,但并发过万估计还是有点吃力