iT邦幫忙

2024 iThome 鐵人賽

DAY 26
1
DevOps

就是工商,為什麼要使用付費版 GitLab?系列 第 26

Day 26:測試你的 GitLab 效能 Part2 - 執行效能測試!

  • 分享至 

  • xImage
  •  

昨天我們在 GitLab 上產出了足夠的假資料了,今天就正式進入 GitLab Performance Tool,用它來測試我們的 GitLab Server 效能。

  1. 延續昨天,首先我們要準備另一個 .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
     }
    

    如果不知道要怎麼設定,那原廠也已經準備好了數個情境,你可以直接拿來使用。

  2. 再次拿出昨天我們為了執行 GPT Data Generator 所準備的資料夾與檔案,但要增加更多資料夾。

    - gpt #資料夾
      |_ config #資料夾
      |  |_ environments #資料夾
      |  |   |_ 昨天的.json
      |  |_ options #資料夾
      |     |_ 今天新增 k6 的 .json
      |_ results #資料夾
    
  3. 執行測試
    再次感謝原廠,已經做好 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
    
  4. 等待測試執行完畢,因為測試的項目有點多,因此這個測試也是要跑一段時間,你可以再去喝第二杯咖啡再回來察看成果。

與昨天相同,放幾張擷圖讓大家感受一下。

開始執行測試,立刻就出現 K6 的圖案啦!然後就會一一執行測試。
https://ithelp.ithome.com.tw/upload/images/20241010/201209862J9wvyBNWg.png

每執行一段,就會有一些小結。
https://ithelp.ithome.com.tw/upload/images/20241010/2012098632NiJikMv6.png

總共跑了 2473 秒,大約 41 分鐘才跑完。
https://ithelp.ithome.com.tw/upload/images/20241010/20120986yo4aPZS2EI.png

最後也會有一個簡單的 Summary。
https://ithelp.ithome.com.tw/upload/images/20241010/20120986cnAAXiLJmx.png

會條列出每一項測試,哪一些有通過,哪些沒通過。
https://ithelp.ithome.com.tw/upload/images/20241010/20120986BSpYMAmo8O.png

測試過程與結果也會輸出為檔案,可供事後查閱。
https://ithelp.ithome.com.tw/upload/images/20241010/20120986tBB7j0fFAb.png

雖然今天介紹的 GitLab Performance Tool 背後也是使用 K6(看來 K6 真的是紅了),但 GitLab 原廠有再包了一層,要打哪些 API 與頁面都幫你規劃好了,因此可以很容易的拿來直接對自架的 GitLab Server 做 Load testing。(啊,如果你的 GitLab 是架設在雲端,要做測試前記得先通知一下你的雲端供應商,免得你被判定是在實施 DDoS 攻擊。)

這兩天介紹的 GPT Data GeneratorGitLab Performance Tool 都還有更多參數可以設定,像是你可以選擇用自己準備的 project 來取代原廠準備的 Large Project 當作假資料,也可以增加要測試的內容,因此在使用上還有更多的彈性與客製化空間,這些就留給大家自行研究了。

https://ithelp.ithome.com.tw/upload/images/20241010/20120986SSRkCKxkjA.png
圖片來源 - 吉卜力工作室 https://www.ghibli.jp/works/tanuki/#&gid=1&pid=3

參考資料


上一篇
Day 25:測試你的 GitLab 效能 Part1 - 先產生假資料吧!
下一篇
Day 27:測試你的 GitLab 效能 Part3 - GitLab Browser Performance Tool
系列文
就是工商,為什麼要使用付費版 GitLab?30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言