Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
gitpod-io
GitHub Repository: gitpod-io/gitpod
Path: blob/main/dev/loadgen/configs/prod-benchmark.yaml
2497 views
1
## start with
2
## loadgen benchmark prod-benchmark.yaml
3
4
workspaces: 100
5
ideImage: eu.gcr.io/gitpod-core-dev/build/ide/code:commit-ff263e14024f00d0ed78386b4417dfa6bcd4ae2f
6
# wait 30s longer than the CPU and memory timeouts
7
waitForRunning: "630s"
8
# wait 30s longer than the CPU and memory timeouts
9
waitForStopping: "630s"
10
successRate: 1
11
environment:
12
- name: "THEIA_SUPERVISOR_TOKENS"
13
value: '[{"token":"foobar","host":"gitpod-staging.com","scope":["function:getWorkspace","function:getLoggedInUser","function:getWorkspaceOwner","function:getWorkspaceUsers","function:isWorkspaceOwner","function:controlAdmission","function:setWorkspaceTimeout","function:getWorkspaceTimeout","function:sendHeartBeat","function:getOpenPorts","function:openPort","function:closePort","function:generateNewGitpodToken","function:takeSnapshot","function:stopWorkspace","resource:workspace::fa498dcc-0a84-448f-9666-79f297ad821a::get/update","resource:workspaceInstance::e0a17083-6a78-441a-9b97-ef90d6aff463::get/update/delete","resource:snapshot::*::create/get","resource:gitpodToken::*::create","resource:userStorage::*::create/get/update"],"expiryDate":"2020-12-01T07:55:12.501Z","reuse":2}]'
14
workspaceClass: "g1-standard"
15
workspaceTimeout: 1h
16
featureFlags:
17
# https://github.com/gitpod-io/gitpod/blob/df3e15a1d401f525766db1ee5b22203562fe915a/components/ws-manager-api/core.proto#L641
18
# from core.proto: WORKSPACE_CONNECTION_LIMITING = 10;
19
- 10
20
repos:
21
- cloneURL: https://github.com/gitpod-io/workspace-stress
22
cloneTarget: main
23
score: 20
24
workspaceImage: registry.hub.docker.com/gitpod/workspace-full:latest
25
environment:
26
# cpu
27
- name: "CPU_COUNT" # start N workers
28
value: "3"
29
- name: "CPU_BACKOFF" # wait N microseconds between the start of each stress worker process
30
value: "10000000"
31
- name: "CPU_TIMEOUT" # stop cpu stress test after N seconds
32
value: "600s"
33
# common IO
34
- name: "DISK_IO_FILE_SIZE" # how big of a test-file should be used
35
value: "2g"
36
- name: "DISK_IO_TOTAL" # specifies how much I/O will be done
37
value: "100g"
38
- name: "DISK_IO_TIMEOUT" # stop io stress test after N seconds
39
value: "600"
40
# random read/write IO
41
# - name: DISK_IO_MODE # values can be read, write, rw, randreadm randwrite, randrw
42
# value: "randrw"
43
# - name: "DISK_IO_BLOCKSIZE" # specifies the block-size that will be used
44
# value: "8k"
45
# - name: "DISK_IO_FSYNC" # sync command which writes kernel cached pages to disk every number of blocks specified
46
# value: 1000
47
# - name: "DISK_IO_DEPTH" # specifies number of I/O units to keep in-flight
48
# value: 10
49
# - name: "DISK_IO_JOBS" # specifies the number of jobs
50
# value: 20
51
# sequential read/write IO
52
- name: DISK_IO_MODE # values can be read, write, rw, randreadm randwrite, randrw
53
value: "rw"
54
- name: "DISK_IO_BLOCKSIZE" # specifies the block-size that will be used
55
value: "1024k"
56
- name: "DISK_IO_FSYNC" # sync command which writes kernel cached pages to disk every number of blocks specified
57
value: 10000
58
- name: "DISK_IO_DEPTH" # specifies number of I/O units to keep in-flight
59
value: 32
60
- name: "DISK_IO_JOBS" # specifies the number of jobs
61
value: 1
62
# memory
63
- name: "MEMORY_BYTES" # systems if not enough physical memory and swap is not available
64
value: "6G"
65
- name: "MEMORY_TIMEOUT" # stop cpu stress test after N seconds
66
value: "600s"
67
# backup
68
- name: "BACKUP_SIZE" # size of the backup in gigabyte
69
value: 12
70
# network
71
- name: "NETWORK_WORKERS" # number of workers stressin
72
value: 1
73
# tasks
74
- name: "GITPOD_TASKS"
75
value: "[{\"name\":\"Setup\",\"init\":\"sudo install-packages stress-ng fio && gp sync-done setup\"},{\"name\":\"start cpu stress\",\"init\":\"gp sync-await setup\",\"command\":\"stress-ng --cpu ${CPU_COUNT:-3} --backoff ${CPU_BACKOFF:-10000000} --timeout ${CPU_TIMEOUT:-600s}\"},{\"name\":\"start io stress\",\"init\":\"gp sync-await setup\",\"command\":\"fio --name io-stress --eta-newline=5s --filename=/workspace/gitpod.temp --rw=${DISK_IO_MODE} --size=${DISK_IO_FILE_SIZE:-2g} --io_size=${DISK_IO_TOTAL:-50g} --blocksize=${DISK_IO_BLOCKSIZE} --ioengine=libaio --fsync=${DISK_IO_FSYNC} --iodepth=${DISK_IO_DEPTH} --direct=1 --numjobs=${DISK_IO_JOBS} --runtime=${DISK_IO_TIMEOUT:-600}\"},{\"name\":\"start memory stress\",\"init\":\"gp sync-await setup\",\"command\":\"stress-ng --vm 1 --vm-keep --vm-bytes ${MEMORY_BYTES:-6G} --timeout ${MEMORY_TIMEOUT:-600s}\"},{\"name\":\"create backup file\",\"init\":\"gp sync-await setup\",\"command\":\"dd if=/dev/zero of=/workspace/benchmark-backup bs=1000M count=${BACKUP_SIZE:-2}\"},{\"name\":\"start network stress\",\"init\":\"gp sync-await setup\",\"command\":\"stress-ng --class network --all ${NETWORK_WORKERS:-4}\"}]"
76
- cloneURL: https://github.com/gitpod-samples/template-typescript-node
77
cloneTarget: master
78
score: 20
79
workspaceImage: registry.hub.docker.com/gitpod/workspace-full:latest
80
workspaceClass: "g1-large"
81
environment:
82
- name: "GITPOD_TASKS"
83
value: "[{\"name\":\"Open port 1\",\"command\":\"gp ports visibility 6879:private\"},{\"name\":\"Open port 2\",\"command\":\"gp ports visibility 7869:private\"}]"
84
- cloneURL: https://github.com/gitpod-samples/template-typescript-react
85
cloneTarget: main
86
score: 20
87
workspaceImage: registry.hub.docker.com/gitpod/workspace-full:latest
88
workspaceClass: "default"
89
environment:
90
- name: "GITPOD_TASKS"
91
value: "[{\"name\":\"Open port 1\",\"command\":\"gp ports visibility 6879:private\"},{\"name\":\"Open port 2\",\"command\":\"gp ports visibility 7869:private\"}]"
92
- cloneURL: https://github.com/gitpod-samples/template-python-django
93
cloneTarget: main
94
score: 20
95
workspaceImage: registry.hub.docker.com/gitpod/workspace-full:latest
96
workspaceClass: "gitpodio-internal-xl"
97
environment:
98
- name: "GITPOD_TASKS"
99
value: "[{\"name\":\"Open port 1\",\"command\":\"gp ports visibility 6879:private\"},{\"name\":\"Open port 2\",\"command\":\"gp ports visibility 7869:private\"}]"
100
- cloneURL: https://github.com/gitpod-io/non-gitpodified-repo
101
score: 20
102
cloneTarget: main
103
workspaceImage: registry.hub.docker.com/gitpod/workspace-full:latest
104
environment:
105
- name: "GITPOD_TASKS"
106
value: "[{\"name\":\"Open port 1\",\"command\":\"gp ports visibility 6879:private\"},{\"name\":\"Open port 2\",\"command\":\"gp ports visibility 7869:private\"}]"
107
108