rds服務(wù)器搭建方法 系統(tǒng)架構(gòu)如何進(jìn)行性能優(yōu)化?
系統(tǒng)架構(gòu)如何進(jìn)行性能優(yōu)化?對(duì)于業(yè)務(wù)系統(tǒng)的性能優(yōu)化,我已經(jīng)系統(tǒng)的講過分析診斷的思路。今天我就說說業(yè)務(wù)系統(tǒng)性能優(yōu)化中思考和分析系統(tǒng)性能問題的一些常用方法。上線前的性能測(cè)試有用嗎?有時(shí)候大家可能會(huì)疑惑,為什
系統(tǒng)架構(gòu)如何進(jìn)行性能優(yōu)化?
對(duì)于業(yè)務(wù)系統(tǒng)的性能優(yōu)化,我已經(jīng)系統(tǒng)的講過分析診斷的思路。今天我就說說業(yè)務(wù)系統(tǒng)性能優(yōu)化中思考和分析系統(tǒng)性能問題的一些常用方法。
上線前的性能測(cè)試有用嗎?有時(shí)候大家可能會(huì)疑惑,為什么我們的系統(tǒng)在再次上線之前已經(jīng)測(cè)試過了,為什么上線之后還是會(huì)出現(xiàn)系統(tǒng)性能問題。那么我們可以在上線之前考慮一下我們性能測(cè)試中可能存在的一些地方,這樣可以 不能真正模擬生產(chǎn)環(huán)境,特別是:
1.硬件能否完全模擬真實(shí)環(huán)境?最佳性能測(cè)試通常直接在構(gòu)建的生產(chǎn)環(huán)境中進(jìn)行。
2.數(shù)據(jù)量能否模擬實(shí)際場(chǎng)景?真實(shí)的場(chǎng)景往往是很多業(yè)務(wù)表已經(jīng)積累了大量的數(shù)據(jù),而不是空表。
3.并發(fā)可以模擬真實(shí)場(chǎng)景嗎?一個(gè)是需要記錄復(fù)雜的業(yè)務(wù)場(chǎng)景,一個(gè)是并發(fā)量大的時(shí)候需要多臺(tái)測(cè)壓機(jī)。
其實(shí)我們做性能測(cè)試的時(shí)候很難做到以上幾點(diǎn),所以完全模擬真實(shí)的生產(chǎn)環(huán)境是相當(dāng)困難的,這也導(dǎo)致很多性能問題在真實(shí)上線之后才被發(fā)現(xiàn)。
系統(tǒng)本身的橫向彈性擴(kuò)展是否完全解決了性能問題?第二點(diǎn),也是我們經(jīng)常講的,就是在設(shè)計(jì)我們業(yè)務(wù)系統(tǒng)的架構(gòu)的時(shí)候,特別是面對(duì)非功能性需求的時(shí)候,會(huì)講系統(tǒng)本身的數(shù)據(jù)庫,中間件采用集群技術(shù),可以實(shí)現(xiàn)靈活的橫向擴(kuò)展。那么這種彈性水平擴(kuò)展真的解決了性能問題嗎?
事實(shí)上,我們看到,對(duì)于數(shù)據(jù)庫來說,往往很難實(shí)現(xiàn)無限的彈性水平擴(kuò)展,即使對(duì)于Oracle RAC集群,也往往高達(dá)單點(diǎn)性能的2到3倍。對(duì)于應(yīng)用集群來說,往往可以實(shí)現(xiàn)靈活的橫向擴(kuò)展,目前的技術(shù)已經(jīng)比較成熟。
當(dāng)中間件可以充分彈性擴(kuò)展的時(shí)候,可能還是會(huì)出現(xiàn)性能問題,也就是隨著我們系統(tǒng)的運(yùn)行,以及業(yè)務(wù)數(shù)據(jù)的不斷積累和增值。其實(shí)你可以看到非并發(fā)狀態(tài)下的單用戶訪問是很慢的,并不是并發(fā)滿了。因此,也就是我們常說的給分,即:
當(dāng)單點(diǎn)訪問性能正常時(shí),集群可以擴(kuò)展以應(yīng)對(duì)大并發(fā)狀態(tài)下的同時(shí)訪問。
當(dāng)單點(diǎn)訪問本身性能有問題時(shí),首先要優(yōu)化單節(jié)點(diǎn)訪問的性能。
商業(yè)系統(tǒng)性能診斷的分類
對(duì)于業(yè)務(wù)系統(tǒng)性能診斷,從靜態(tài)的角度來看,可以考慮以下三個(gè)方面進(jìn)行分類。
操作系統(tǒng)和存儲(chǔ)中間件層(包括數(shù)據(jù)庫和應(yīng)用服務(wù)器中間件)和軟件層(包括數(shù)據(jù)庫SQL和存儲(chǔ)過程、邏輯層、前端表示層等。),那么就是某個(gè)業(yè)務(wù)系統(tǒng)的應(yīng)用功能有問題。當(dāng)然,我們也可以從動(dòng)態(tài)層面看一個(gè)實(shí)際的應(yīng)用請(qǐng)求從被調(diào)用到現(xiàn)在經(jīng)歷了哪些代碼和硬件基礎(chǔ)設(shè)施,通過分段的方法定位和查詢問題。
比如我們經(jīng)??吹降氖遣樵児δ?。如果有問題,第一件事就是弄清楚這個(gè)查詢函數(shù)對(duì)應(yīng)的SQL語句在后臺(tái)是不是很慢。如果SQL本身很慢,那么就有必要對(duì)SQL語句進(jìn)行優(yōu)化。如果SQL本身快但查詢慢,就要看是前端性能問題還是集群?jiǎn)栴}。
軟件代碼的問題通常是一個(gè)性能問題。;不可忽視。對(duì)于業(yè)務(wù)系統(tǒng)的性能問題,我們往往會(huì)想到擴(kuò)展數(shù)據(jù)庫的硬件性能,比如擴(kuò)展CPU和內(nèi)存,擴(kuò)展集群,但實(shí)際上我們可以看到很多應(yīng)用的性能問題并不是硬件性能造成的,而是軟件代碼性能造成的。我在以前的博客文章中也談到了軟件代碼的常見性能問題,通常包括。
1.初始化大型結(jié)構(gòu)對(duì)象、數(shù)據(jù)庫連接等。在循環(huán)中。
2.資源未釋放等導(dǎo)致的內(nèi)存泄漏
3.基于場(chǎng)景需求的緩存并不能帶來適度的性能提升。
4.長(zhǎng)周期事務(wù)消耗資源。
5.在處理某個(gè)業(yè)務(wù)場(chǎng)景或問題時(shí),沒有選擇最優(yōu)的數(shù)據(jù)結(jié)構(gòu)或算法。
以上是一些常見的軟件代碼性能問題,這些往往需要通過我們的代碼評(píng)審或者代碼復(fù)查來發(fā)現(xiàn)。因此,要想做全面的性能優(yōu)化,就必須考察軟件代碼的性能問題。
一般有兩種途徑可以通過IT資源監(jiān)控或APM應(yīng)用工具發(fā)現(xiàn)性能問題。一是通過我們的IT資源監(jiān)控、APM性能監(jiān)控和預(yù)警提前發(fā)現(xiàn)性能問題,二是通過業(yè)務(wù)用戶在使用過程中的反饋發(fā)現(xiàn)性能問題。
隨著D
什么是遠(yuǎn)程桌面會(huì)話主機(jī)(RD Session Host)?
RD會(huì)話主機(jī)(也稱為RDS主機(jī))是一臺(tái)服務(wù)器計(jì)算機(jī),用于承載要遠(yuǎn)程訪問的應(yīng)用程序和桌面。在View部署中,RDS主機(jī)是安裝了Microsoft遠(yuǎn)程桌面服務(wù)角色、Microsoft遠(yuǎn)程桌面會(huì)話主機(jī)服務(wù)和View Agent的Windows服務(wù)器。