掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
最近,很多小伙伴都在說,我沒做過性能優(yōu)化的工作,在公司只是做些CRUD的工作,接觸不到性能優(yōu)化相關(guān)的工作?,F(xiàn)在出去找工作面試的時候,面試官總是問些很刁鉆的問題來為難我,很多我都不會啊!那怎么辦呢?那我就專門寫一些與高并發(fā)系統(tǒng)相關(guān)的面試容易問到的問題吧。今天,我們就來說說在高并發(fā)場景下做性能優(yōu)化有哪些衡量標(biāo)準(zhǔn),以及做優(yōu)化時需要注意哪些問題。

首先,我們來分析下面試官的這個問題。其實,以我本人招聘面試的經(jīng)驗來說,如果面試官問出了這樣的一個問題。本質(zhì)上不只是想讓面試者簡單的回答:做過或者沒做過。而是想通過這個簡單的問題來考察下面試者的思考能力和對于問題的理解能力。面試官本質(zhì)上是想讓面試者通過這個問題,講述一下自己做性能優(yōu)化相關(guān)工作的經(jīng)驗、以及對于性能優(yōu)化工作的一些理論的理解,比如就包括:性能優(yōu)化的衡量指標(biāo),期間需要注意的問題等等。
如果面試者在面試過程中,不能充分理解面試官的意圖,回答問題時,像擠牙膏一樣,擠點出點,那么,大多數(shù)情況下,面試官就會認為這個人沒啥性能優(yōu)化的經(jīng)驗。此時,面試者就會在面試官心理的印象大打折扣,面試結(jié)果就有非常大的概率涼涼了。
對于性能優(yōu)化來說,衡量的指標(biāo)有很多,大體上可以分為:性能指標(biāo)、響應(yīng)時間、并發(fā)量、秒開率和正確性等。我們可以使用下圖來表示這些衡量指標(biāo)。
接下來,我們就分別說明下這些衡量指標(biāo)。
性能指標(biāo)又可以包含:吞吐量和響應(yīng)速度。我們平時所說的QPS、TPS和HPS等,就可以歸結(jié)為吞吐量。有很多小伙伴可能對于QPS、TPS和HPS等不太了解,我們先來說下這幾個字母的含義。
這些都是與吞吐量相關(guān)的衡量指標(biāo)。
平時我們在做優(yōu)化工作的時候,首先要明確需要優(yōu)化的事項。比如:我們做的優(yōu)化工作是要提高系統(tǒng)的吞吐量?還是要提升系統(tǒng)的響應(yīng)速度呢?舉一個具體點的例子:比如我們的程序中存在一些數(shù)據(jù)庫或者緩存的批量操作,雖然在數(shù)據(jù)的讀取上,響應(yīng)速度下降了,但是我們優(yōu)化的目標(biāo)就是吞吐量,只要我們優(yōu)化后系統(tǒng)的整體吞吐量明顯上升了,那這也是提升了程序的性能。
所以說,優(yōu)化性能不只是提升系統(tǒng)的響應(yīng)速度。
這里,優(yōu)化性能也并不是一味的優(yōu)化吞吐量和優(yōu)化響應(yīng)速度,而是在吞吐量和響應(yīng)速度之間找到一個平衡點,使用有限的服務(wù)器資源來更好的提升用戶體驗。
對于響應(yīng)時間來說,有兩個非常重要的衡量指標(biāo)。那就是:平均響應(yīng)時間和百分位數(shù)。
(1)平均響應(yīng)時間
通常,平均響應(yīng)時間體現(xiàn)的是服務(wù)接口的平均處理能力。計算方式就是把所有的請求所耗費的時間加起來,然后除以請求的次數(shù)。舉個簡單的例子:比如:我們向一個網(wǎng)站發(fā)送了5次請求,每次請求所耗費的時間分別為:1ms,2ms,1ms,3ms,2ms,那么,平均響應(yīng)時間就是(1+2+1+3+2)/ 5 = 1.8ms,所以,平均響應(yīng)時間就是1.8ms。
平均響應(yīng)時間這個指標(biāo)存在一個問題:如果在短時間內(nèi)請求變得很慢,但很快過去了,此時使用平均響應(yīng)時間就無法很好的體現(xiàn)出性能的波動問題。
(2)百分位數(shù)
百分位數(shù)就是我們在優(yōu)化的時候,圈定一個時間范圍,把每次請求的耗時加入一個列表中,然后按照從小到大的順序?qū)⑦@些時間進行排序。這樣,我們?nèi)〕鎏囟ò俜治坏暮臅r,這個數(shù)字就是 TP 值。
TP值表示的含義就是:超過 N% 的請求都在 X 時間內(nèi)返回。比如 TP90 = 50ms,意思是超過 90th 的請求,都在 50ms 內(nèi)返回。
百分位數(shù)這個指標(biāo)也是很重要的,它反映的是應(yīng)用接口的整體響應(yīng)情況。
我們一般會將百分位數(shù)分為 TP50、TP90、TP95、TP99、TP99.9 等多個段,對高百分位的值要求越高,對系統(tǒng)響應(yīng)能力的穩(wěn)定性要求越高。
并發(fā)量指的是系統(tǒng)能夠同時處理的請求數(shù)量,反映的是系統(tǒng)的負載能力。
我們在對高并發(fā)系統(tǒng)進行優(yōu)化的時候,往往也會在并發(fā)量上進行調(diào)優(yōu),調(diào)優(yōu)方式也是多種多樣的,目的就是提高系統(tǒng)同時處理請求的能力。
總體來說,并發(fā)量這個指標(biāo)理解起來還是比較簡單的,我就不做過多的描述了。
秒開率主要針對的是前端網(wǎng)頁或者移動端APP來說的,如果一個前端網(wǎng)頁或者APP能夠在1秒內(nèi)很平滑的打開,尤其是首頁的加載。此時,用戶就會感到前端網(wǎng)頁或者APP使用起來很順暢,如果超過3秒甚至更長的時間,用戶就有可能會直接退出前端網(wǎng)頁或者APP不再使用。
所以,在高并發(fā)場景下優(yōu)化程序,不只要對后端程序進行優(yōu)化,對于前端和APP也是要進行優(yōu)化的。
正確性說的是無論我們以何種方式,何種手段對應(yīng)用進行優(yōu)化,優(yōu)化后的交互數(shù)據(jù)結(jié)果必須是正確的。不能出現(xiàn)優(yōu)化前性能比較低,數(shù)據(jù)正確,而優(yōu)化后性能比較高,反而數(shù)據(jù)不正確的現(xiàn)象。
好了,今天就到這兒吧,我是冰河,我們下期見~~
本文轉(zhuǎn)載自微信公眾號「冰河技術(shù)」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系冰河技術(shù)公眾號。
當(dāng)前標(biāo)題:系統(tǒng)性能優(yōu)化的關(guān)鍵指標(biāo)(yyds)?。。?
本文網(wǎng)址:http://uogjgqi.cn/article/cceihcs.html

我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流