关于nginx/lighttpd epoll高并发以及apache为何不采用epoll的的疑惑 不指定
生活随笔
收集整理的這篇文章主要介紹了
关于nginx/lighttpd epoll高并发以及apache为何不采用epoll的的疑惑 不指定
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
關于nginx/lighttpd epoll高并發以及apache為何不采用epoll的的疑惑 - 向東博客 專注WEB應用 構架之美 --- 構架之美,在于盡態極妍 | 應用之美,在于藥到病除 - Life is Short,Play it More,So Playin' with IT,Focus on Killer Application,Marketing Meets Technology.︻┳═一 Ζ〧φ﹀ヘ -
關于nginx/lighttpd epoll高并發以及apache為何不采用epoll的的疑惑
WEB2.0 root 2010-3-13 17:24 評論(0) 閱讀(2051) 大 | 中 | 小 引用地址:注意: 該地址僅在今日23:59:59之前有效WEB2.0 | 評論(0) | 引用(0) | 閱讀(2051)ginx/lighttpd等web server 采用epoll+單進程模式能支持并發幾w的并發。但有個問題一直沒搞明白,如果單進程的話,來個請求肯定得read/write操作吧,如果get數據很大的話(如sleep 1000),單進程服務串行處理請求還不得嚴重阻塞啊?? ,請大牛們解惑?? ;對于apache進程+線程池的并發處理就比較好理解
而且epoll模式是非阻塞的,應該不會存在sleep 1000什么的.問題可能存在于處理數據的效率上吧...可以考慮分離吧使用非阻塞模式做I/O操作需檢查errno是不是EAGAIN、EWOULDBLOCK、EINTR,如果是就需要循環重讀,也就非阻塞處理IO時間與阻塞是一樣,只是非阻塞能立即返回而且,你得人工去重復處理數據,還是需要等很長時間
單線程epoll ET,處理幾萬個并發連接是小case,LT模式都能處理上萬并發連接,只是LT時CPU占用是居高不下。
單線程但并不是單線程啊! nginx 多線程的, 底下真正做事時還是一個線程伺候一個client的, 但accept()是在主線程統一處理的 ...
nginx/lighttpd之類只是取巧于各種常用web應用的多數情況, 如果您用nginx,lighttpd的web服務器處理論壇等高度發, 高復雜的業務時, 它們也沒什么優勢的, 甚至不如apache
如果這樣的話,nginx還是會用到類似線程池技術羅????之前粗略看了看lighttpd源碼結構,沒有用到線程池,一般情況是單進程,考慮多CPU情況也可以fork幾個worker進程,但不像apache好幾百的進程擺在那
ighttpd和nginx采用異步服務器模式,epoll模式,為何apache不采用這個模式,可以提高并發性能?
個人理解:
1. apache的模塊大都是采用select模式開發,換到epoll模式不容易?
2. 跨平臺問題,epoll模式只在linux2.6內核上有,其他平臺無法實現,那么可以搞個支持epoll模式的apache新版本,叫apache3.0也可以啊
3.對于apache模塊話其實沒有必要去學習epool,相對php處理一些復雜的邏輯運算可能穩定性會比nginx更好更穩定(我自己加的一條)
但是apache有很多模塊是阻塞方式運行的,所以需要每個請求開啟一個線程/進程,這跟worker沒什么區別。線程/進程之間切換時要一定代價的,另外也并不能發揮event非阻塞的優勢。
我覺得,apache本身的線程模式與event非阻塞方式是有沖突的。再加上現有很多apache模塊是用阻塞方式來寫的,所以我覺得要完全移植很難。
如果樓主一定要用的話,建議還是用lighttpd或nginx吧,apache現在主要還是定位于功能強大的后端服務器。
前幾天用apache-2.2.11的event模式和nginx-0.7.30的epoll模式做了下簡單對比??同樣7萬個連接 apache只撐了大概15分鐘后就已經不能提供服務了 在前15分鐘能訪問到后端的連接數也很少 相比使用nginx頂7萬個連接 在系統負載和cpu消耗上nginx都占有優勢 至少我用nginx來跑7萬并發的靜態圖片到現在還沒掛過 不錯 呵呵 超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生
總結
以上是生活随笔為你收集整理的关于nginx/lighttpd epoll高并发以及apache为何不采用epoll的的疑惑 不指定的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ubuntu无线网络开关
- 下一篇: ECMall如何在后台添加模板编辑页