Skip to content

Commit

Permalink
Added a simple scale test for L4 ILB
Browse files Browse the repository at this point in the history
Made deployment creations to be parallel phases of the same step.
Added selector to WaitForControlledPodsRunning measurement.
Added separate measurement foreach ILB svc latency
  • Loading branch information
prameshj committed Aug 14, 2019
1 parent 91fddf7 commit b3f93ad
Show file tree
Hide file tree
Showing 3 changed files with 190 additions and 0 deletions.
153 changes: 153 additions & 0 deletions clusterloader2/testing/l4ilb/config.yaml
@@ -0,0 +1,153 @@
#Constants
{{$LARGE_BACKEND_SIZE := 5}}
{{$MEDIUM_BACKEND_SIZE := 3}}
{{$SMALL_BACKEND_SIZE := 1}}
{{$LARGE_BACKEND_LABEL := "ilblarge"}}
{{$MEDIUM_BACKEND_LABEL := "ilbmedium"}}
{{$SMALL_BACKEND_LABEL := "ilbsmall"}}
# adding a fixed value for first version of the test, rate of pod creation not a concern yet.
{{$ilbQPS := 500}}
{{$namespaces := 1}}
#Test
name: ilbload
automanagedNamespaces: {{$namespaces}}
tuningSets:
- name: ILBConstantQPS
qpsLoad:
averageQps: {{$ilbQPS}}
steps:
# Create ILBs
- measurements:
- Identifier: ServiceCreationLatencyLarge
Method: ServiceCreationLatency
Params:
action: start
labelSelector: size = {{$LARGE_BACKEND_LABEL}}
- Identifier: ServiceCreationLatencyMedium
Method: ServiceCreationLatency
Params:
action: start
labelSelector: size = {{$MEDIUM_BACKEND_LABEL}}
- Identifier: ServiceCreationLatencySmall
Method: ServiceCreationLatency
Params:
action: start
labelSelector: size = {{$SMALL_BACKEND_LABEL}}
- Identifier: WaitForRunningDeployments
Method: WaitForControlledPodsRunning
Params:
action: start
apiVersion: apps/v1
kind: Deployment
labelSelector: group = ilbload
operationTimeout: 15m
- name: Creating ILBs
phases:
- namespaceRange:
min: 1
max: {{$namespaces}}
replicasPerNamespace: 1
tuningSet: ILBConstantQPS
objectBundle:
- basename: large-backends-dep
objectTemplatePath: dep.yaml
templateFillMap:
NumReplicas: {{$LARGE_BACKEND_SIZE}}
- basename: large-backends-service
objectTemplatePath: service.yaml
templateFillMap:
DeploymentBaseName: large-backends-dep
ILBSizeLabel: {{$LARGE_BACKEND_LABEL}}
- namespaceRange:
min: 1
max: {{$namespaces}}
replicasPerNamespace: 1
tuningSet: ILBConstantQPS
objectBundle:
- basename: medium-backends-dep
objectTemplatePath: dep.yaml
templateFillMap:
NumReplicas: {{$MEDIUM_BACKEND_SIZE}}
- basename: medium-backends-service
objectTemplatePath: service.yaml
templateFillMap:
DeploymentBaseName: medium-backends-dep
ILBSizeLabel: {{$MEDIUM_BACKEND_LABEL}}
- namespaceRange:
min: 1
max: {{$namespaces}}
replicasPerNamespace: 1
tuningSet: ILBConstantQPS
objectBundle:
- basename: small-backends-dep
objectTemplatePath: dep.yaml
templateFillMap:
NumReplicas: {{$SMALL_BACKEND_SIZE}}
- basename: small-backends-service
objectTemplatePath: service.yaml
templateFillMap:
DeploymentBaseName: small-backends-dep
ILBSizeLabel: {{$SMALL_BACKEND_LABEL}}
- measurements:
- Identifier: ServiceCreationLatencyLarge
Method: ServiceCreationLatency
Params:
action: waitForReady
- Identifier: ServiceCreationLatencyMedium
Method: ServiceCreationLatency
Params:
action: waitForReady
- Identifier: ServiceCreationLatencySmall
Method: ServiceCreationLatency
Params:
action: waitForReady
- Identifier: WaitForRunningDeployments
Method: WaitForControlledPodsRunning
Params:
action: gather
# Delete ILBs
- name: Deleting ILBs
phases:
- namespaceRange:
min: 1
max: {{$namespaces}}
replicasPerNamespace: 0
tuningSet: ILBConstantQPS
objectBundle:
- basename: large-backends-service
objectTemplatePath: service.yaml
- basename: large-backends-dep
objectTemplatePath: dep.yaml
- namespaceRange:
min: 1
max: {{$namespaces}}
replicasPerNamespace: 0
tuningSet: ILBConstantQPS
objectBundle:
- basename: medium-backends-service
objectTemplatePath: service.yaml
- basename: medium-backends-dep
objectTemplatePath: dep.yaml
- namespaceRange:
min: 1
max: {{$namespaces}}
replicasPerNamespace: 0
tuningSet: ILBConstantQPS
objectBundle:
- basename: small-backends-service
objectTemplatePath: service.yaml
- basename: small-backends-dep
objectTemplatePath: dep.yaml
- measurements:
- Identifier: ServiceCreationLatencyLarge
Method: ServiceCreationLatency
Params:
action: gather
- Identifier: ServiceCreationLatencyMedium
Method: ServiceCreationLatency
Params:
action: gather
- Identifier: ServiceCreationLatencySmall
Method: ServiceCreationLatency
Params:
action: gather
22 changes: 22 additions & 0 deletions clusterloader2/testing/l4ilb/dep.yaml
@@ -0,0 +1,22 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{.Name}}
labels:
group: ilbload
spec:
replicas: {{.NumReplicas}}
selector:
matchLabels:
name: {{.Name}}
template:
metadata:
labels:
group: ilbload
name: {{.Name}}
spec:
containers:
- name: {{.Name}}
image: nginx
ports:
- containerPort: 8080
15 changes: 15 additions & 0 deletions clusterloader2/testing/l4ilb/service.yaml
@@ -0,0 +1,15 @@
apiVersion: v1
kind: Service
metadata:
name: {{.Name}}
labels:
size: {{.ILBSizeLabel}}
annotations:
cloud.google.com/load-balancer-type: "Internal"
spec:
type: LoadBalancer
selector:
name: {{.DeploymentBaseName}}-{{.Index}}
ports:
- port: 8080
targetPort: 80

0 comments on commit b3f93ad

Please sign in to comment.