隨著業務系統的云化轉型不斷推進,業務量呈現顯著增長,對業務系統的性能和資源管理提出了更高要求。在這樣的背景下,實現系統資源使用與性能指標的均衡成為保障生產系統高效穩定運行的核心任務。
在性能優化的范疇內,核心業務系統對于用戶信息查詢的處理能力需具備高度性能及精確性,這部分優化向來都是最具挑戰性的任務。普通的緩存機制往往無法滿足這些嚴格的需求。因此,我們采取了分布式內存數據庫,即高級緩存策略,于應用客戶端構建起高效且精確的本地緩存機制,以應對這一難題。然而,隨著用戶數量及數據量的持續增長,高速緩存對內存資源的消耗也在持續擴大。如何在內存占用與業務性能之間達成有效的平衡,成為系統后續演進及效能提升的關鍵所在。
為解決相關問題,浩鯨科技提出了一種創新的性能優化策略。該策略主要涉及對系統內各模塊中相同維度數據查詢頻率的深入分析,以開發出高頻數據緩存技術,目標是減少批量話單處理中的重復數據查詢效率問題,實現無干擾的高精度數據緩存復用。
在某省的云遷移項目實際對賬操作中,這項技術與高速緩存技術相融合,成功實現了性能的整體提升,范圍在2.4至7倍之間,同時顯著減少了應用服務器的內存占用,降低了約20%。最終,實現了超過23萬的話單處理端到端性能提升,以及部分模塊40萬+的處理性能巨幅增長。

某省采用新方案后的業務系統性能優化效果
系統實現了應用與數據的解耦,極大地提升了系統的并發處理能力。然而,在某些關鍵業務場景中,數據訪問的時延成為性能瓶頸,尤其是在批價、合賬、提醒及賬期應用等環節。這些業務對數據訪問的速度要求極高,主要體現在以下幾個方面:

為了應對這些挑戰,采用高速緩存技術進行大規模用戶資料的映射存儲成為一種有效的策略。這不僅確保了數據的準確性,還提高了數據訪問的本地響應速度。然而,隨著用戶資料量的持續增長,單個宿主機的內存占用也從200+GB上升到了400+GB。這種趨勢表明,單靠高速緩存技術已難以滿足現有需求。
因此,在高頻查詢、批量查詢的業務場景下,如何在減少內存占用的同時,確保核心業務系統中用戶資料的低時延查詢,已成為優化業務系統性能的關鍵任務。這不僅是技術上的挑戰,更是業務發展的必然要求。
為了解決上述問題,我們對業務數據的訪問特性進行了深入分析。在排除了涉及賬期應用的全面遍歷查詢情況后,問題的核心集中在批量查詢和高頻率查詢的場景上。
在處理話單業務的場景中,高頻查詢指的是那些頻繁需要進行數據檢索的操作。在云計算的架構下,每次對數據的訪問都會引起一定的網絡性能損失。隨著這種訪問頻率的增加,系統的整體性能將以指數方式遞減。

某省話單壓測數據訪問與訪問頻率匯總
在實際操作中,以實例數據為核心的高頻訪問操作往往涉及對單個話單的訪問超過6次,且頻繁出現對相同數據的重復查詢。通過深入的場景配置分析,我們追溯到這一現象的根源在于話單處理的內部屬性與外部屬性之間的顯著差異。在處理話單的過程中,尤其是對于定價領域的參照值,常常需要結合外部屬性進行操作。這些外部屬性各自獨立,互不干涉,也因此無法自動判斷數據是否可以進行關聯復用。
批量查詢的設計意圖在于一次性通過遠程交互獲取多項數據,以此顯著降低單條數據檢索的等待時間。理論上,這種平均化的時間延遲不應對系統性能產生根本性的影響,即使不使用高速緩存。然而,實際的測試表現并未達到預期標準。

并發批量查詢時萬兆網上行帶寬占滿
監控數據顯示,一旦部分表從高速緩存中移出,組網的萬兆帶寬會立即被占滿。這表明,單從業務場景和監控數據進行分析已不足夠,需要結合更細致的業務訪問操作進行綜合分析,并對每張表的訪問頻率和帶寬資源占用進行量化。
為了細致分析業務實際訪問的操作,團隊迅速完善了業務數據訪問接口的調用鏈埋點,實現了表級別的接口數據采集。同時,對訪問維度進行了數據接口級別的埋點,特別關注了關鍵維度如銷售品、用戶和實例等。通過對163355條話單的測試分析,我們獲得了以下關鍵數據:

