> ## Documentation Index
> Fetch the complete documentation index at: https://enterprise-docs.dify.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 性能调优

## 显示 Helm Chart 值

```bash theme={null}
helm show values dify/dify
```

## 1. 提高资源分配

* 你可以通过调整 Helm Chart 中各服务的资源分配来提升 Dify 的性能。
* 可根据你的部署环境和资源情况进行扩容。
* 以下是各组件的推荐配置：

| 分类     | 组件                   | Replicas | Request CPU | Request Mem | Limit CPU | Limit Mem | 备注   |
| ------ | -------------------- | -------- | ----------- | ----------- | --------- | --------- | ---- |
| 核心应用组件 | API                  | 6        | 1           | 1 GB        | 1         | 2 GB      | ①    |
|        | Worker               | 2        | 4           | 4 GB        | 4         | 8 GB      | ②    |
|        | Worker Beat          | 1        | 1           | 2 GB        | 2         | 4 GB      |      |
|        | Web                  | 1        | 0.5         | 1 GB        | 1         | 2 GB      |      |
|        | Sandbox              | 1        | 2           | 2 GB        | 2         | 4 GB      | ③    |
| 企业版组件  | Enterprise           | 1        | 2           | 2 GB        | 2         | 2 GB      |      |
|        | Enterprise\_Audit    | 1        | 1           | 2 GB        | 2         | 4 GB      |      |
|        | Enterprise\_Frontend | 1        | 1           | 2 GB        | 1         | 2 GB      |      |
| 插件组件   | Plugin Daemon        | 1        | 1           | 2 GB        | 2         | 4 GB      |      |
|        | Plugin Controller    | 1        | 0.5         | 1 GB        | 1         | 2 GB      |      |
|        | Plugin Connector     | 1        | 1           | 2 GB        | 1         | 2 GB      |      |
|        | Plugin Manager       | 1        | 1           | 2 GB        | 2         | 4 GB      |      |
| 基础组件   | SSRF Proxy           | 1        | 0.5         | 0.5 GB      | 1         | 1 GB      |      |
|        | Gateway              | 1        | 1           | 2 GB        | 2         | 4 GB      |      |
|        | Unstructured         | -        | -           | -           | -         | -         | 按需调整 |
|        | MinIO                | -        | -           | -           | -         | -         | 按需调整 |

**备注说明：**

* ① **API**：根据需要横向扩容replica
* ② **Worker**：根据需要横向扩容replica（tag 侧是否有大量文件需要上传）
* ③ **Sandbox**：根据需要横向扩容replica（是否节点有大量计算任务）
  * `maxWorkers`: 4（工作进程数量）
  * `workerTimeout`: 15（调用超时时间）

**配置示例：**

```yaml theme={null}
api:
  replicas: 6
  resources:
    requests:
      cpu: 1
      memory: 1Gi
    limits:
      cpu: 1
      memory: 2Gi

worker:
  replicas: 2
  resources:
    requests:
      cpu: 4
      memory: 4Gi
    limits:
      cpu: 4
      memory: 8Gi

sandbox:
  replicas: 1
  maxWorkers: 4
  workerTimeout: 15
  resources:
    requests:
      cpu: 2
      memory: 2Gi
    limits:
      cpu: 2
      memory: 4Gi
```

## 2. 优化外部 Postgres 数据库性能

### 2.1 计算数据库最大连接数

在配置数据库时，需要根据以下公式计算所需的最大连接数：

```
数据库最大连接数 = (SQLALCHEMY_POOL_SIZE + SQLALCHEMY_MAX_OVERFLOW) × API Worker数 × API Replicas数量
                + (SQLALCHEMY_POOL_SIZE + SQLALCHEMY_MAX_OVERFLOW) × Worker Worker数 × Worker Replicas数量
```

**参数说明：**

* `SQLALCHEMY_POOL_SIZE`: 每个 worker 的数据库连接池大小
* `SQLALCHEMY_MAX_OVERFLOW`: 连接池溢出时的最大额外连接数
* `API Worker数`: API 服务的 `serverWorkerAmount`
* `Worker Worker数`: Worker 服务的 `celeryWorkerAmount`

**计算示例：**

假设配置如下：

* API: replicas=6, serverWorkerAmount=1
* Worker: replicas=2, celeryWorkerAmount=1
* SQLALCHEMY\_POOL\_SIZE=100
* SQLALCHEMY\_MAX\_OVERFLOW=150

则最大连接数为：

```
(100 + 150) × 1 × 6 + (100 + 150) × 1 × 2 = 1500 + 500 = 2000
```

<Warning>
  建议在计算结果基础上预留 20-30% 的余量，以应对突发流量。上述示例中，建议将 `max_connections` 设置为 2400-2600。
</Warning>

### 2.2 完整配置示例

```yaml theme={null}
api:
  replicas: 6
  serverWorkerAmount: 1
  extraEnv:
    - name: SQLALCHEMY_POOL_SIZE
      value: "100"
    - name: SQLALCHEMY_MAX_OVERFLOW
      value: "150"
  resources:
    requests:
      cpu: 1
      memory: 1Gi
    limits:
      cpu: 1
      memory: 2Gi
```

## 3. 性能监控建议

### 3.1 关键指标

监控以下指标以确保系统运行良好：

**数据库连接：**

* 当前活跃连接数
* 连接池使用率
* 等待连接的请求数

**资源使用：**

* CPU 使用率（建议保持在 70% 以下）
* 内存使用率（建议保持在 80% 以下）
* 磁盘 I/O

**应用性能：**

* API 响应时间
* Worker 任务队列长度
* 任务执行时间

### 3.2 常见性能瓶颈

| 症状      | 可能原因            | 解决方案                                    |
| ------- | --------------- | --------------------------------------- |
| API 响应慢 | API replicas 不足 | 增加 API replicas                         |
| 任务堆积    | Worker 处理能力不足   | 增加 Worker replicas 或 celeryWorkerAmount |
| 数据库连接耗尽 | 连接数配置不足         | 增加 max\_connections 或优化连接池配置            |
| 内存溢出    | 内存限制过低          | 增加 memory limits                        |
| CPU 节流  | CPU 限制过低        | 增加 CPU limits                           |
