簡體   English   中英

我應該將任何內存選項傳遞給在 Kubernetes pod 上運行的有限制的 nodejs 應用程序嗎?

[英]Should I pass any memory options to nodejs application running on Kubernetes pod with limits?

我在 Kubernetes 上運行的 nodejs 應用程序有限制:

apiVersion: apps/v1
kind: Deployment
..
spec:
  ..
  template:
    ..
    spec:
      containers:
      - name: mynodejsapp
        ..
        resources:
          requests:
            memory: "1000Mi"
            cpu: "500m"
          limits:
            memory: "2000Mi"
            cpu: "1000m"
        ..

我的 nodejs 應用程序的 Dockerfile 基於node:10-slim

FROM node:10-slim
..    
COPY . .
RUN npm run build
EXPOSE 3000
ENTRYPOINT ["dumb-init", "--"]
CMD [ "node", "./build/index.js" ]

我發現應該設置--max_old_space_size一些較舊的帖子。 那是對的嗎? 還是 nodejs 進程會自動找到現有的內存限制?

使用 Nodejs 10 很糟糕,因為在 64 位操作系統上它可能會超過您的限制值。 Nodejs 12 應該沒問題,但是如果您想使用 CPU 活動來擴展 pod,設置最大舊內存是個好主意。 GC 將嘗試保持在此值以下(因此在您的 k8s 請求內存下)並且 CPU 活動將增長。 我在這里寫了一篇關於這個主題的帖子。

暫無
暫無

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

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