Golang實現的高性能HTTP負載工具
Sniper
Sniper是一個功能強大、高性能的HTTP負載工具,采用Golang編寫。利用協程并發優勢,實現海量并發、超低內存占用、豐富圖表展示。是測試、分析、優化服務端性能的絕佳助手!
體驗
提供以下可執行文件,可直接運行
功能
以實用為原則,實現以下功能
- GET / POST
- keep-alive模式
- https
- 圖表展示結果
- 測試多個目標
- 支持大文件負載
- 跨平臺,支持Linux,FreeBSD,Darwin
對比同類工具
性能
- 內存占用低于Apache Benchmark(ab)等主流負載工具
- 執行速度接近ab,高并發時超過ab
- 支持10k以上并發
- 支持超大文件測試
測試的詳細情況,與各大負載測試工具的性能對比在此
圖表展示
- 統計分析每個請求
- 輸出建立連接時間
- 輸出服務端響應時間
- 輸出總時間
基于dygraphs與html5,詳細展現服務端性能情況
從測試結果中等距采樣約1000樣本,詳細展現連接建立,鏈路傳輸和服務端執行情況
下圖展示了總時間和連接建立時間的對比,Golang是怎樣得到連接建立的時間呢?
原來項目基于net庫實現了HTTP協議棧,重構而不是官方net/http庫才拿到詳細的信息,
提升了性能。
使用說明
1. 安裝Golang
請參考astaxie的開源Golang書籍《Go Web 編程》一書,Go安裝一節。
2. 安裝Sniper
1 |
$ go get github.com/lubia/sniper |
2 |
$ go install github.com/lubia/sniper |
3 |
$ cp src/github.com/lubia/sniper/.sniperc ~ |
3.使用手冊
請參見項目主頁:Sniper
關于
作者:Lubia Yang,程序員
博客:程式設計
Licence:Apache License, Version 2.0.
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!