成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

性能工程之性能規(guī)劃實(shí)踐

開發(fā)
在性能工程中,技術(shù)層面上最難的部分是性能分析和性能優(yōu)化,而整體上最為繁瑣和復(fù)雜的則是性能規(guī)劃。

隨著軟件系統(tǒng)的規(guī)模越來越龐大,對性能的需求越來越高,性能測試的要求也越來越高。但是僅僅做性能測試,已經(jīng)很難滿足當(dāng)前軟件系統(tǒng)對于性能的各種需求,所以需要做更多性能相關(guān)的工作。而對于這一系列性能相關(guān)的工作,我們稱之為性能工程。

性能工程是發(fā)現(xiàn)和解決軟件系統(tǒng)性能問題最主要的方法體系和技術(shù)手段,它一般包含以下幾個(gè)部分:性能測試,性能輪廓,性能分析,性能優(yōu)化和性能規(guī)劃(容量規(guī)劃)。

  • 性能測試:通過不同類型的測試,獲取系統(tǒng)在不同情況下的性能情況,包括各種外部性能指標(biāo),是否滿足實(shí)際的性能需求等。
  • 性能輪廓:通過特定的工具獲取被測系統(tǒng)的各種內(nèi)部性能指標(biāo),從而輔助性能分析工作。
  • 性能分析:通過分析性能測試和性能輪廓獲得的各種數(shù)據(jù)等,發(fā)現(xiàn)性能瓶頸以及其原因,從而輔助性能優(yōu)化的工作。
  • 性能優(yōu)化:通過各種技術(shù)和業(yè)務(wù)手段,盡可能消除性能瓶頸,從而提升系統(tǒng)的性能。
  • 性能規(guī)劃:通過在不同配置下,進(jìn)行不同規(guī)模的性能測試,獲取系統(tǒng)的性能變化規(guī)律。并針對不同的性能需求,利用這個(gè)規(guī)律對服務(wù)器資源和容量進(jìn)行規(guī)劃,從而滿足不同的性能需求。

在性能工程中,技術(shù)層面上最難的部分是性能分析和性能優(yōu)化,而整體上最為繁瑣和復(fù)雜的則是性能規(guī)劃,因?yàn)槠浒诵阅軠y試,基礎(chǔ)設(shè)施,性能建模和資源協(xié)調(diào)等相關(guān)的工作,甚至需要做系統(tǒng)架構(gòu)調(diào)整才能滿足相應(yīng)的規(guī)劃工作。

性能規(guī)劃

對于用戶量不大的中小型系統(tǒng),因?yàn)閱螜C(jī)或者少量的多機(jī)就可以滿足所有的業(yè)務(wù)性能需求,所以一般不需要做性能規(guī)劃。但是隨著業(yè)務(wù)性能需求的增大,產(chǎn)品環(huán)境的資源需求隨之增加。但是為了避免增加過多資源,盡可能地減少資源的浪費(fèi),所以需要找到滿足業(yè)務(wù)性能需求的最小資源量。

通過性能規(guī)劃,可以找到這個(gè)最小的資源量。其次,有些項(xiàng)目的產(chǎn)品環(huán)境和測試環(huán)境的資源是不一樣的,甚至有巨大的區(qū)別。使用性能規(guī)劃的一系列實(shí)踐,可以通過測試環(huán)境的性能指標(biāo),推測或者計(jì)算出產(chǎn)品環(huán)境中大概的性能情況。從而判斷當(dāng)前的產(chǎn)品環(huán)境是不是滿足業(yè)務(wù)性能需求。

傳統(tǒng)

現(xiàn)代彈性云平臺出現(xiàn)之前,如果要部署一個(gè)服務(wù)器系統(tǒng),必須購買固定配置和數(shù)量的物理機(jī),應(yīng)用服務(wù)器多機(jī)擴(kuò)展也相對很困難,成本也很高。傳統(tǒng)的數(shù)據(jù)庫系統(tǒng)則更難以進(jìn)行擴(kuò)展,雖然以NewSQL為代表TiDB等數(shù)據(jù)庫已經(jīng)支持了水平橫向擴(kuò)展的能力,但是和應(yīng)用服務(wù)器一樣,硬件水平橫向擴(kuò)張也相對很困難,成本也很高。所以在傳統(tǒng)的基礎(chǔ)設(shè)施上做性能規(guī)劃的痛點(diǎn)比較多,難度也比較大。

現(xiàn)代

現(xiàn)代彈性云平臺出現(xiàn)之后,在其上的服務(wù)實(shí)例的硬件配置和數(shù)量可以非常容易地變更,數(shù)據(jù)庫的硬件能力也可以進(jìn)行變更。所以在這種基礎(chǔ)設(shè)施下,可以更為容易地進(jìn)行性能規(guī)劃的工作。

