記一次性能調優,4000tps到2萬tps

程序簡述:

一個客戶端程序從rocketmq中讀取消息通過rpc調用方式發送給服務端,並異步獲取服務端應答,根據metric統計應答tps計算總體性能。

服務端爲分佈式系統,由多個環節組成的拓撲結構,可指定進程數和各個環節的線程數。運行在6臺主機上。調優前tps4000,接到任務需要目標tps1萬6.

 

調優步驟:

1、業務調優:將不必要的業務規則匹配配置刪除。將sql靜態數據在程序啓動時加載到內存,而不是每次都查詢。

2、日誌調優:將logback日誌配置文件修改爲異步方式(提高較大),日誌拼接由+改爲{}

3、zk配置調優:調優前程序只訪問程序配置只訪問了zk集羣中的一臺機器,日誌發現有lose connnection錯誤,修改爲訪問集羣中所有機器,問題解決

4、數據庫連接池調優:jstack發現有很多卡在getconnnection的線程,判定是連接池數量不夠,根據單進程併發,調整出合理數據庫連接池大小,以及maxactive、maxidle等配比。

5、客戶端:到後期發現由於客戶端發送tps跟不上,因此調整了從rocketmq讀取數據的線程數,發送線程數等配置。

6、SQL優化

7、代碼優化:刪除冗餘,部分卡頓代碼優化等

 

調優後tps達到2萬

 

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