17742004931

響應呼叫,如何在云端優化性能

響應呼叫,如何在云端優化性能

發布時間:2020-05-14 10:15:00

應用系統上線后,隨著系統數據量的不斷增長和訪問量的不斷增加,系統的響應速度一般會越來越慢,特別是在高峰期,無法滿足業務需求,而即使...

如果您有類似需求請致電

17742004931 , 17742004931

應用系統上線后,隨著系統數據量的不斷增長和訪問量的不斷增加,系統的響應速度一般會越來越慢,特別是在高峰期,無法滿足業務需求,而即使是應用服務中斷也會給企業帶來巨大的品牌損失和經濟損失,因此性能優化將是非常重要的。

通過性能優化,可以利用較少的硬件資源支持更多的業務發展,從而達到節約硬件成本的目的;同時,在資源有限的情況下,提高系統的響應能力,為用戶帶來更好的使用體驗,促進業務增長。

對于應用系統,用戶需要通過瀏覽器到數據庫的多個鏈接來完成事務操作。如果系統響應緩慢,則需要分析請求的每個鏈路,確定可能的性能瓶頸并定位問題。

解決瓶頸的方法通常是檢查請求處理各個環節的日志,分析哪些環節響應時間不合理,超出預期;然后檢查監控數據,分析影響性能的主要因素是CPU、內存、磁盤、網絡等基礎設施資源,架構設計,或慢SQL語句。

在找出性能問題的具體原因后,我們可以做有針對性的性能優化。

性能優化,簡言之,就是在不影響系統運行正確性的前提下,使系統在較短的時間內運行更快、完成特定的功能。

性能優化的維度很多,可以從以下五個方面進行:資源層、架構層、應用層、數據庫層、中間件層。性能優化系統如下:

云資源層的優化包括云資源的水平和垂直擴展。云監控的量化指標數據可以作為資源層優化的基礎。

云監控可以實時監控云資源的動態指標,是所有云產品監控管理的通用入口。您可以通過云監控查看最全面、最詳細的監控數據。云監控可以實時監控云服務器、云數據庫、負載均衡等云產品,提取云產品的關鍵指標,并以監控圖的形式顯示。您可以使用云監控全面了解資源利用率、應用程序性能和云產品運行狀況。

橫向擴展是增加ECs、云數據庫等實例的數量,縱向擴展是升級ECs、云數據庫等云資源的規格配置,如CPU、內存、磁盤、帶寬等參數配置,從解決資源瓶頸的觀點。

系統架構設計的不合理也可能導致系統的性能問題。例如,在體系結構設計中,沒有考慮讀寫分離、數據庫子數據庫子表、動態靜態分離、CDN加速、緩存加速、彈性伸縮等。

讀寫分離和數據庫子表解決了數據庫訪問性能問題。在云上實現讀寫分離非常方便。創建只讀實例后,在應用程序中配置讀寫分離地址,使寫請求自動轉發到主實例,讀請求自動轉發到每個只讀實例。

動靜分離、CDN加速和緩存解決了靜態文件或熱點數據(如圖片、視頻、熱點商品、庫存等)的快速讀取問題,企業進入云計算時,需要盡可能使用一些成熟的云原生解決方案,從架構設計上優化訪問性能水平。

彈性伸縮解決了應用服務器的自動擴展問題。通過預先配置擴展規則和策略,在業務需求增長時自動添加云服務器實例,保證計算能力,避免訪問延遲和資源過載。

應用層優化的關鍵是快速診斷應用瓶頸。

互聯網業務的快速發展帶來了越來越大的流量壓力,業務邏輯也變得越來越復雜。傳統的單機應用已經不能滿足需求。越來越多的網站或系統逐漸采用分布式部署架構。

同時,隨著spring cloud/Dubbo等基礎開發框架的不斷成熟,越來越多的企業開始按照業務模塊對應用架構進行垂直拆分,形成更適合團隊協同開發和快速迭代的微服務架構。

分布式微服務體系結構在開發效率上有了很大的提高,但它給傳統的監控、運行維護和診斷技術帶來了巨大的挑戰。主要挑戰包括:

難以定位:

在微服務分布式體系結構中,業務請求通常需要經過多個服務/節點并返回結果。一旦請求中出現錯誤,通常需要重復檢查多臺計算機上的日志,以初步確定問題所在。簡單問題的故障排除通常涉及多個團隊。

難以發現瓶頸:

