vegeta是乙個用go語言編寫的多功能的http負載測試工具,提供命令列工具和開發包。安裝見vegeta 說明。
usage: vegeta [global flags] [command flags]
global flags:
-cpus int
使用cup的數量 (預設4 個)
-profile string
enable profiling of [cpu, heap]
-version
列印版本並退出
attack command:
-body string
請求的主體檔案
-cert string
tls客戶pem編碼的證書檔案
-connections int
沒個目標主機最大開啟閒置鏈結數 (預設10000)
-duration duration
持續攻擊時間 [0 = forever]
-header value
請求頭-insecure
忽略無效的伺服器tls證書
-keepalive
使用持久鏈結 (default
true)
-key string
tls客戶端pem編碼的私鑰檔案
-laddr value
本地ip位址 (default
0.0.0.0)
-lazy
延遲懶散的讀取目標
-output string
輸出檔案 (default
"stdout")
-rate uint
每秒請求數 (default
50) -redirects int
遵循重定向的次數.-1 不會遵循重定向但會標記為成功 (預設10)
-root-certs value
tls根證書檔案 (逗號分隔列表)
-targets string
目標檔案 (default
"stdin")
-timeout duration
請求超時時間 (default
30s)
-workers uint
初始化程序數 (default
10)report command:
-inputs string
輸入檔案 (comma separated) (default
"stdin")
-output string
輸出檔案 (default
"stdout")
-reporter string
表報字元格式 [text, json, plot, hist[buckets]] (default
"text")
text 文字格式
json json格式
plot 在 dygraphs 上生成乙個可以互動式的html5基礎頁面
hist 計算並列印乙個基於文字的直方圖
dump command:
-dumper string
dumper [json, csv] (default
"json") 指定轉儲格式
-inputs string
input files (comma separated) (default
"stdin") 指定轉儲含有統計結果的輸入檔案,多個逗號分隔
-output string
output file (default
"stdout") 指定把轉儲檔案寫入到輸出檔案
舉例: echo "get http://localhost/" | vegeta attack -duration=5s | tee results.bin | vegeta report
vegeta attack -targets=targets.txt > results.bin
vegeta report -inputs=results.bin -reporter=json > metrics.json
cat results.bin | vegeta report -reporter=plot > plot.html
cat results.bin | vegeta report -reporter="hist[0,100ms,200ms,300ms]"
注意
進行負載測試時,不能因為vegeta自身機器的效能瓶頸限制無法達到預期結果,例如開啟的檔案數、記憶體大小、cpu和網路頻寬,分布式的使用vegeta是非常好的解決方案。
命令
\n }\n}"
, "variables":,
"operationname":"jobinfolist"
}
結果pprof常用作cpu、記憶體分析,需要使用pprof的場景
下面這張圖是cpu profile,可以清楚看到程式執行時的呼叫狀態,主要分析各個方法的耗時。下圖有些部分是虛線,是因為耗時比較少的節點沒有在圖上體現出來,但要把圖連起來,有的地方就使用虛線了。
上面的圖在呼叫鏈比較簡單的情況下,會比較直觀,但在如此複雜的呼叫鏈下,確實看著有點亂,使用uber開源的火焰圖絕對讓你開啟新世界的大門。命令
火焰圖展示
總結
python程式效能分析
目錄 python m cprofile o output file s sort order m module myscript.py o將結果輸出到檔案而不是stdout s排序狀態,選擇那些引數排序,常用 tottime m作為乙個模組而不是指令碼,python3.7的cprofile中有,p...
Go程式效能分析pprof
參考 go語言的pprof是google c profiler的移植,所以用法也差不多。這裡簡要記錄步驟如下 1.import runtime pprof 引用pprof package os func main 2.執行 執行程式,生成profile檔案 3.分析 在命令列上執行 go tool ...
php程式效能分析工具
平常開發一些效率要求比較高的功能模組時,常常需要分析程式的執行瓶頸在哪。用下面這個工具可以很方便的檢視php的指令碼執行過程。下面是配置步驟 1.php安裝xdebug,網上很多教程,下面貼上php.ini中的配置項 xdebug zend extension usr local php54 lib...