本文主要講述高併發http應用中的c10k瓶頸問題:在不少服務器初始狀態下,沒法服務1w左右的併發鏈接。這與每次服務的資源消耗、服務器的硬件配置當然有關,但不少時候是被linux的默認配置以及軟件stack選型所限制。本文主要分析c10k問題的產生緣由、限制因素以及解決方案。html
若是硬件配置沒有問題,性能較高的服務器上,產生c10k問題,不少狀況下與配置和軟件棧相關:最大文件打開數、socket 端口數、IO基礎棧。mysql
爲何呢?linux
若是依然存在性能問題,能夠考慮優化程序的架構:好比,網絡瓶頸:cdn ,客戶端緩存,服務器端改爲api + angular,這樣能夠緩存頁面。多個服務器 + session-redis + memcached-mysqlredis
若是依然存在性能問題,須要考慮優化Linux服務器的性能,參見另一篇博客: Linux服務器性能調優方案。sql
若是是懷疑mysql的問題,參見另一篇博客: mysql性能調優方案。shell
參考:api
1. http://blog.sae.sina.com.cn/archives/1988緩存
2. http://coolshell.cn/articles/7490.html服務器
3. ulimit限制之nproc問題: http://blog.yufeng.info/archives/2568網絡
4. 檢查丟包利器dropwatch: http://blog.yufeng.info/archives/2497
5. ulimit問題及其影響: http://blog.yufeng.info/archives/1380