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

Google Cloud Run Python应用突发内存超限异常求助

Google Cloud Run 无代码变更突发内存超限问题

问题描述

我有一个基于Python3.9的应用,通过Docker部署在Google Cloud Run上,此前数周构建与运行均无异常。但自2022年11月11日起,单次请求调用REST API端点时出现运行时内存分配错误:

Memory limit of 256M exceeded with 256M used. Consider increasing the memory limit

期间我未对代码做任何修改。将内存限制提升至512MB可解决该问题,但此应用基于Alpine的Python3.9构建,理论内存占用仅130MB-150MB,且Google Cloud Run日志显示11月11日前内存仅占256MB配额的50%。请问是否有其他人在2022年11月10日或11日前后遇到类似内存分配异常?若有,请问根因是什么及如何解决?

所用Dockerfile

FROM python:3.9-alpine3.16

ENV APP_HOME /app
ENV PIPENV_VENV_IN_PROJECT true
ENV PIPENV_NOSPIN true

WORKDIR $APP_HOME

COPY . $APP_HOME
COPY xiglogger $APP_HOME

RUN apk add --update --no-cache openssh git
RUN pip install --upgrade setuptools
RUN  pip install pipenv  \
    && pipenv requirements > requirements.txt \
    && pip install -r requirements.txt

ENV PORT 8080

ENV PYTHONUNBUFFERED TRUE

CMD pipenv run gunicorn --bind 0.0.0.0:$PORT --workers 1 --threads 8 --timeout 0 app:app
解答
  • 2022年11月10日-12日期间,大量Google Cloud Run用户反馈了相同的异常内存占用问题,属于平台级变更引发的问题。
  • 根因:Google在此时间段对Cloud Run的运行时沙箱进行了版本更新,新沙箱的内存计量逻辑调整——原本未被计入应用配额的内核级内存(如部分系统库、容器运行时开销)被纳入统计,导致原本内存使用正常的应用触发超限告警。
  • 临时修复方案:
    • 如你已操作的,临时将Cloud Run服务的内存配额提升至512MB,可快速恢复服务正常运行。
    • 调整gunicorn并发配置:将--threads 8降低至--threads 4,减少并发线程数以降低峰值内存占用,部分场景下可在256MB配额内恢复服务。
  • 长期优化方案:
    • 关注Google Cloud状态公告,待平台完成沙箱计量逻辑的修复或优化后,可将内存配额调回原水平。
    • 精简Docker镜像:移除镜像中不必要的依赖(如openssh和git,部署完成后无需这些工具),减少运行时额外内存开销。优化后的Dockerfile示例:
      FROM python:3.9-alpine3.16
      
      ENV APP_HOME /app
      ENV PIPENV_VENV_IN_PROJECT true
      ENV PIPENV_NOSPIN true
      
      WORKDIR $APP_HOME
      
      COPY . $APP_HOME
      COPY xiglogger $APP_HOME
      
      RUN pip install --upgrade setuptools
      RUN pip install pipenv  \
          && pipenv requirements > requirements.txt \
          && pip install -r requirements.txt
      
      ENV PORT 8080
      ENV PYTHONUNBUFFERED TRUE
      
      CMD pipenv run gunicorn --bind 0.0.0.0:$PORT --workers 1 --threads 4 --timeout 0 app:app
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 13:05:38