Golang實現的高性能HTTP負載工具

Sniper

Sniper是一個功能強大、高性能的HTTP負載工具,採用Golang編寫。利用協程併發優點,實現海量併發、超低內存佔用、豐富圖表展現。是測試、分析、優化服務端性能的絕佳助手!html

##體驗 提供如下可執行文件,可直接運行html5

##功能 以實用爲原則,實現如下功能linux

  • GET / POST
  • keep-alive模式
  • https
  • 圖表展現結果
  • 測試多個目標
  • 支持大文件負載
  • 跨平臺,支持Linux,FreeBSD,Darwin

###對比同類工具 Alt textgit

##性能程序員

  • 內存佔用低於Apache Benchmark(ab)等主流負載工具
  • 執行速度接近ab,高併發時超過ab
  • 支持10k以上併發
  • 支持超大文件測試

Alt text

測試的詳細狀況,與各大負載測試工具的性能對比在此github

##圖表展現golang

  • 統計分析每一個請求
  • 輸出創建鏈接時間
  • 輸出服務端響應時間
  • 輸出總時間

基於dygraphs與html5,詳細展示服務端性能狀況web

從測試結果中等距採樣約1000樣本,詳細展示鏈接創建,鏈路傳輸和服務端執行狀況apache

下圖展現了總時間和鏈接創建時間的對比,Golang是怎樣獲得鏈接創建的時間呢?編程

原來項目基於net庫實現了HTTP協議棧,重構而不是官方net/http庫纔拿到詳細的信息,

提高了性能。

Alt text

##使用說明 ###1. 安裝Golang

請參考astaxie的開源Golang書籍《Go Web 編程》一書,Go安裝一節。

###2. 安裝Sniper

$ go get github.com/lubia/sniper
$ go install github.com/lubia/sniper
$ cp src/github.com/lubia/sniper/.sniperc ~

###3.使用手冊

請參見項目主頁:Sniper

##關於

做者:Lubia Yang,程序員

博客:程式設計

Licence:Apache License, Version 2.0.

相關文章
相關標籤/搜索