高效能Socket伺服器的開發需要注意事項

2021-06-25 14:23:11 字數 671 閱讀 3979

幾個必須涉及到的重中之重的課題:

1.需求.

因為方式方法,手法,模型結構太多,因此,明確需求,注意:這裡說的是明確需求,就是非常明白並確定需求.

2.模型.

windows下五種scoket模型,根據需求選擇合適的模型.最高效能的莫過於iocp為核心的同步執行緒工作方式.

linux下使用epoll也是類似的手法.

bsd下使用kqueue.

以上都是系統提供的原始api,可靠性基本上由os的基礎架構保障,且基本不可修改(windows無源**,linux可以重編譯kernel,bsd就看版本了).因此,如果乙個os你覺得不穩定或者慢了,只有換os模型.

3.記憶體管理

高效能伺服器記憶體管理非常重要,必須要自己妥善管理,否則談不上效能,什麼都是白搭.通常使用鍊錶分配,輔之以管理**執行緒.自定義申請,釋放,碎片**等等.玩伺服器就是玩記憶體.在我們除錯的過程中,需要密切注意cpu,記憶體占用情況.合理的使用鍊錶.

4.健康管理

對於可持續性方面的評估,需要一套伺服器健康管理手段和方法來保證伺服器能夠長時間的執行,並能施以微調.

高效能伺服器設計

原文 http blog.chinaunix.net u 5251 showart 236329.html 先後檢視了 haproxy l7sw 和lighttpd 的相關原始碼,無一例外,他們一致認為多路復用是效能最好的伺服器架構 事實也確實應該如此,程序的出現一方面就是為了儲存任務的執行上下文從...

高效能伺服器設計

先後檢視了haproxy l7sw 和lighttpd 的相關原始碼,無一例外,他們一致認為多路復用是效能最好的伺服器架構。事實也確實應該如此,程序的出現一方面就是為了儲存任務的執行上下文從而簡化應用程式設計,如果程式的邏輯結構不是很複雜,那麼用整個程序控制塊來儲存執行上下文未免有些大材小用,加上程...

高效能伺服器設計

原文 先後檢視了 haproxy l7sw 和lighttpd 的相關原始碼,無一例外,他們一致認為多路復用是效能最好的伺服器架構 事實也確實應該如此,程序的出現一方面就是為了儲存任務的執行上下文從而簡化應用程式設計,如果程式的邏輯結構不是很複雜,那麼用整個程序控制塊來儲存執 行上下文未免有些大材小...