c10k問題及其解決方案


本文主要講述高並發http應用中的c10k瓶頸問題:在很多服務器初始狀態下,無法服務1w左右的並發連接。這與每次服務的資源消耗、服務器的硬件配置固然有關,但很多時候是被linux的默認配置以及軟件stack選型所限制。本文主要分析c10k問題的產生原因、限制因素以及解決方案。

如果硬件配置沒有問題,性能較高的服務器上,產生c10k問題,很多情況下與配置和軟件棧相關:最大文件打開數、socket 端口數、IO基礎棧。

為什么呢?

 

 

如果依然存在性能問題,可以考慮優化程序的架構:比如,網絡瓶頸:cdn ,客戶端緩存,服務器端改成api + angular,這樣可以緩存頁面。多個服務器 + session-redis + memcached-mysql

如果依然存在性能問題,需要考慮優化Linux服務器的性能,參見另外一篇博客: Linux服務器性能調優方案。

如果是懷疑mysql的問題,參見另外一篇博客: mysql性能調優方案。

 

參考:

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM