new web game server

做壓力測試時,發現服務器性能還是很有問題,目前的瓶頸主要在兩個地方:

1 mysql;服務器是8核cpu,壓力大時mysql的cpu佔用率達到100%左右,我的理解是把一個cpu佔滿了。

    php-fpm-slow.log裏面可以看到很多操作mysql的地方都超時了。

2 php本身;在一些複雜邏輯的操作,比如戰鬥,php本身執行時間就比較長,再加上mysql的延遲,疊加效果更明顯。


於是考慮下一個版本服務器的作法,想法是把性能提升到一個絕對沒有問題的高度,這樣寫邏輯時就不用畏首畏尾的,可以大幅度提升開發效率。

目前想到的方案是用mongoDB代理mysql,移除掉redis和memcache, 用lua代替php,這樣對於非ARPG的web game來說應該說足夠用了。


架構大概如下所示:


C++代理服務器 ----->   C++遊戲服務器 --> LUA 遊戲邏輯 --> MongoDB


我打算把這個服務器放在google code上面,開源出來,對一些新手有所幫助。

由於公司項目已經使用了boost asio,爲了不必要的麻煩,準備使用go 來代替c++,性能應該差別不大

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