# Cloud Run：请求在冷启动期间因 '内存限制超出' 而失败，即使内存使用低于限制

- **ID:** `cloud/gcp-cloud-run-cold-start-memory-threshold`
- **领域:** cloud
- **类别:** resource_error
- **错误码:** `HTTP 503`
- **验证级别:** ai_generated
- **修复率:** 78%

## 根因

在冷启动期间，Cloud Run 为容器分配内存，由于初始化开销（例如加载库、连接数据库）可能会暂时超过配置的内存限制，导致 OOM 杀死。

## 版本兼容性

| 版本 | 状态 | 引入 | 弃用 |
|------|------|------|------|
| Cloud Run (fully managed) 2023-11 | active | — | — |
| gcloud CLI 460.0.0 | active | — | — |

## 解决方案

1. ```
   为 Cloud Run 服务设置更高的内存限制（例如 512 MiB），并使用 --concurrency 标志在冷启动期间限制并发请求。示例：gcloud run deploy myservice --memory=512Mi --concurrency=1
   ```
2. ```
   优化应用程序的启动代码，延迟执行重型初始化（例如懒加载库、使用连接池），以减少内存峰值。
   ```
3. ```
   启用 'CPU always allocated' 以保持容器温暖，完全避免冷启动。
   ```

## 无效尝试

- **** — The issue is a transient spike; increasing limit helps but may not be cost-effective. (40% 失败率)
- **** — The spike is often due to runtime dependencies, not image size. (55% 失败率)
