You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kubernetes中Next.js应用OOM引发Pod频繁重启问题求助

Kubernetes部署Next.js应用遭遇OOM内存泄漏问题排查求助

问题现象

  • 在Kubernetes环境部署Next.js应用时触发OOM,Pod内存持续线性增长,无法回落至初始水平,达到资源限制后被Kubernetes强制重启
  • 即使部署仅渲染随机文本、依赖极简的纯Next.js应用,仍出现相同内存泄漏现象

环境与配置信息

Dockerfile配置

ARG NODE=node:16.15.0-alpine

FROM ${NODE} as deps
RUN yarn set version 1.22.19

WORKDIR /app
COPY apps/plain-nextjs/ ./
RUN yarn install

FROM ${NODE} as builder
ENV NODE_ENV production 

WORKDIR /app
COPY --from=deps /app/ ./
RUN yarn build

FROM ${NODE} as production
WORKDIR /app
ENV NODE_ENV production 


RUN addgroup --system --gid 1001 nodejs
RUN adduser --system --uid 1001 nextjs

COPY --from=builder /app/next.config.js ./
COPY --from=builder /app/package.json ./package.json
# Next.js输出文件追踪
COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./
COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static

USER nextjs

EXPOSE 3005

ENV PORT 3005

CMD node --max-old-space-size=360 server.js

Kubernetes与Node.js配置

  • Kubernetes Helm Chart中Pod内存限制设为512MB,按照线上建议将Node.js/Next.js启动参数--max-old-space-size设为360MB
  • 使用Istio基于路径的路由,通过域名的/plain-nextjs路径访问该应用

next.config.js配置

/** @type {import('next').NextConfig} */
const nextConfig = {
  webpack: (config, options) => {
    config.module.rules.push({
      test: /\.svg$/,
      use: ["@svgr/webpack", "url-loader"],
    });
    return config;
  },
  reactStrictMode: false,
  output: "standalone",
  swcMinify: true,
  compress: true,
  basePath: "/plain-nextjs",
};

module.exports = nextConfig;

package.json配置

{
  "name": "plain-nextjs",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "dev": "next dev -p 3005",
    "build": "next build",
    "start": "next start -p 3005",
    "test": "jest --forceExit --detectOpenHandles",
    "lint": "next lint"
  },
  "dependencies": {
    "@next/font": "13.1.5",
    "next": "13.1.5",
    "prop-types": "^15.8.1",
    "react": "18.2.0",
    "react-dom": "18.2.0"
  },
  "devDependencies": {
    "@svgr/webpack": "^6.5.1",
    "@testing-library/jest-dom": "^5.16.5",
    "@testing-library/react": "^13.4.0",
    "babel-plugin-inline-react-svg": "^2.0.1",
    "eslint": "8.32.0",
    "eslint-config-next": "13.1.5",
    "http-status-codes": "^2.2.0",
    "jest": "^28.1.3",
    "jest-environment-jsdom": "^29.4.0",
    "styled-components": "^5.3.6",
    "url-loader": "^4.1.1"
  }
}

监控与排查现状

  • Staging环境Grafana监控显示,即使负载不高,内存仍持续增长无回落(内存监控截图:内存监控截图)
  • 曾怀疑循环引用或垃圾回收异常,但无法定位根因,恳请提供排查思路

内容的提问来源于stack exchange,提问作者erimeri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 10:12:58