實(shí)踐

在進(jìn)行性能規(guī)劃之前,一定要熟悉整個(gè)系統(tǒng)的架構(gòu),并針對三個(gè)關(guān)鍵點(diǎn)進(jìn)行隔離分析:網(wǎng)關(guān),應(yīng)用服務(wù)器和數(shù)據(jù)庫。

以現(xiàn)在的技術(shù),很難對已有的網(wǎng)關(guān)系統(tǒng)本身進(jìn)行水平橫向擴(kuò)展,只能對其進(jìn)行單機(jī)擴(kuò)展,包括升級CPU,內(nèi)存等。對于應(yīng)用服務(wù)器,單機(jī)配置最好要和產(chǎn)品環(huán)境的實(shí)例保持一致,只是改變服務(wù)器數(shù)量來進(jìn)行性能規(guī)劃測試。對于無法進(jìn)行水平橫向擴(kuò)展的應(yīng)用系統(tǒng)來說,一般不需要做性能規(guī)劃。最后對于數(shù)據(jù)庫,如果無法水平擴(kuò)展的數(shù)據(jù)庫系統(tǒng),可以使用云平臺自帶的數(shù)據(jù)庫系統(tǒng),因?yàn)楝F(xiàn)在大部分云數(shù)據(jù)庫系統(tǒng)都支持?jǐn)U展數(shù)據(jù)庫的單機(jī)能力,比如Amazon RDS和 Azure SQL Database等。如果使用的是分布式數(shù)據(jù)庫,則可以像應(yīng)用服務(wù)系統(tǒng)一樣在云平臺上進(jìn)行水平橫向擴(kuò)展。

只有根據(jù)業(yè)務(wù)性能需求,對關(guān)鍵三點(diǎn)都盡可能分別做性能規(guī)劃,才能做到真正的全方位的性能規(guī)劃。

步驟:

做性能規(guī)劃,一般有以下6個(gè)基本步驟:

  • 準(zhǔn)備測試環(huán)境
  • 選取測試指標(biāo)
  • 建立測試模型
  • 變化測試指標(biāo)并進(jìn)行性能測試
  • 分析測試報(bào)告、擬合測試數(shù)據(jù)
  • 找到性能變化規(guī)律,并規(guī)劃產(chǎn)品環(huán)境性能

首先準(zhǔn)備測試環(huán)境,最好選用云平臺作為測試環(huán)境,如果無法使用云平臺則需要準(zhǔn)備足夠量的物理機(jī),以便得到足夠的擬合數(shù)據(jù)。選取性能指標(biāo)和建立測試模型是最關(guān)鍵和重要的兩步,它們的正確和有效性直接影響到性能規(guī)劃的工作量和結(jié)果的有效性。對于業(yè)務(wù)需求和系統(tǒng)架構(gòu)的不同,重點(diǎn)關(guān)注的指標(biāo)也有所不同,比如數(shù)據(jù)密集型的系統(tǒng),一般會選取Response Time和TPS等作為關(guān)鍵指標(biāo);而數(shù)據(jù)存儲型的系統(tǒng),則選擇吞吐量和IO作為關(guān)鍵指標(biāo)。對于測試模型則可以考慮基于獨(dú)立功能或者是基于場景,是需要有Think Time還是不需要,下圖就是一個(gè)簡單的測試模型的示例:

變化測試指標(biāo)并進(jìn)行性能測試則是最繁瑣的步驟,因?yàn)樾枰淖兏鞣N配置和指標(biāo)來進(jìn)行測試,并收集各種測試結(jié)果數(shù)據(jù)。最后兩步則是通過分析和數(shù)學(xué)擬合,并根據(jù)業(yè)務(wù)性能需求產(chǎn)出性能規(guī)劃結(jié)果。

最后為了驗(yàn)證性能規(guī)劃的有效性,需要在產(chǎn)品環(huán)境中通過各種監(jiān)控手段,比如應(yīng)用系統(tǒng)埋點(diǎn)采集或者日志采集,服務(wù)器探針等獲取應(yīng)用系統(tǒng)和服務(wù)器的各種性能數(shù)據(jù),從而驗(yàn)證性能規(guī)劃的有效性。

擬合

在性能規(guī)劃的步驟里面有一步是擬合測試數(shù)據(jù),它是通過數(shù)學(xué)的擬合方法,通過測試數(shù)據(jù)打點(diǎn)之后,得到一個(gè)曲線和與之相應(yīng)的數(shù)學(xué)函數(shù),然后通過這個(gè)數(shù)學(xué)函數(shù)可以估計(jì)性能的變化規(guī)律,從而對于硬件資源和系統(tǒng)配置進(jìn)行規(guī)劃的工作。

下表是一個(gè)以實(shí)例數(shù)量作為變化指標(biāo),在特定時(shí)間內(nèi)完成的請求數(shù)作為觀察指標(biāo)的測試結(jié)果數(shù)據(jù):

然后通過這些數(shù)據(jù)生成散列圖(以下演示圖使用的是MS Excel生成的,可以使用任何其他的數(shù)學(xué)工具或者庫來生成以下的演示圖,比如SageMath,Mathematica等)

擬合有很多種方式,比如指數(shù)擬合,線性擬合和多項(xiàng)式擬合等。一般情況下,多項(xiàng)式擬合可以獲得比較準(zhǔn)確的結(jié)果,下面三張圖是通過Excel生成的多項(xiàng)式擬合(包括方程)。其中R=1則表示多項(xiàng)式完全符合所有的坐標(biāo)點(diǎn),且斜率為正。但是測試結(jié)果數(shù)據(jù)本身就存在一些不確定性,所以一般會找盡可能R接近1并且曲線盡可能平滑的擬合結(jié)果來進(jìn)行推算。比如下圖中我就會選擇第一張圖中的擬合函數(shù)來進(jìn)行推算。

擬合圖1:

擬合圖2:

擬合圖3:

一般情況下,做性能規(guī)劃測試時(shí),還可以選取下圖中的指標(biāo)來進(jìn)行測試,并得到相應(yīng)的數(shù)據(jù)來做二維擬合:

除了二維擬合,還可以做三維擬合,下圖是常規(guī)情況下做三維擬合需要關(guān)注和變化的指標(biāo):

總結(jié)

性能規(guī)劃在大型應(yīng)用服務(wù)系統(tǒng)中的地位越來越高,因?yàn)樗梢园l(fā)現(xiàn)系統(tǒng)在常規(guī)性能測試的情況下很難發(fā)現(xiàn)的一些性能瓶頸問題,找到性能規(guī)律,從而根據(jù)不同的業(yè)務(wù)性能需求來規(guī)劃產(chǎn)品環(huán)境的資源和配置,從而可以有效地防止服務(wù)器過載或者節(jié)約產(chǎn)品環(huán)境的資源和成本,一舉多得。

責(zé)任編輯:趙寧寧 來源: Thoughtworks洞見
相關(guān)推薦

2020-03-23 15:15:57

MySQL性能優(yōu)化數(shù)據(jù)庫

2010-07-06 09:07:09

2020-07-16 08:06:53

網(wǎng)關(guān)高性能計(jì)

2023-09-19 23:58:35

性能工程軟件

2020-07-17 19:55:50

Vue前端性能優(yōu)化

2013-06-07 18:38:38

CompuwareDevOps

2014-11-04 09:26:11

2021-11-07 23:49:19

SQL數(shù)據(jù)庫工具

2022-10-28 13:41:51

字節(jié)SDK監(jiān)控

2019-08-02 11:28:45

HadoopYARN調(diào)度系統(tǒng)

2022-08-15 08:01:35

微服務(wù)框架RPC

2021-09-24 14:02:53

性能優(yōu)化實(shí)踐

2014-03-19 14:34:06

JQuery高性能

2023-07-24 09:03:38

汽車之家頁面性能監(jiān)控

2017-03-01 20:53:56

HBase實(shí)踐

2024-10-18 09:14:12

2024-01-10 08:25:52

性能工程性能建模成熟度模型

2016-11-17 09:00:46

HBase優(yōu)化策略

2022-07-15 09:20:17

性能優(yōu)化方案

2024-11-20 19:56:36

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 午夜婷婷激情 | 日韩一区二区福利 | 天天插天天操 | 免费一区二区三区在线视频 | 在线免费看黄 | 久久婷婷av | 国产成人99 | 精品一区二区三区不卡 | 亚洲高清视频一区 | 久久综合久久久 | 免费观看一区二区三区毛片 | 在线免费观看黄色网址 | 国产亚洲一区二区三区 | www国产成人免费观看视频,深夜成人网 | 久久青草av | 亚洲视频国产视频 | 国产欧美视频一区二区 | 亚洲毛片一区二区 | 天天草视频| 国产精品99久久久久久久vr | av在线伊人 | 国内成人免费视频 | 97人人草 | 91亚洲国产成人久久精品网站 | 992tv人人草 久久精品超碰 | 亚洲品质自拍视频 | 久久日韩粉嫩一区二区三区 | 波多野结衣一区二区 | 成人精品鲁一区一区二区 | 欧美久久一区二区三区 | 日韩精品一区二区三区中文字幕 | 亚洲成年在线 | 91精品国产91久久久久游泳池 | 激情久久网 | 成人做爰69片免费观看 | 丁香综合| 日韩在线精品视频 | 午夜一区二区三区 | 欧美日韩一区二区三区不卡视频 | 久久精品国产免费看久久精品 | 婷婷色国产偷v国产偷v小说 |