今天主要介紹一款高效的性能測試工具wrk。wrk的使用方式和apache bench這些工具也大體相似,通過命令行的方式即可發(fā)起。但是wrk比起apache bench更為高效,因?yàn)樗С侄嗑€程,更容易發(fā)揮多核CPU的能力,甚至可以壓滿CPU。wrk還支持Lua腳本來提供更多的參數(shù)定制、參數(shù)加密等需求,靈活度更高。
成都創(chuàng)新互聯(lián)公司為企業(yè)級客戶提高一站式互聯(lián)網(wǎng)+設(shè)計(jì)服務(wù),主要包括成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司、app軟件定制開發(fā)、成都微信小程序、宣傳片制作、LOGO設(shè)計(jì)等,幫助客戶快速提升營銷能力和企業(yè)形象,創(chuàng)新互聯(lián)各部門都有經(jīng)驗(yàn)豐富的經(jīng)驗(yàn),可以確保每一個(gè)作品的質(zhì)量和創(chuàng)作周期,同時(shí)每年都有很多新員工加入,為我們帶來大量新的創(chuàng)意。wrk支持大部分UNIX系統(tǒng),不支持windows系統(tǒng)。安裝過程比較簡單,從github克隆項(xiàng)目到本地,再在項(xiàng)目路徑下make即可,在此就不詳述,具體可查看github文檔。
以上命令行表示對本地80端口的index.html文件發(fā)起請求,壓測時(shí)間持續(xù)30秒,并發(fā)12線程,保持400個(gè)HTTP連接請求。
輸出結(jié)果:
Running 30s test @ http://127.0.0.1:80/index.html 12 threads and 400 connections Thread Stats Avg Stdev Max +/- Stdev Latency 90.43ms 201.95ms 1.99s 88.34% Req/Sec 1.79k 1.80k 21.57k 89.17% 577891 requests in 30.09s, 188.46MB read Socket errors: connect 0, read 0, write 0, timeout 37 Non-2xx or 3xx responses: 577891 Requests/sec: 19202.50 Transfer/sec: 6.26MB結(jié)果展示了本次壓測的請求平均延遲Latency、每秒每線程平均請求數(shù)Req/Sec、合計(jì)的每秒請求數(shù)Requests/sec和每秒吞吐量Transfer/sec等。這些數(shù)據(jù)即可反映出壓測服務(wù)器的大概響應(yīng)情況,以對服務(wù)器性能做初步判斷。
貼一下請求的命令參數(shù):
-c, --connections: total number of HTTP connections to keep open with each thread handling N = connections/threads -d, --duration: duration of the test, e.g. 2s, 2m, 2h -t, --threads: total number of threads to use -s, --script: LuaJIT script, see SCRIPTING -H, --header: HTTP header to add to request, e.g. "User-Agent: wrk" --latency: print detailed latency statistics --timeout: record a timeout if a response is not received within this amount of time.關(guān)于長連接和短連接:apache bench默認(rèn)短連接,wrk默認(rèn)長連接。wrk如需測試短連接,可添加 -H “Connection:Close” 來關(guān)閉長連接。
wrk不僅能發(fā)起對Get請求,也能通過Lua腳本發(fā)起Post請求。如編寫post.lua腳本:
wrk.method = "POST"wrk.headers["Content-Type"] = "application/x-www-form-urlencoded"wrk.body = "youbody&youset"
在腳本中定義了Post請求的headers和body。執(zhí)行wrk請求時(shí)加上—script指定該腳本:
wrk -t4 -c2000 -d60s -T5s --script=post.lua --latency http://127.0.0.1:80/user/login如此,便可輕松實(shí)現(xiàn)Post請求的壓測。
wrk作為一種高效的性能測試工具,可以作為一種常用手段對待測url發(fā)起請求。本文只是初步介紹了引用Lua腳本執(zhí)行Post請求,Lua腳本其實(shí)可以實(shí)現(xiàn)更為豐富的測試需求,下一次我們再詳細(xì)看下Lua腳本如何為wrk添翼。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。