許多IT專業(yè)人員往往以為云優(yōu)化只有一種方法。實際上,云端優(yōu)化有多種方法,包括降低成本、改善性能、可靠性甚至環(huán)境可持續(xù)性的方法。
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供錫林郭勒盟網(wǎng)站建設(shè)、錫林郭勒盟做網(wǎng)站、錫林郭勒盟網(wǎng)站設(shè)計、錫林郭勒盟網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、錫林郭勒盟企業(yè)網(wǎng)站模板建站服務(wù),十余年錫林郭勒盟做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
不同的優(yōu)化目標往往會相互促進,因此廣泛考慮優(yōu)化以充分發(fā)揮云戰(zhàn)略很有幫助。本文幫你熟悉各種優(yōu)化方法,并了解它們?nèi)绾蜗噍o相成,讓你的云環(huán)境更高效。
1、性能優(yōu)化價值
性能是一個應(yīng)用系統(tǒng)最重要的指標,除非沒有選擇,否則沒有用戶會忍受一個響應(yīng)緩慢的應(yīng)用系統(tǒng)或網(wǎng)站。大量數(shù)據(jù)表明,每0.1秒的核心體驗響應(yīng)時間延長會導致1%的營收下降。
應(yīng)用系統(tǒng)上線運行后,隨著系統(tǒng)數(shù)據(jù)量的不斷增長、訪問量的不斷上升,系統(tǒng)的響應(yīng)速度通常會越來越慢,尤其峰值情況下常不能滿足業(yè)務(wù)需要,甚至出現(xiàn)應(yīng)用服務(wù)中斷,給企業(yè)造成巨大的品牌損失和經(jīng)濟損失,因此性能優(yōu)化會顯得至關(guān)重要。
通過性能優(yōu)化,可以用更少的硬件資源,支撐更大量的業(yè)務(wù)發(fā)展,從而達到節(jié)省硬件成本的目的;同時,可以在有限資源的情況下,提升系統(tǒng)的響應(yīng)能力,為用戶帶來更好的使用體驗,促進業(yè)務(wù)增長。
2、性能優(yōu)化策略
對于應(yīng)用系統(tǒng)來說,用戶從瀏覽器發(fā)出請求到數(shù)據(jù)庫完成事務(wù)操作,中間需要經(jīng)過很多環(huán)節(jié),如果系統(tǒng)響應(yīng)慢,必須對請求經(jīng)過的各個環(huán)節(jié)進行分析,排查可能出現(xiàn)性能瓶頸的地方,定位問題。
排查瓶頸的方法通常是檢查請求處理的各個環(huán)節(jié)的日志,分析哪個環(huán)節(jié)響應(yīng)時間不合理、超出預(yù)期;然后檢查監(jiān)控數(shù)據(jù),分析影響性能的主要因素是CPU,還是內(nèi)存、磁盤、網(wǎng)絡(luò)等基礎(chǔ)設(shè)施資源的問題,還是架構(gòu)設(shè)計的問題,或是慢SQL語句的問題等。
定位出導致性能問題的具體原因后,再做針對性的性能優(yōu)化。
1、性能優(yōu)化體系
性能優(yōu)化,簡而言之,就是在不影響系統(tǒng)運行正確性的前提下,使之運行的更快,完成特定功能所需的時間更短。
性能優(yōu)化的維度很多,綜合來看可以從下面五個方面展開性能優(yōu)化:資源層、架構(gòu)層、應(yīng)用層、數(shù)據(jù)庫層、中間件層。性能優(yōu)化體系如下圖:
2、資源層優(yōu)化
云資源層的優(yōu)化包括云資源水平方向和垂直方向擴展,資源層面優(yōu)化的依據(jù)可來自云監(jiān)控的量化指標數(shù)據(jù)。
云監(jiān)控可實時監(jiān)控云資源動態(tài)指標,是所有云產(chǎn)品的監(jiān)控管理總?cè)肟?。可以通過云監(jiān)控查看最全、最詳細的監(jiān)控數(shù)據(jù)。云監(jiān)控能夠?qū)崟r對云服務(wù)器、云數(shù)據(jù)庫、負載均衡等云產(chǎn)品進行監(jiān)控,提取云產(chǎn)品關(guān)鍵指標,以監(jiān)控圖表形式展示。可以通過使用云監(jiān)控全面地了解資源使用率、應(yīng)用程序性能和云產(chǎn)品運行狀況。
水平方向擴展是增加云服務(wù)器、云數(shù)據(jù)庫等實例數(shù)量,垂直方向擴展是升級云服務(wù)器、云數(shù)據(jù)庫等云資源的規(guī)格配置,比如CPU、內(nèi)存、磁盤、帶寬等參數(shù)配置,從解決資源瓶頸的角度來優(yōu)化系統(tǒng)的訪問性能。
3、架構(gòu)層優(yōu)化
系統(tǒng)的性能問題也有可能是系統(tǒng)架構(gòu)設(shè)計不合理造成的。比如在架構(gòu)設(shè)計上,沒有考慮做讀寫分離、數(shù)據(jù)庫分庫分表、動靜分離、CDN加速、緩存加速、彈性伸縮等。
讀寫分離與數(shù)據(jù)庫分庫分表解決的是數(shù)據(jù)庫訪問性能問題,在云上實現(xiàn)讀寫分離非常方便,創(chuàng)建只讀實例后,在應(yīng)用程序中配置讀寫分離地址,就可以使寫請求自動轉(zhuǎn)發(fā)到主實例,讀請求自動轉(zhuǎn)發(fā)到各個只讀實例。
動靜分離、cdn加速、緩存解決的是靜態(tài)文件或熱點數(shù)據(jù)快速讀取問題,比如圖片、視頻、熱門商品、庫存等等,企業(yè)上云時需要盡可能使用一些成熟的云原生解決方案,從架構(gòu)設(shè)計層面去優(yōu)化訪問性能的問題。
彈性伸縮解決的是應(yīng)用服務(wù)器自動擴展的問題,通過提前配置伸縮規(guī)則與策略,在業(yè)務(wù)需求增長時自動增加云服務(wù)器實例以保證計算能力,避免訪問延時和資源超負荷運行。
4、應(yīng)用層優(yōu)化
應(yīng)用層優(yōu)化的關(guān)鍵是首先快速診斷出應(yīng)用的問題瓶頸。
互聯(lián)網(wǎng)業(yè)務(wù)的高速發(fā)展帶來了日益增長的流量壓力,業(yè)務(wù)邏輯也日趨復(fù)雜,傳統(tǒng)的單機應(yīng)用已經(jīng)無法滿足需求。越來越多的網(wǎng)站或系統(tǒng)逐漸采用了分布式部署架構(gòu)。
同時,隨著 Spring Cloud/Dubbo 等基礎(chǔ)開發(fā)框架不斷成熟,越來越多的企業(yè)開始對應(yīng)用架構(gòu)按照業(yè)務(wù)模塊進行垂直拆分,形成了更適合團隊協(xié)同開發(fā)、快速迭代的微服務(wù)架構(gòu)。
分布式的微服務(wù)架構(gòu)在開發(fā)效率上具備先進性,但給傳統(tǒng)的監(jiān)控、運維、診斷技術(shù)帶來了巨大挑戰(zhàn)。主要挑戰(zhàn)包括:
定位問題難:
微服務(wù)分布式架構(gòu)一個業(yè)務(wù)請求通常要經(jīng)過多個服務(wù)/節(jié)點后返回結(jié)果,一旦請求出現(xiàn)錯誤,往往要在多臺機器上反復(fù)翻看日志才能初步定位問題,對簡單問題的排查也常常涉及多個團隊。
發(fā)現(xiàn)瓶頸難:
當用戶反饋系統(tǒng)出現(xiàn)卡頓現(xiàn)象,很難快速發(fā)現(xiàn)瓶頸在哪里:是用戶終端到服務(wù)端的網(wǎng)絡(luò)問題,是服務(wù)端負載過高導致響應(yīng)變慢,還是數(shù)據(jù)庫壓力過大?即使定位到了導致卡頓的環(huán)節(jié),也很難快速定位到代碼層面的根本原因。
架構(gòu)梳理難:
在業(yè)務(wù)邏輯變得逐漸復(fù)雜以后,很難從代碼層面去梳理某個應(yīng)用依賴了哪些下游服務(wù)(數(shù)據(jù)庫、HTTP API、緩存),以及被哪些外部調(diào)用所依賴。業(yè)務(wù)邏輯的梳理、架構(gòu)的治理和容量的規(guī)劃也變得更加困難。
通常,需要使用性能壓測工具(比如PTS)、應(yīng)用實時監(jiān)控服務(wù)(比如ARMS)等工具,基于前端、應(yīng)用、業(yè)務(wù)自定義等維度進行鏈路追蹤,實現(xiàn)完整的調(diào)用鏈路還原、調(diào)用請求量統(tǒng)計、鏈路拓撲和應(yīng)用依賴分析等。鏈路追蹤能夠幫助快速分析和診斷分布式應(yīng)用架構(gòu)下的性能瓶頸,提高微服務(wù)時代下的開發(fā)診斷效率。
定位瓶頸問題后,展開針對性的優(yōu)化工作,比如優(yōu)化慢SQL語句、優(yōu)化調(diào)用報錯程序代碼、優(yōu)化調(diào)用異常API等。通常應(yīng)用優(yōu)化后可結(jié)合性能壓測工具對系統(tǒng)性能、容量水位進行再次壓力測試,通過壓測結(jié)果進一步分析系統(tǒng)瓶頸,對應(yīng)用不斷迭代優(yōu)化。
5、數(shù)據(jù)庫優(yōu)化
影響數(shù)據(jù)庫系統(tǒng)性能主要有如下幾個因素:系統(tǒng)的硬件配置、數(shù)據(jù)庫文件的物理分布、數(shù)據(jù)庫實例的參數(shù)、數(shù)據(jù)庫的物理設(shè)計、應(yīng)用的SQL語句。
數(shù)據(jù)庫性能優(yōu)化,首先需要進行下述數(shù)據(jù)內(nèi)容采集:
系統(tǒng)軟硬件環(huán)境:包括服務(wù)器的操作系統(tǒng)設(shè)置、硬件配置、網(wǎng)絡(luò)配置、軟件環(huán)境、啟動選項、進程信息、性能信息、磁盤使用情況等。
硬件運行情況:包括CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)的運行數(shù)據(jù)。
數(shù)據(jù)庫實例的配置: 實例配置參數(shù)。
數(shù)據(jù)庫配置:包括恢復(fù)模式、自動收縮、空間增長等信息。
數(shù)據(jù)庫磁盤使用:包括數(shù)據(jù)庫大小、表大小、記錄數(shù)、索引大小、占用空間等。
索引及碎片情況:包括表上的索引、索引的碎片情況、索引的維護計劃等。
SQL語句執(zhí)行情況:包括SQL 語句執(zhí)行時間、啟動時間、所在數(shù)據(jù)庫、語句內(nèi)容、死鎖、阻塞等情況。
應(yīng)用程序運行狀況:包括系統(tǒng)高峰時段、晚間的數(shù)據(jù)庫維護任務(wù)、用戶報告比較慢的業(yè)務(wù)、系統(tǒng)運行特點。
數(shù)據(jù)庫性能主要優(yōu)化項見下圖:
6、中間件優(yōu)化
在信息系統(tǒng)中,不少性能問題是由不起眼的應(yīng)用中間件造成的。應(yīng)用中間件之所以誕生,是為了幫助應(yīng)用程序的編碼人員處理與業(yè)務(wù)邏輯沒有太大關(guān)系而又必須處理的經(jīng)常性事物,比如處理應(yīng)用程序和數(shù)據(jù)庫之間的關(guān)系,設(shè)置開啟多少個session來處理客戶請求,session的超時時間等等。
然而在享受便利的同時,應(yīng)用中間件也會成為系統(tǒng)性能問題的締造者,開發(fā)人員和測試人員往往忽視了中間件本身對性能的影響,這種影響包括交易吞吐量的制約、響應(yīng)時間的影響、交易成功率的影響等等。
中間件優(yōu)化的目標是把耗費在中間件的時間縮短(提升用戶體驗),提高整個應(yīng)用服務(wù)器的吞吐量。中間件優(yōu)化,調(diào)什么參數(shù),一定要了解其含義、原理、調(diào)整后的收益和風險是什么,最好是N個參數(shù)能在腦子里纏繞為一個整體。
高優(yōu)先:調(diào)整JDBC連接池大小、線程池、JVM虛擬機的heap size。
中優(yōu)先:會話數(shù)、垃圾回收GC策略。
另外還有高速緩存、數(shù)據(jù)源語句緩存大小。
不當?shù)呐渲靡矔е轮虚g件處于假死狀態(tài)。比如某類資源(session或jdbc)被應(yīng)用完全占滿了,并且短期不釋放,這樣新的請求就沒法執(zhí)行,造成了假死的情況。這類情況,要做好超時放棄的參數(shù)配置。
性能優(yōu)化是一個復(fù)雜的系統(tǒng)工程,首先需要定位性能瓶頸,然后從云資源、系統(tǒng)架構(gòu)、應(yīng)用程序、數(shù)據(jù)庫、中間件等方面進行綜合分析和優(yōu)化;性能優(yōu)化的最終目的是為了改善用戶的體驗,離開這個目的而追求技術(shù)上的所謂高性能是舍本逐末,沒有任何意義。
隨著系統(tǒng)數(shù)據(jù)量、訪問用戶量的不斷增加,以及系統(tǒng)功能的不斷迭代,系統(tǒng)需要持續(xù)進行性能優(yōu)化,性能優(yōu)化是一場持久戰(zhàn),只有這樣才能讓用戶擁有更好的訪問體驗,從而支撐業(yè)務(wù)增長。
文章名稱:如何在云端進行性能優(yōu)化
標題來源:http://www.rwnh.cn/article34/jsdhse.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、網(wǎng)站設(shè)計公司、網(wǎng)站改版、手機網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈、外貿(mào)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)