<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          轉(zhuǎn)轉(zhuǎn)基礎(chǔ)服務(wù)性能壓測實戰(zhàn)

          共 2724字,需瀏覽 6分鐘

           ·

          2021-08-05 10:02

          作者|楊立志

          壓測背景

          為了業(yè)務(wù)穩(wěn)定性、系統(tǒng)穩(wěn)定性、業(yè)務(wù)大促目標提供基礎(chǔ)保障。

          壓測方案

          1、壓測服務(wù)

          (1)確定壓測服務(wù):

          通過服務(wù)管理平臺監(jiān)控數(shù)據(jù)獲得,核心服務(wù)核心接口流量較高的top10接口。

          (2)確定壓測接口

          服務(wù)管理平臺中監(jiān)控獲得歷史大促時的QPS高峰數(shù)據(jù),響應(yīng)時間ms級別。

          緩存命中率RD給出大部分都是90%以上甚至99%。

          由于增加了新業(yè)務(wù),以及服務(wù)有一些優(yōu)化。大促預(yù)估單接口QPS在歷史壓測基礎(chǔ)上增加30%量。

          說明:QPS目標值必須大于等于歷史壓測結(jié)果。可以根據(jù)歷史大促增長量以及新業(yè)務(wù)的拓展進行評估。

          舉例:假如接口getProductBussinessById ,目標QPS15600,緩存命中率92%

          2、壓測工具

          jmeter 壓測平臺:是基于jmeter工具二次開發(fā)的壓測平臺。目前僅支持http協(xié)議。RPC接口可以通過腳本調(diào)用方式實現(xiàn)。

          3、壓測時間

          為防止影響線上用戶,壓測定于凌晨之后進行。

          4、壓測場景

          (1)壓測時長 每次并發(fā) 5分鐘。

          (2)數(shù)據(jù)參數(shù)化,根據(jù)緩存命中率 部分數(shù)據(jù)走緩存,部分數(shù)據(jù)直接走數(shù)據(jù)庫

          (3)單接口壓測。摸底接口是否達到目標并發(fā)量,混合場景不在本次壓測范圍。


          壓測腳本設(shè)計

          由于是scf協(xié)議,不能用jmeter壓測http方式進行壓測。所以本次采用腳本方式調(diào)用接口,然后通過jmeter加載腳本來進行測試。

          參數(shù)化數(shù)據(jù)分兩個文件,一個是緩存中已經(jīng)存在的數(shù)據(jù),一個是緩存中不存在的數(shù)據(jù)。

          另外說明一下:讀取文件不易過大,會降低性能。

          緩存文件:原來4MB分割為 2000個小文件。下圖為部分截圖

          非緩存文件同理。

          1、壓測腳本實例

          getProductBussinessById 接口腳本實例,其他接口同理。

          setupTest方法中是初始化數(shù)據(jù),半部分代碼截圖

          下面是jmeter執(zhí)行的并發(fā)方法。通過隨機數(shù)百分比占比來確定是否使用緩存數(shù)據(jù),還是非緩存數(shù)據(jù)。

          由于命中率92%,所以隨機數(shù)小于92的走緩存,大于92的數(shù)據(jù)走非緩存。

          下圖沒有加斷言,壓測結(jié)束后會通過命令行分析返回結(jié)果日志。

          2、jmeter配置

          說明:jmeter上傳下面各種配置比較復(fù)雜。壓測平臺后續(xù)版本會優(yōu)化此處,方便快捷操作。

          (1)上傳lib0

          lib0是你本機eclipse或者ideal 生成的腳本依賴的jar包以及用例jar包

          ideal為例子:腳本寫好后, 第一、點擊clean ,第二點擊package

          服務(wù)器進入 lib下,命令: cd /opt/soft/apache-jmeter/lib

           #上傳lib0   命令:rz -bey  

           解壓道lib文件夾下 此時生成了lib0文件夾  命令:unzip lib0.zip

          (2)上傳本地用例jar包

          進入 /opt/soft/apache-jmeter/lib/ext    命令:cd /opt/soft/apache-jmeter/lib/ext

          上傳用例jar包  命令:rz -bey   

            選擇工程生成的jarD:\mycode\zhuanzhuan_performance_zzsearch\target\jar\zhuanzhuan_performance_zzsearch-0.0.1-SNAPSHOT.jar

          (3)上傳scf.conf 以及參數(shù)化文件

          上傳配置scf.conf文件以及 參數(shù)化文件(若有參數(shù)化文件,路徑自己定義的路徑。一般我都放在/opt/soft/apache-jmeter/data)

          cd /opt/soft/apache-jmeter

          mkdir data

          cd data

          rz -bey  #上傳scf.conf 以及參數(shù)化數(shù)據(jù)文件 (代碼寫死的配置在哪路徑 就放在哪里路徑 我這只是個例子)

          注意:

          scf.conf存放路徑跟代碼中要一致

          比如代碼中scf.conf配置路徑是 /opt/soft/apache-jmeter/data/scf.config  那么 就上傳到服務(wù)器該配置的目錄下

          參數(shù)化所需要數(shù)據(jù) 同理

          (4)修改jmeter結(jié)果日志文件路徑

          cd /opt/soft/apache-jmeter/bin

          vi jmeter-server

          ${DIRNAME}/jmeter ${RMI_HOST_DEF} -Dserver_port=${SERVER_PORT:-1099} -s -j /opt/soft/apache-jmeter/jmeter-server.log "$@"

          3、執(zhí)行壓測

          執(zhí)行壓測不多說,每次并發(fā)5分鐘。

          需要注意的點是確定壓測基線,不能一上來就幾十、幾百個并發(fā)。

          并發(fā)過程中,關(guān)注監(jiān)控 以及系統(tǒng)資源的利用。

          若并發(fā)量大的情況,根據(jù)個人經(jīng)驗,并發(fā)過程中建議手動打開頁面查看真實響應(yīng)的用戶體驗。


          壓測結(jié)果

          監(jiān)控結(jié)果: 壓測結(jié)果符合要求

          日志分析:壓測日志數(shù)據(jù)由于服務(wù)器已經(jīng)歸還,下面是訂單列表jmeter壓測最終日志分析,可以通過命令行統(tǒng)計,實例如下:

          其中一臺jmeter日志分析:結(jié)果中沒有返回數(shù)據(jù)為288926 ,總數(shù)440365    沒有返回數(shù)據(jù)的結(jié)果約占 65% 。


          總結(jié)

          1、確定目標QPS

                QPS每秒查詢率(Query Per Second) 
             QPS:每秒請求數(shù),就是說服務(wù)器在一秒的時間內(nèi)處理了多少個請求

                TPS(Transactions Per Second)每秒事務(wù)數(shù),每秒系統(tǒng)能夠處理的事務(wù)次數(shù)

                TPS可能包含多個QPS

          2、壓測前需要和RD確認, 所調(diào)服務(wù)流量限制,以及白名單等

          3、壓測代理機器,沙箱機器盡量多申請幾臺,并發(fā)測試一臺壓測機器可能并發(fā)不上去。

          4、本次壓測只是單接口摸底測試。并沒有混合接口測試。若業(yè)務(wù)需要可以進行混合接口壓測,比較真實。

          5、由于被壓測接口為內(nèi)部調(diào)用的接口,外部訪問不到。所以壓測的時候需要在沙箱機器上進行。

          6、梳理壓測數(shù)據(jù),壓測方案,確定壓測場景。


          end



          瀏覽 46
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  操操逼片淫秽操逼片 | 91日本在线 | 久久夜色精品国产欧美乱极品 | 三级片影音先锋 | 午夜性爱福利 |