文章目錄
0 前言
具體的內容我還沒整理,可以參見本週週報的每日記錄 週報列表
一週之內要完成的任務。
1. 思路
1.1 理解需求:
- 什麼是HTTP壓測工具;
- 性能指標有哪些,要完成到哪個程度
1.2 基礎知識
- golang語言的基礎語法和使用;
- nginx的基礎性能指標;
1.3 樣例參考
- 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 |