Difference between revisions of "Performance testing tools"
Jump to navigation
Jump to search
(Created page with "= Repositories = * [https://devops.com/infrastructure-validation-with-inspec/ inspect infrastructure] tool") |
|||
Line 1: | Line 1: | ||
= [https://github.com/tsenart/vegeta Vegeta] = | |||
Docker images | |||
* https://github.com/peter-evans/vegeta-docker | |||
* https://hub.docker.com/r/peterevans/vegeta | |||
Kubernetes deployment | |||
<syntaxhighlightjs lang="yaml"> | |||
kubectl apply -f <(cat <<EOF | |||
apiVersion: apps/v1 | |||
kind: Deployment | |||
metadata: | |||
name: vegeta | |||
labels: | |||
app: vegeta | |||
spec: | |||
replicas: 1 | |||
selector: | |||
matchLabels: | |||
app: vegeta | |||
template: | |||
metadata: | |||
labels: | |||
app: vegeta | |||
spec: | |||
containers: | |||
- name: vegeta | |||
image: peterevans/vegeta:6.9.1-vegeta12.8.4 | |||
args: | |||
- sh | |||
- -c | |||
- sleep 36000 # 3600 | |||
ports: | |||
- containerPort: 80 | |||
resources: | |||
limits: | |||
cpu: 4000m # '1' | |||
memory: 1Gi | |||
requests: | |||
cpu: 2000m # '1' | |||
memory: 1Gi | |||
nodeSelector: | |||
node.kubernetes.io/lifecycle: spot | |||
EOF | |||
) --dry-run=server | |||
</syntaxhighlightjs> | |||
Operations | |||
<source lang=bash> | |||
URL=http://example.com/healthcheck | |||
kubectl -n vegeta run vegeta --rm --attach --restart=Never --image="peterevans/vegeta" -- sh -c "echo 'GET $URL' | vegeta attack -rate=10 -duration=30s | tee results.bin | vegeta report" | |||
# On the pod/localsystem | |||
echo 'GET $URL' | vegeta attack -rate=10 -duration=30s | tee results.bin | vegeta report | |||
cat results.bin | vegeta plot > plot.html | |||
# On a laptop | |||
k cp vegeta/vegeta-5847d879d8-p9kqw:plot.html ./plot.html -c vegeta | |||
</source> | |||
= Repositories = | = Repositories = | ||
* [https://devops.com/infrastructure-validation-with-inspec/ inspect infrastructure] tool | * [https://devops.com/infrastructure-validation-with-inspec/ inspect infrastructure] tool |
Revision as of 14:55, 24 June 2021
Vegeta
Docker images
Kubernetes deployment
<syntaxhighlightjs lang="yaml">
kubectl apply -f <(cat <<EOF
apiVersion: apps/v1
kind: Deployment
metadata:
name: vegeta labels: app: vegeta
spec:
replicas: 1 selector: matchLabels: app: vegeta template: metadata: labels: app: vegeta spec: containers: - name: vegeta image: peterevans/vegeta:6.9.1-vegeta12.8.4 args: - sh - -c - sleep 36000 # 3600 ports: - containerPort: 80 resources: limits: cpu: 4000m # '1' memory: 1Gi requests: cpu: 2000m # '1' memory: 1Gi nodeSelector: node.kubernetes.io/lifecycle: spot
EOF ) --dry-run=server </syntaxhighlightjs>
Operations
URL=http://example.com/healthcheck kubectl -n vegeta run vegeta --rm --attach --restart=Never --image="peterevans/vegeta" -- sh -c "echo 'GET $URL' | vegeta attack -rate=10 -duration=30s | tee results.bin | vegeta report" # On the pod/localsystem echo 'GET $URL' | vegeta attack -rate=10 -duration=30s | tee results.bin | vegeta report cat results.bin | vegeta plot > plot.html # On a laptop k cp vegeta/vegeta-5847d879d8-p9kqw:plot.html ./plot.html -c vegeta