路由管理效能優化之路

2021-08-20 01:14:26 字數 757 閱讀 9086

去年的時候,測試1w條路由的收斂效能,大概需要5s以上,這個成績比較差,當時分析了一下,認為是路由管理模組不支援路由更新的操作導致的,這樣會浪費1倍的訊息處理。今年這個問題又重新提起,由於這次有著比較明確的優化目標,因此不再像去年那樣純粹的看**猜測。

首先,使用perf + 火焰圖檢視了本程序的熱點函式,關掉了一些浪費效能的日誌,優化了一些熱點,並提供了路由更新的 發功能,現效能從5s到了1.6s。看起來資料很漂亮,但是仔細分析,更新提供的效能提公升也就不到1s,熱點優化也提供的不多,最大的提公升居然是乙個2s的定時器!把定時器改為了20ms,節約了大約2s的時間。而這個2s的定時器實際上是不需要這麼久的。當時設為2s只是當年的維護人員不熟悉業務邏輯導致的。

由於還沒有達到目標,繼續優化,此時通過火焰圖已經看不出什麼東西了。這個時候通過打點,記錄關鍵時間,根據火焰圖中的熱點函式打了一些點,發現路由管理模組占用了1.3s的時間。進一步分析,發現是上游業務在傳送路由時,最後乙個訊息總是比前面的訊息慢了900ms左右時間,經過**分析,發現又是乙個1s的定時器導致的。為了提公升訊息效能,聚合多個路由訊息一起傳送,但當訊息快取不滿時,設定了1s的定時器。這個定時器直接導致路由管理浪費了1s的時間。修改後,發現路由管理1w條路由只需要 400ms左右的時間,這部分已經接近硬體裝置的效能了。

但……總時間仍然是1.6s!繼續分析,發現通往**的表項整合模組有效能瓶頸。前面的1s定時器掩蓋了他的瓶頸,取消後暴露了出來。由於這部分是go編寫的,也只能靠打點。這個時候,涉及到go內部處理的一些東西就不好掌控了(比如記憶體申請、釋放),此時只能感嘆還是需要c。

提高企業研發專案管理效能

背景 近年來,中國經濟發展迅速,市場產品更新換代快,企業想在日漸激烈的市場中贏得一席之地,就需要在競爭對手之前推出新產品,以保持企業市場的領先地位。新品研發的窘境 1 客戶與訂單增多,專案與客戶難以實現一對一的跟蹤和反饋 2 新品研發專案增多,靠人工管理難以統籌專案實際進展情況 3 研發人員效率和績...

蝕刻加工流程可管理性的設計

任何乙個工藝流程都不會自動去執行更不會自動去管理,這一工作的進行需要乙個更重要的因素 人的參與其中才能使工藝流程運轉起來。乙個能運轉的工藝流程需要有操作者和管理者的參與。蝕刻加工流程的可管理性表現在其全過程中的可檢測性,這裡的可檢測性包括化學指標的檢測 物理指標的檢測和操作指標的檢測。1 化學指標的...

技術調研 資料質量管理 效能量化 多維分析

如何做效能量化?根據使用者自己劃分效能量化。hive查詢效能量化 例如使用tpc ds來測試集群某些元件的查詢能行hive on spark presto tez impala等 spark任務提交量化 基於現有的集群可以並行跑多少個任務 以及對應的是使用多少資源?還是80 剩餘20 不可使用 每s...