Go語言實現HTTP壓測工具(1)——前期準備

0 前言

具體的內容我還沒整理,可以參見本週週報的每日記錄 週報列表

一週之內要完成的任務。
在這裏插入圖片描述

1. 思路

1.1 理解需求:
  1. 什麼是HTTP壓測工具;
  2. 性能指標有哪些,要完成到哪個程度
1.2 基礎知識
  1. golang語言的基礎語法和使用;
  2. nginx的基礎性能指標;
1.3 樣例參考
  1. C語言開發的ApacheBench工具
1.4 開發
1.5 調試

2. 前期準備

2.1 HTTP壓力測試是什麼,ApacehBench又是什麼

參考來源:
(總結)Web性能壓力測試工具之ApacheBench(ab)詳解
超實用壓力測試工具-ab工具
http性能測試點滴

有一些需要區分的地方

-n = 1000	//總請求數
-c = 100	// 併發數

Time per request: 604.585 [ms] (mean)	// tpr1
Time per request: 6.444 [ms] (mean, across all concurrent requests)	// tpr2

這是啥意思呢,舉個可能不太恰當的栗子

  • 併發數=100,你同時在和100個人聊天;
  • 總請求數,你要和這100個人,完成1000句聊天;

隨之而來的是時間概念也類比一下

  • 前面一個tpr1,就是指和你聊天的這100個人,每個人等你回一條消息的等待時間;
  • 後一個tpr2,是指你接收這100個人發的所有消息,處理一條消息所需要的時間;

這也可以看出來,tpr1 = tpr2*c
可以這麼理解,你回一條消息需要6毫秒,可是同時有100條消息進來(100個人每人一條),那你處理完不就是600ms,她們100個妹子就等了600ms啊(這手速可以)。

那麼,我們重點關注的吞吐率,RPS,又是用哪個時間呢?正經的說法是每秒返回的HTTP連接數,也就是每秒響應的request。按照我舉的例子來看,就是你一秒可以處理多少條聊天消息,再通俗一點,就和上面的tpr2成反比。這個想一下應該好理解吧,我發一條消息需要0.1s(tpr2),那我一秒不就可以發10條消息(RPS)。

2.2 Nginx是什麼,如何壓測

參考來源
Nginx可以做什麼?看完這篇你就懂了
Nginx系列(一)–nginx是什麼?
使用ab對nginx進行壓力測試

3. 基礎學習

3.1 Golang語言

參考資料:
《Go語言入門經典》,[英]喬治·奧爾波
Go 入門指南 - GitHub
Go 語言結構 & 基礎語法-知乎

4. 環境安裝

The Go Programming Language - Getting Started
Windows 平臺下 LiteIDE 的安裝和使用

本來打算在LInux環境下搞這個的,沒辦法,電腦又老又破,Windows卡。。。雖然裝了雙系統,好久沒用過Linux,今天打開,弄半天弄不好環境,算了,世上無難事,只要肯放棄。

還是用Windows環境來搞了。

安裝好了語言環境,稍微看了一下,挑了 LiteIDE 工具,但是後來裝 MinGW 的時候一直報錯,谷歌了好久,仍未解決。

golang go1.11.10.windows-amd64.msi
liteIDE LiteIDE X-HOME
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章