<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://jackxiang.com/post//</link>
<title><![CDATA[关于nginx/lighttpd epoll高并发以及apache为何不采用epoll的的疑惑]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Sat, 13 Mar 2010 09:24:08 +0000</pubDate> 
<guid>http://jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	ginx/lighttpd等web server 采用epoll+单进程模式能支持并发几w的并发。但有个问题一直没搞明白，如果单进程的话，来个请求肯定得read/write操作吧,如果get数据很大的话（如sleep 1000），单进程服务串行处理请求还不得严重阻塞啊？？ ，请大牛们解惑&nbsp;&nbsp; ；对于apache进程+线程池的并发处理就比较好理解<br/><br/>而且epoll模式是非阻塞的,应该不会存在sleep 1000什么的.问题可能存在于处理数据的效率上吧...可以考虑分离吧使用非阻塞模式做I/O操作需检查errno是不是EAGAIN、EWOULDBLOCK、EINTR，如果是就需要循环重读，也就非阻塞处理IO时间与阻塞是一样，只是非阻塞能立即返回而且，你得人工去重复处理数据，还是需要等很长时间<br/>单线程epoll ET，处理几万个并发连接是小case，LT模式都能处理上万并发连接，只是LT时CPU占用是居高不下。<br/><br/>单线程但并不是单线程啊! nginx 多线程的, 底下真正做事时还是一个线程伺候一个client的, 但accept()是在主线程统一处理的 ...<br/><br/>nginx/lighttpd之类只是取巧于各种常用web应用的多数情况, 如果您用nginx,lighttpd的web服务器处理论坛等高度发, 高复杂的业务时, 它们也没什么优势的, 甚至不如apache<br/><br/>如果这样的话，nginx还是会用到类似线程池技术罗？？&nbsp;&nbsp;之前粗略看了看lighttpd源码结构，没有用到线程池，一般情况是单进程，考虑多CPU情况也可以fork几个worker进程，但不像apache好几百的进程摆在那<br/><br/><br/><br/>ighttpd和nginx采用异步服务器模式，epoll模式，为何apache不采用这个模式，可以提高并发性能？ <br/><br/>个人理解： <br/>1. apache的模块大都是采用select模式开发，换到epoll模式不容易？ <br/><br/>2. 跨平台问题，epoll模式只在linux2.6内核上有，其他平台无法实现，那么可以搞个支持epoll模式的apache新版本，叫apache3.0也可以啊<br/><br/>3.对于apache模块话其实没有必要去学习epool，相对php处理一些复杂的逻辑运算可能稳定性会比nginx更好更稳定（我自己加的一条）<br/>但是apache有很多模块是阻塞方式运行的，所以需要每个请求开启一个线程/进程，这跟worker没什么区别。线程/进程之间切换时要一定代价的，另外也并不能发挥event非阻塞的优势。<br/>我觉得，apache本身的线程模式与event非阻塞方式是有冲突的。再加上现有很多apache模块是用阻塞方式来写的，所以我觉得要完全移植很难。<br/>如果楼主一定要用的话，建议还是用lighttpd或nginx吧，apache现在主要还是定位于功能强大的后端服务器。<br/>前几天用apache-2.2.11的event模式和nginx-0.7.30的epoll模式做了下简单对比&nbsp;&nbsp;同样7万个连接 apache只撑了大概15分钟后就已经不能提供服务了 在前15分钟能访问到后端的连接数也很少 相比使用nginx顶7万个连接 在系统负载和cpu消耗上nginx都占有优势 至少我用nginx来跑7万并发的静态图片到现在还没挂过 不错 呵呵<br/><br/><br/><br/><br/>apache在兼容性上考虑的比较好，nginx性能不错！各取所需！！！
]]>
</description>
</item><item>
<link>http://jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] 关于nginx/lighttpd epoll高并发以及apache为何不采用epoll的的疑惑]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>