當用戶反饋系統卡住時,很難快速找到瓶頸:是用戶終端到服務器的網絡問題,是服務器高負載導致的響應慢,還是數據庫壓力過大?即使我們找到了導致阻塞的鏈接,也很難快速找到代碼級別的根本原因。

很難理清結構:

在業務邏輯變得越來越復雜之后,很難從代碼級別區分應用程序依賴的下游服務(數據庫、HTTP API、緩存)和依賴的外部調用。業務邏輯、架構管理和容量規劃變得更加困難。

一般來說,需要利用性能壓力測試工具(如PTS)、應用實時監控服務(如arms)等工具,從前端、應用、業務定制等維度對鏈路進行跟蹤,實現完整的呼叫鏈路恢復、呼叫請求統計等功能,鏈接拓撲和應用程序依賴性分析。鏈路跟蹤有助于快速分析和診斷分布式應用體系結構中的性能瓶頸,提高微服務時代的開發和診斷效率。

瓶頸問題定位后,進行有針對性的優化工作,如優化慢SQL語句、優化調用錯誤報告程序代碼、優化調用異常API等,系統的性能和容量水位可以用性能壓力測量工具進行再次測試。通過壓力測量結果,可以進一步分析系統的瓶頸,迭代優化應用。

影響數據庫系統性能的主要因素有:系統的硬件配置、數據庫文件的物理分布、數據庫實例的參數、數據庫的物理設計和應用的SQL語句。

為了優化數據庫性能,首先需要收集以下數據內容:

系統軟硬件環境:包括服務器的操作系統設置、硬件配置、網絡配置、軟件環境、啟動選項、進程信息、性能信息、磁盤使用情況等。

硬件操作:包括CPU、內存、磁盤和網絡的操作數據。

數據庫實例配置:實例配置參數。

數據庫配置:包括恢復模式、自動收縮、空間增長等信息。

數據庫磁盤使用情況:包括數據庫大小、表大小、記錄數、索引大小、占用空間等。

索引和碎片:包括表上索引、索引碎片、索引維護計劃等。

SQL語句執行:包括SQL語句執行時間、開始時間、數據庫、語句內容、死鎖、阻塞等。

應用程序運行狀態:包括系統高峰時間、晚上數據庫維護任務、用戶上報業務慢、系統運行特點。

數據庫性能的主要優化項目如下:

在信息系統中,許多性能問題都是由應用中間件引起的。應用程序中間件的誕生是為了幫助應用程序的編碼人員處理與業務邏輯無關的頻繁事務,例如處理應用程序和數據庫之間的關系、設置要打開多少會話來處理客戶請求、會話超時等。

然而,在享受便利的同時,應用中間件也將成為系統性能問題的創造者。開發人員和測試人員往往忽略中間件本身對性能的影響,包括事務吞吐量的限制、響應時間的影響、事務成功率的影響等。

中間件優化的目標是縮短中間件的使用時間(提高用戶體驗),提高整個應用服務器的吞吐量。對于中間件優化和參數調整,需要了解調整后的含義、原則、效益和風險。更好的是,n個參數可以作為一個整體纏繞在大腦中。

高優先級:調整JDBC連接池、線程池和JVM虛擬機堆大小。

中等優先級:會話數,垃圾收集的GC策略。

不正確的配置還可能導致中間件處于偽死狀態。例如,某類資源(session或JDBC)被應用程序完全占用,短時間內不釋放,導致新請求無法執行,出現假死的情況。在這種情況下,應做好超時放棄的參數配置。

性能優化的進一步考慮

性能優化是一項復雜的系統工程。首先需要定位性能瓶頸,然后從云資源、系統架構、應用、數據庫、中間件等方面進行全面分析和優化,性能優化的最終目的是提高用戶體驗。沒有這個目的,追求高性能的技術就什么都不是。

隨著系統數據的不斷增加、訪問用戶的不斷增加、系統功能的不斷迭代,系統需要不斷優化性能,這是一場持久的戰斗,只有這樣,用戶才能有更好的訪問體驗,從而支持業務的增長。

聯系我們,談您的需求

立即咨詢
棋牌游戏最低提现10元 挣钱团队 e球彩守号收益计算器 网络打鱼游戏破解技巧 私募股权类fof基金 赖子山庄天津麻将app 捕鱼游戏里金蟾的弱点 股票指数下跌 至尊棋牌作弊辅助 最新特马免费资料 股票申购新股中签查