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