某省話單壓測數據訪問與帶寬關系匯總
通過數據分析,發現產品實例關系表的批量查詢操作中,單次查詢平均返回1083條記錄,每條數據的網絡開銷極小。然而,在12萬TPS的負載下,這種操作將達到萬兆帶寬的上限,這與監控驗證的結論相符。
綜上所述,對業務系統資料訪問中的性能損耗就能做到有的放矢:
對于涉及高頻重復查詢的表。使用高速緩存方案存儲會占用幾百GB的內存,而全集數據使用并不頻繁,導致大量內存均存在冗余浪費。因此,需要重新設計更合理的緩存策略。
對于涉及批量查詢的產品實例關系表。業務會在短期內掃描大量數據,導致萬兆網帶寬立即占滿,而產生影響的表僅為產品實例關系表。因此,需要考慮采用高速緩存并只對單表進行緩存支持。
通過這種分治策略,我們可以針對性地解決復雜問題,選擇適當的場景應用高速緩存,并對高頻重復數據查詢的場景進行優化,從而實現業務系統全流程的性能提升。
當前面對的主要問題是優化處理高頻重復訪問的表操作,實現減少內存開銷的前提下,完成業務性能的優化提升。
首先,在該特征下,存儲在高速緩存中的大部分數據都非熱頻數據,導致緩存資源利用率不高。因此,需要將對應場景的數據從高速緩存中移出,從而節約大量內存資源,確保應用系統的資源充足。
其次,將這些重復訪問的表按維度進行劃分,區分出存在重復數據查詢的場景,考慮在重復數據訪問的過程中降低性能損耗。
最后,還要考慮對復雜業務系統的穩定性、準確性的影響,如何提升技術方案的可控性也是重中之重。
綜上所述,對技術方案提出了如下四點要求:

為了實現上述特征,團隊結合現狀給出了一種高頻資料緩存技術,在不依賴任何第三方組件的基礎上,對數據訪問層(DAO)進行了有效地優化,具體方案如下:

方案結合當前業務現狀和產品特性,在DAO層采取了一系列先進的緩存管理策略,確保數據處理的優化與資源的最大化利用:
零侵入的方案實踐效果:得益于業務系統架構的高可擴展性及先進性,高頻資料緩存方案在DAO層就能完成維度數據緩存,對業務流程完全零侵入。
高準確的緩存留存機制:數據在DAO層按指定維度進行緩存,對相同維度的個性化SQL進行動態拆分處理,實現了單次緩存匹配多個數據接口的效果。應用在處理完指定批次話單數據后,還會及時銷毀緩存中的數據,確保數據的準確有效。
精細化的數據緩存策略:業務系統應用針對每個批次的話單數據,特別是那些需要頻繁訪問且數據量較大的數據,執行專門的緩存策略。這些數據按紅黑樹進行存儲,被緩存到定制的私有內存中,從而顯著減少了系統與外部任何數據源的交互頻率和相關開銷。這不僅提高了數據處理的響應速度,也優化了系統資源的使用,單進程開銷低于20MB。
通過這些策略的實施,業務系統不僅提高了處理效率,還確保了數據的安全性和準確性,為生產業務提供了更加可靠和高效的服務。
在特定的批量訪問情境中,可能會出現帶寬資源被過度消耗的情況,其根本原因在于一次性檢索返回的數據量過大。鑒于該省的產品實例關聯表數據不超過3億條,預計內存消耗約為20GB。因此,我們建議采用高速緩存結合單表支持的策略,以此來顯著降低帶寬使用,緩解服務器負荷,同時確保數據訪問的高效性和精確性。
隨著業務范圍的持續擴展,業務系統正遭遇日益增長的性能壓力。為了解決這些挑戰并提高系統效率,我們的團隊采取了一系列創新技術策略,特別是對高頻數據緩存的優化工作:
?? 我們成功地整合了高速緩存技術與業務系統的緩存策略,從而對業務系統的數據查詢性能進行了深度優化。這一改進顯著加快了數據處理速度,縮短了系統響應時間,同時顯著降低了網絡帶寬的負荷,有效釋放了冗余的內存資源。
?? 此外,這些措施還顯著增強了系統的可擴展性和可靠性,使其能夠應對未來業務的快速擴展和增長。這些優化確保了業務系統能夠持續提供高效、便捷且穩定的服務,滿足當前需求,也為未來可能的變化和技術升級奠定了堅實基礎。
?? 至關重要的是,這次的系統優化為后續的業務系統模塊性能提升提供了寶貴的經驗和指導方向。通過不斷的技術創新和優化,業務系統將更好地適應業務需求,同時也能提供更廣泛的支持和價值創造。
總之,本次優化提升了業務系統的性能和穩定性,也為應對未來的挑戰和利用新機遇做好了充分準備,確保業務系統能夠在動態的市場環境中實現持續的高質量發展。