2017-02-24 104 views
0

在建的TurboGears v2.1.5網絡遊戲,登錄用戶週期性地發佈一個16字節的消息。當POST速率爲每秒60 POST時,服務器CPU達到100%。 (爲了測試,我們已經刪除了所有的工作,比如每次更新數據庫 - 服務器立即返回一個空的響應。)優化的POST每秒在Turbogears2

使用wrk來獲取一個16字節的靜態文件,我們看到Turbogears達到〜每秒500個請求,並希望通過我們遊戲的POST來匹配或接近該速率。我們真的很想每秒鐘處理1000或更多POST。

設置:TurboGears的v2.1.5,AWS c3.large,在Windows Server 2008 R2,英特爾至強E5-2680 V2 @ 2.8GHz的2.8GHz的。

問題:是否有tg2設置或其他更改可以讓我們在這種情況下處理500個或更多的每秒POST數?

回答

1

如果能夠升級到TG2.3工作在更新的版本中極大地提高了框架的性能(http://blog.axant.it/archives/452)開箱。

還通過2.3(http://turbogears.readthedocs.io/en/latest/turbogears/minimal/index.html)推出了新的最小模式,您可以輕鬆地禁用你不需要像國際化,會議等任何部件。對於更多的速度提升(看到各種X.enabled選項在http://turbogears.readthedocs.io/en/latest/reference/config-options.html)。禁用i18n和靜態文件支持通常會提高性能。

+0

謝謝你 - 會嘗試升級和您的其他有益的建議。你會期望使用python2與python3導致的任何性能差異? (目前使用python2。) – web20

+0

後續行動 - 因爲這裏的主要活動是發佈響應,i18n或靜態文件是否對性能有任何影響?它似乎都不會觸及json數據POST。我可以看到會話會如何影響性能,但重要的是要知道哪些用戶正在發佈數據,因此禁用這些數據可能不是一種選擇。 – web20

+0

更新:我們已將我們網頁遊戲的相關部分移植到TG2.3。在Ubuntu和Windows上看到峯值〜每秒100 POSTs。但是,如果「authtkt」Cookie未被髮送,我們會在Ubuntu上看到每秒700次POST和Windows上的〜580次POST。大約3個身份相關的數據庫查詢會導致顯着的減速(但我們確實需要知道哪個用戶正在進行POST)。歡迎幫助/想法每秒達到1000+次POST(每個帖子有用戶身份信息)! – web20