【小实验】使用 wrk 的 docker 容器来压测另一个容器

发布时间 2023-06-01 18:00:17作者: ahfuzhang

作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!


想压测容器环境的服务性能,发现两个麻烦:

  • 本地使用 wrk,由于本地网络和容器服务器很远,压测效果不好;
  • wrk 找不到一个独立的二进制版本可以下载;go-wrk 完全不可用。

然后发现 hub.docker.com 上有 wrk 的镜像。
于是用下面的方法启动容器进行压测:
pod_wrk.yaml

apiVersion: v1
kind: Pod
metadata:
  name: wrk
  labels:
    app.kubernetes.io/name: proxy
spec:
  containers:
  - name: wrk
    image: williamyeh/wrk:4.0.2   # hub.docker.com 上的镜像
    command: ["/usr/local/bin/wrk"]
    args: ["-t10","-c600","-d120s","--latency","-H","X-Forwarded-proto: http","-H","X-Forwarded-For: 220. xxx.1.xxx,xxxx","-H","Host: 1.a.com","http://xx.xxx.0.71:32101/abc?size=10"]
    resources:
      requests:
        memory: "512Mi"
        cpu: "2"
      limits:
        memory: "2048Mi"
        cpu: "2"

然后用下面的方法启动容器:

kubectl apply -f stress_test/pod_wrk.yaml --namespace=my-test-devops

压测时间是 120 秒,过后容器会再次启动。不需要压测的时候可以这样删除:

kubectl delete pods wrk --namespace=my-test-devops

Have fun. ?