性能面试2
1、常見的性能指標(biāo)有哪些?分別是什么含義?
tps:每秒事務(wù)量,代表了系統(tǒng)的處理能力,tps越高,性能越好
響應(yīng)時(shí)間:從發(fā)出請(qǐng)求到接受到系統(tǒng)響應(yīng)數(shù)據(jù)所花費(fèi)的時(shí)間,響應(yīng)時(shí)間越短,性能越好
吞吐量:網(wǎng)絡(luò)上行和下行流量的總和,吞吐量是網(wǎng)絡(luò)瓶頸定位的重要指標(biāo)
錯(cuò)誤率:在壓測(cè)過程中系統(tǒng)出現(xiàn)錯(cuò)誤的比例
2、什么是集合點(diǎn),什么場(chǎng)景下需要用集合點(diǎn)
集合點(diǎn)是測(cè)試腳本中的一個(gè)標(biāo)記,當(dāng)每個(gè)虛擬用戶執(zhí)行到標(biāo)記處時(shí),會(huì)停留在標(biāo)記處等待其他的虛擬用戶,當(dāng)達(dá)到預(yù)期設(shè)置的并發(fā)數(shù)時(shí),標(biāo)記處的所有用戶同時(shí)啟動(dòng)執(zhí)行后續(xù)的請(qǐng)求
集合點(diǎn)會(huì)產(chǎn)生瞬間高并發(fā),但是也會(huì)降低平均壓力。所以在壓測(cè)過程中,如果有要求瞬間高并發(fā)的業(yè)務(wù),就需要使用集合點(diǎn),比如搶購(gòu),秒殺之類的業(yè)務(wù)。
沒有類似業(yè)務(wù)則不需要加集合點(diǎn)
3、性能測(cè)試過程中,怎么判斷網(wǎng)絡(luò)瓶頸?
一般性能測(cè)試都是在局域網(wǎng)內(nèi)進(jìn)行,在壓測(cè)過程中,可以監(jiān)控到服務(wù)器上網(wǎng)卡的流量,判斷此流量是否已經(jīng)達(dá)到局域網(wǎng)內(nèi)網(wǎng)絡(luò)設(shè)備的上限,比如路由器、交換機(jī)、網(wǎng)卡等
在這些設(shè)備中,一般是服務(wù)器網(wǎng)卡網(wǎng)絡(luò)吞吐量最低。服務(wù)器的網(wǎng)卡大多是千兆網(wǎng)卡,換算成KB=1000/8=125MB
4、服務(wù)器的cpu使用率和load是什么關(guān)系?
通常情況下,cpu使用率和load值是正比關(guān)系,即cpu使用率越高,load值越高。但是在一些特殊情況下,也會(huì)出現(xiàn)cpu使用率不高,但是load值較高的情況
比如某系統(tǒng)只能使用CPU中的單核運(yùn)行,它可以占用單核cpu100%,但從整體cpu使用率來看,只是使用了一小部分。而隨著并發(fā)的增大,單核CPU的任務(wù)隊(duì)列會(huì)越來
越長(zhǎng),造成了load值較高
5、性能測(cè)試腳本中為什么要做參數(shù)化?
參數(shù)化把測(cè)試腳本中的請(qǐng)求數(shù)據(jù)動(dòng)態(tài)化,避免使用單一固定參數(shù)進(jìn)行壓測(cè)。這也是為了更加真實(shí)的模擬用戶的請(qǐng)求
6、Linux系統(tǒng)中的buffer和cache都起到什么作用。內(nèi)存占用有大量的buffer和cache是異常情況嗎?
buffer和cache都是Linux中的緩存機(jī)制,cache里一般會(huì)緩存一些文件的內(nèi)容,buffer會(huì)緩存一些需要寫入磁盤的數(shù)據(jù)。
Linux會(huì)利用空閑的內(nèi)存做一些緩存,加快文件的訪問速度。如果系統(tǒng)可用內(nèi)存不足時(shí),Linux會(huì)釋放掉buffer和cache所占用的內(nèi)存。
所以內(nèi)存占用中有大量的buffer和cache也是正?,F(xiàn)象
7、性能腳本中的亂碼問題怎么解決?
1、如果在腳本中不使用或不判斷亂碼部分的數(shù)據(jù),那可用忽略此問題,因?yàn)閬y碼并不影響性能
2、如果需要使用亂碼數(shù)據(jù),可以通過壓測(cè)工具提供的一些方法進(jìn)行編碼轉(zhuǎn)換(如LR的lr_convert_encoding_string函數(shù),Jmeter修改配置文件等方式)
8、在性能測(cè)試工具中,使用線程和進(jìn)程壓測(cè)有什么區(qū)別,Loadrunner和Jmeter分別使用什么進(jìn)行發(fā)壓?
Loadrunner同時(shí)支持進(jìn)程和線程發(fā)壓。當(dāng)選擇進(jìn)程時(shí),每個(gè)虛擬用戶單獨(dú)啟動(dòng)一個(gè)進(jìn)程,當(dāng)選擇線程時(shí),每50個(gè)線程啟動(dòng)一個(gè)進(jìn)程
Jmeter只支持線程發(fā)壓
進(jìn)程和線程的主要區(qū)別為,進(jìn)程之間是獨(dú)享內(nèi)存的,線程之間是共享內(nèi)存的。使用進(jìn)程壓測(cè)占用的資源會(huì)大一些。在高并發(fā)下,會(huì)減少壓測(cè)工具自身的異常情況
9、性能測(cè)試腳本中,定義事務(wù)的原則是什么?
在測(cè)試腳本中,事務(wù)定義的業(yè)務(wù)流程越短越好。同時(shí)腳本中不要寫過多復(fù)雜的邏輯,對(duì)于一個(gè)復(fù)雜的場(chǎng)景,可以考慮把腳本拆解成多個(gè)簡(jiǎn)單的腳本
總結(jié)
- 上一篇: 2.5数字传输系统
- 下一篇: InvokeHelper,让跨线程访问/