1. 程式人生 > >如何提高伺服器的併發量

如何提高伺服器的併發量

從哲學上說,消除瓶頸是提高伺服器效能和併發能力的唯一途徑。
如果你能夠消除所有的瓶頸,你就能夠最大的發揮硬體效能,讓系統的效能和併發數到達最佳。
採用多執行緒多核程式設計,使用事件驅動或非同步訊息機制,儘量減少阻塞和等待操作(如I/O阻塞、同步等待或計時/超時等)。
原理:
1、多執行緒多核程式設計,消除cpu瓶頸。
2、採用IOCP或epoll,利用狀態監測和通知方式,消除網路I/O阻塞瓶頸。
3、採用事件驅動或非同步訊息機制,可以消除不必要的等待操作。
4、如果是Linux,可以採用AIO來消除磁碟I/O阻塞瓶頸。
5、在事件驅動框架或非同步訊息中統一處理timer事件,變同步為非同步,而且可以在一個執行緒處理無數timer事件。

6、深入分析外部的阻塞來源,消除它。
   比如資料庫查詢較慢,導致伺服器處理較慢,併發數上不去,這時就要優化資料庫效能。
7、如果與某個其他server通訊量很大,導致效能下降較多。
   可以考慮把這兩個server放在一個主機上,採用共享記憶體的方式來做IPC通訊,可以大大提高效能。