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