簡體   English   中英

為什么我有這么多重復的進程?

[英]Why do I have so many duplicated processes?

我強調我的 kubernetes API 並且我發現每個請求都在工作節點內創建一個進程。

部署 YAML

apiVersion: apps/v1
kind: Deployment
metadata:
  name: ${KUBE_APP_NAME}-deployment
  namespace: ${KUBE_NAMESPACE}
  labels:
    app_version: ${KUBE_APP_VERSION}
spec:
  replicas: 2
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 1
  selector:
    matchLabels:
      app_name: ${KUBE_APP_NAME}
  template:
    metadata:
      labels:
        app_name: ${KUBE_APP_NAME}
    spec:
      containers:
        - name: ${KUBE_APP_NAME}
          image: XXX:${KUBE_APP_VERSION}
          imagePullPolicy: Always
          env:
            - name: MONGODB_URI
              valueFrom:
                secretKeyRef:
                  name: mongodb
                  key: uri
            - name: JWT_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: jwt
                  key: password
          ports:
            - containerPort: 80
          resources:
            requests:
              memory: "64Mi"
              cpu: "250m"
            limits:
              memory: "128Mi"
              cpu: "500m"
      imagePullSecrets:
        - name: regcred

Apache Bench used ab -p payload.json -T application/json -c 10 -n 2000

為什么是這樣?

htop 截圖

如果請求保持開放是正常的,那么很難回答您的問題。 我們不知道您的payload到底是什么以及它有多大。 我們也不知道您使用的圖像是否正確處理這些圖像。

您應該使用 verbose=2 ab -v2 <host>並檢查它花了這么長時間。

您正在使用帶有-c 10 -n 2000選項的 Apache 工作台,這意味着:

  • -c 一次10並發連接,
  • -n 2000請求總數

您可以使用 -k 來啟用 HTTP KeepAlive

-k

啟用 HTTP KeepAlive 功能,在一個 HTTP session 內執行多個請求。 默認為無 KeepAlive。

如果您提供使用ab的 output 會更容易。

至於 Kubernetes 部分。

我們可以在查看 Pods and Nodes中閱讀可用的pod定義:

Pod 是一個 Kubernetes 抽象,代表一組一個或多個應用程序容器(例如 Docker 或 rkt),以及這些容器的一些共享資源...... Pod 中的容器共享一個 ZA12A3079E14CED426E695 和端口- 定位和共同安排,並在同一節點上的共享上下文中運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM