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

Cloud Run上Django 4.2.15项目uWSGI/Gunicorn性能异常慢排查求助

Django应用在Google Cloud Run上的性能异常排查

输入图片描述
输入图片描述

我在Google Cloud Run上运行Django 4.2.15应用时遇到严重性能问题,但该问题仅出现在此特定项目中,Cloud Run上的其他项目无此表现,核心信息如下:

  • Django版本:4.2.15
  • 运行环境:Google Cloud Run(1核,2GB内存)
  • Web服务器:uWSGI 2.0.26(未使用Nginx)
  • 数据库:MySQL(已排除查询瓶颈)
  • 首次响应:Chrome网络面板显示初始document加载耗时2.04秒
  • 核心问题:站点在Cloud Run上的速度远慢于本地环境
  • 观测结果:Django Debug Toolbar显示约90%的总耗时在domLoading阶段
  • 缓存测试:提供缓存视图(无数据库访问)时,性能表现正常
  • 本地表现:应用在本地运行速度极快,无明显延迟
  • Cloud Run特殊情况:
    • 无其他用户访问时仍会出现速度变慢
    • 非冷启动问题,服务处于持续运行状态
    • 其他Cloud Run项目未出现同类问题

极简页面测试

我创建了一个极简静态HTML页面:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Hello world</title>
</head>
<body>
Hello world!
</body>
</html>

通过Django基础TemplateView渲染,路由配置如下:

path('plane/', TemplateView.as_view(template_name='plane.html'), name='test'),

即便如此,该页面在Cloud Run上加载耗时仍约2秒,明显异常。

补充测试数据

Safari测试结果

  • domLoading: 2963 ms

curl测试结果

  • http_code: 200
  • time_total: 6.228104
  • time_namelookup: 0.003261
  • time_connect: 0.017354
  • time_appconnect: 0.078004
  • time_starttransfer: 6.095002

Web服务器切换测试

已将uWSGI替换为Gunicorn,但加载速度未得到改善。
输入图片描述


排查方向建议

  1. 中间件排查:检查项目中自定义或第三方中间件,逐一禁用测试,定位是否有中间件在请求处理阶段执行耗时操作。
  2. 静态资源配置检查:确认Django的STATIC_URL、STATIC_ROOT配置是否正确,排查是否存在静态资源加载阻塞逻辑。
  3. Cloud Run配置对比:将该项目的Cloud Run配置(如VPC连接器、私有网络、出站流量限制等)与其他正常项目对比,找出差异项。
  4. 模板引擎配置:检查是否开启模板缓存(OPTIONS['loaders']配置),生产环境未开启缓存会导致每次请求重新编译模板。
  5. 环境变量差异:对比本地与Cloud Run的Django相关环境变量(如DEBUG、数据库连接参数等),排查配置导致的性能损耗。
  6. 资源监控:在Cloud Run控制台查看该服务的CPU、内存使用率,确认是否存在资源瓶颈。
  7. 内部请求排查:检查应用是否存在不必要的DNS查询、外部服务调用,curl测试中time_starttransfer耗时极长,说明服务器处理请求阶段存在阻塞。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 03:42:29