Linux 服務器後臺系統架構的高性能設計

因爲,目前在做遊戲的的後臺開發。儘管最近在忙於開發遊戲業務邏輯的的相關代碼,也在不停思考着遊戲後臺的一些架構問題。


因爲遊戲後臺處理着大部分的業務邏輯,因此。在性能上是必須的。


那麼如何盡最大的提高性能呢,下面根據我們後臺架構提出的幾點,因爲我們後臺架構業務邏輯是單進程將單線程處理


首先,我們知道目前後臺所效率上受到限制的就是 數據庫IO>磁盤》網絡IO>cpu>內存


從以上,我們可以看到,我們優化的空間很大。


1,如何降低數據庫IO給我們帶來的瓶頸呢,我們首先想到的就是操作數據庫的異步IO.當我們要寫數據庫的時候,程序先發送到數據庫進程,立即返回。去處理下一個請求,

當我們業務進程監聽到了數據庫進程的時候,在處理其返回結果。這就很有效的做了一個異步操作。

2。磁盤IO。我們什麼時候會涉及到呢,那就是在寫一些日誌文件或者寫到文件的數據,其思想,我們還是用到了異步操作,或者叫做BUFF.先把數據寫到buf下,讓一個單獨的進程不停的對其刷出到文件中。


3.網絡IO,這個應該說是不可避免的一個io,尤其是在做後臺網絡架構的時候,因此,我們封裝了一個高效的模塊,在不同物理機,上進行通信,今本受限於網卡的通信,因此,我們的該模塊已經儘可能的提高效率了


4.進程間通信。因此,我們儘可能的在內存操作,在進程通信模塊,我們使用了共享內存的模式。因爲負責網絡io這塊有個網絡接入層,網絡接入層進程和我們的業務邏輯進程是共享內存的通信,如果在一臺物理機上。


5.爲了提高我們業務員邏輯效率,

注意幾點,全部使用指針,減少內存的拷貝。邏輯中減少使用大循環,和杜絕雙重循環。

使用高效的二分查找,二分刪除等。數據存儲使用hash內存。

使用內存池對內存的管理。


今天就寫到這裏。有時間好好分析我們開發的架構。

晚安


更多文章,歡迎訪問:

http://blog.csdn.net/wallwind

轉載請註明出處


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章