昨天我們在 GitLab 上產出了足夠的假資料了,今天就正式進入 GitLab Performance Tool,用它來測試我們的 GitLab Server 效能。
延續昨天,首先我們要準備另一個 .json
,即是 K6 這個 Load testing 工具的 Config,用這個檔案控制你要測試多久、模擬多少 RPS(Requests Per Second),因此你可以根據你預期的 GitLab 使用者數量與使用量來調整這個檔案,來測試你的 GitLab Server 是否有辦法支撐。
下面這個檔案有幾個重點,首先是 stages
,它用來控制你要模擬多少位使用者,以及使用者會持續發出 Request 多久時間;以下面的範例即是,在最初的 5 秒增加到 10 位使用者,接著 10 秒繼續維持 10 位使用者,接著在 5 秒內減少至 5 位使用者,最後的 5 秒減少到 0 位使用者。
第二個重點是 rps
,就是控制每秒要發出多少 Requests。
{
"stages": [
{ "duration": "5s", "target": 10 },
{ "duration": "10s", "target": 10 },
{ "duration": "5s", "target": 5 },
{ "duration": "5s", "target": 0 }
],
"rps": 10,
"max_vus": 1000,
"batchPerHost": 0
}
如果不知道要怎麼設定,那原廠也已經準備好了數個情境,你可以直接拿來使用。
再次拿出昨天我們為了執行 GPT Data Generator
所準備的資料夾與檔案,但要增加更多資料夾。
- gpt #資料夾
|_ config #資料夾
| |_ environments #資料夾
| | |_ 昨天的.json
| |_ options #資料夾
| |_ 今天新增 k6 的 .json
|_ results #資料夾
執行測試
再次感謝原廠,已經做好 docker image 可以直接使用,因此你只要在有 docker 的環境執行下面的指令即可。
如下範例,記得要將你準備好的資料夾用 -v
同步給 container 使用。
docker run -it \
-e ACCESS_TOKEN=你的_Access_token \
-v /gpt/config:/config \
-v /gpt/results:/results \
gitlab/gitlab-performance-tool \
--environment 昨天的.json \
--options 今天新增k6的.json
等待測試執行完畢,因為測試的項目有點多,因此這個測試也是要跑一段時間,你可以再去喝第二杯咖啡再回來察看成果。
與昨天相同,放幾張擷圖讓大家感受一下。
開始執行測試,立刻就出現 K6 的圖案啦!然後就會一一執行測試。
每執行一段,就會有一些小結。
總共跑了 2473 秒,大約 41 分鐘才跑完。
最後也會有一個簡單的 Summary。
會條列出每一項測試,哪一些有通過,哪些沒通過。
測試過程與結果也會輸出為檔案,可供事後查閱。
雖然今天介紹的 GitLab Performance Tool
背後也是使用 K6(看來 K6 真的是紅了),但 GitLab 原廠有再包了一層,要打哪些 API 與頁面都幫你規劃好了,因此可以很容易的拿來直接對自架的 GitLab Server 做 Load testing。(啊,如果你的 GitLab 是架設在雲端,要做測試前記得先通知一下你的雲端供應商,免得你被判定是在實施 DDoS 攻擊。)
這兩天介紹的 GPT Data Generator
與 GitLab Performance Tool
都還有更多參數可以設定,像是你可以選擇用自己準備的 project 來取代原廠準備的 Large Project 當作假資料,也可以增加要測試的內容,因此在使用上還有更多的彈性與客製化空間,這些就留給大家自行研究了。
圖片來源 - 吉卜力工作室 https://www.ghibli.jp/works/tanuki/#&gid=1&pid=3