调查原因:
nginx能够支持高达50000个并发连接数的响应,运行稳定。
在高连接并发的情况下,nginx比apache的内存、CPU等系统资源消耗要低很多。
之前在测试机208上实测phpinfo处理性能也比apache高3倍。
(见http://www.iyaoya.cn/post/93)
怎么就这么牛?
先说结论:
nginx速度快的原因主要因为nginx选择了epoll(linux)和kqueue(bsd)作为网络I/O模型。
参考资料:
1、各种I/O复用机制。
http://blog.csdn.net/shallwake/archive/2010/01/28/5265287.aspx
2、什么是epoll
http://baike.baidu.com/view/1385104.htm
http://www.cnblogs.com/OnlyXP/archive/2007/08/10/851222.html
3、epoll编程例子
http://202.108.6.208:8000/
代码:/usr/home/yaoya/test/epoll.c(gcc -o epoll epoll.c -lpthread)
4、nginx-epoll模块源码分析
http://blog.csdn.net/Marcky/archive/2010/12/11/6069958.aspx
5、apache两种工作模式详解
http://ry-china.javaeye.com/blog/492580
6、一个可以根据OS自动选择I/O模型的开发库:libevent(memcached使用是它)
http://baike.baidu.com/view/1590523.htm
http://monkey.org/~provos/libevent/