當(dāng)前位置:澤眾軟件測試網(wǎng)- 技術(shù)文章 -正文

高并發(fā)系統(tǒng)性能測試之性能調(diào)優(yōu)和優(yōu)化策略

發(fā)布時(shí)間:2020-07-23

高并發(fā)系統(tǒng)的優(yōu)化一直以來都是一個(gè)很重要的問題,今天小編和大家聊聊高并發(fā)系統(tǒng)的一些性能調(diào)優(yōu)和優(yōu)化策略。

并發(fā)測試

系統(tǒng)性能的關(guān)鍵指標(biāo)

吞吐量(Throughput) 系統(tǒng)單位時(shí)間內(nèi)處理任務(wù)的數(shù)量;

延遲(Latency) 系統(tǒng)對單個(gè)任務(wù)的平均響應(yīng)時(shí)間;

一般來說,考量一個(gè)系統(tǒng)的性能主要看這兩個(gè)指標(biāo)。而這兩個(gè)指標(biāo)之間又存在著一些聯(lián)系:對于指定的系統(tǒng)來說,系統(tǒng)的吞吐量越大,處理的請求越多,服務(wù)器就越繁忙,響應(yīng)速度就會(huì)慢下來;而延遲越低的系統(tǒng),能夠承載的吞吐量也相應(yīng)的更高一些。

一方面,我們需要提高系統(tǒng)的吞吐量,以便服務(wù)更多的用戶,另一方面我們需要將延遲控制在合理的范圍內(nèi),以保證服務(wù)質(zhì)量。

系統(tǒng)性能測試

業(yè)務(wù)場景

對于不同的業(yè)務(wù)系統(tǒng),可以接受的延遲(Latency)也有所不同,例如郵件服務(wù)可以忍受的延遲顯然要比Web服務(wù)高得多,所以首先我們需要根據(jù)業(yè)務(wù)場景的不同來定義理想的Latency值。

測試工具

我們需要一個(gè)能夠制造高吞吐的工具來測試系統(tǒng)的性能,PerformanceRunner是國內(nèi)領(lǐng)先的支持http、https、websocket、tcp/ip、MQ等各種協(xié)議、10萬+海量并發(fā)、精準(zhǔn)可靠的性能測試工具,極大地降低了應(yīng)用系統(tǒng)運(yùn)行風(fēng)險(xiǎn)。

測試流程

測試的過程中需要不斷加大吞吐量,同時(shí)注意觀察服務(wù)端的負(fù)載,如果負(fù)載沒有問題,那就觀察延遲。一般這個(gè)過程需要反復(fù)很多次才能測出系統(tǒng)的極限值,而每次測試消耗的時(shí)間也比較長,需要耐心一些。

通用的系統(tǒng)參數(shù)調(diào)優(yōu)

Linux內(nèi)核默認(rèn)的參數(shù)考慮的是最通用的場景,不能夠滿足高并發(fā)系統(tǒng)的需求。

內(nèi)存:對于單個(gè)Socket連接來說消耗內(nèi)存不多,但是幾萬甚至幾十萬個(gè)連接疊加起來就非??捎^了,配置不當(dāng)會(huì)導(dǎo)致壓測端內(nèi)存成為瓶頸。

網(wǎng)絡(luò):有時(shí)候?yàn)榱吮苊饩W(wǎng)絡(luò)擁塞,需要限制壓測客戶機(jī)的帶寬,使流量以比較平滑的速率發(fā)送和接收。

定位系統(tǒng)性能瓶頸:當(dāng)系統(tǒng)吞吐和延遲上不去時(shí),首先需要定位問題,而不是急于修改代碼。常見的性能瓶頸包括CPU/內(nèi)存/磁盤IO/網(wǎng)絡(luò)帶寬等,其中每一項(xiàng)都有一到多個(gè)簡單實(shí)用的工具: 對于CPU和內(nèi)存,我們只要使用top就可以了;對于磁盤IO,可以用iotop或iostat;對于網(wǎng)絡(luò)帶寬,可以使用iftop。

如果依然沒能定位到問題,可能系統(tǒng)配置不當(dāng),參考通用的系統(tǒng)參數(shù)調(diào)優(yōu)。最后檢查代碼是否有單點(diǎn)瓶頸,例如程序被阻塞了:在筆者實(shí)測過程中,發(fā)現(xiàn)每個(gè)用戶創(chuàng)建會(huì)話進(jìn)程都需要對同一個(gè)supervisor發(fā)起同步請求,同時(shí)登錄的用戶數(shù)量很大時(shí),這些同步請求會(huì)排隊(duì),甚至引發(fā)超時(shí)。

以上就是小編收集的做壓力測試時(shí)遇到的一些問題以及應(yīng)對辦法,鑒于筆者水平有限,錯(cuò)漏難免。

更多并發(fā)測試推薦閱讀:

如何開展數(shù)據(jù)庫系統(tǒng)的性能需求分析?如何制定數(shù)據(jù)庫能力評(píng)估模型?

帶您理解解負(fù)載測試怎么做及負(fù)載測試工具

如何做接口壓力測試?壓力測試報(bào)告應(yīng)該包含哪些結(jié)果?

全鏈路性能需求分析的要點(diǎn)是什么?和傳統(tǒng)線下性能測試有什么區(qū)別

軟件測試中服務(wù)器穩(wěn)定性測試方法有哪些?

性能測試和并發(fā)壓力的關(guān)系 性能測試中怎么設(shè)置并發(fā)數(shù)?

如何進(jìn)行壓力測試和并發(fā)測試?性能測試工具PR使用特點(diǎn)介紹

本文內(nèi)容不用于商業(yè)目的,如涉及知識(shí)產(chǎn)權(quán)問題,請權(quán)利人聯(lián)系SPASVO小編(021-60725088-8054),我們將立即處理,馬上刪除。
滬ICP備07036474號(hào) 2003-2024 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd.
微信
咨詢

添加客服微信 歡迎咨詢測試工具和測試服務(wù)

微信客服
問題
反饋
產(chǎn)品
畫冊

掃描二維碼下載澤眾軟件企業(yè)宣傳冊

產(chǎn)品畫冊
返回
頂部

方案咨詢

×
提交信息

電話咨詢,400-035-7887,安排專業(yè)技術(shù)售前給您解答(產(chǎn)品試用、技術(shù)交流、服務(wù)咨詢和商務(wù)報(bào)價(jià))。

您的信息已成功提交!

我們的客服人員稍后會(huì)與您聯(lián)系