性能优化#

本文档给出与当前版本一致的性能优化策略,仅使用实际可配置项。

1. 先做基线观测#

先建立性能基线,再调参:

  • 请求速率(RPS/QPS)
  • p95/p99 延迟
  • 错误率
  • 内存与 CPU

建议至少跑 15-30 分钟真实流量或压测流量后再改配置。

2. 服务器超时调优#

1
2
3
4
server:
  readTimeoutSec: 30
  writeTimeoutSec: 0
  idleTimeoutSec: 60

建议:

  • SSE 场景保持 writeTimeoutSec: 0
  • 高频断连时提高 idleTimeoutSec
  • 慢客户端场景提高 readTimeoutSec

3. Kubernetes 调优#

1
2
3
4
kubernetes:
  timeoutSec: 30
  qps: 100.0
  burst: 200

建议:

  • 集群越大,越需要更高 qps/burst
  • 超时错误增多时适当提升 timeoutSec

4. 限流保护#

1
2
3
4
ratelimit:
  enabled: true
  requests_per_second: 100
  burst: 200

建议:

  • 公网入口、共享集群建议默认开启。
  • 先保守,再逐步上调。

5. 精简服务范围#

1
2
enableDisable:
  enabledServices: ["kubernetes", "prometheus", "grafana", "aggregate"]

建议:

  • 只启用业务需要的服务。
  • 关闭不用服务可以降低资源占用。

6. 审计成本控制#

1
2
3
4
5
6
audit:
  enabled: true
  storage: "database"
  sampling:
    enabled: true
    rate: 0.3

建议:

  • 高流量场景建议启用采样。
  • 需要长期检索时使用 database 存储。

7. 生产配置模板#

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
server:
  mode: "streamable-http"
  addr: "0.0.0.0:8080"
  readTimeoutSec: 30
  writeTimeoutSec: 0
  idleTimeoutSec: 60

logging:
  level: "info"
  json: true

kubernetes:
  kubeconfig: ""
  timeoutSec: 30
  qps: 100.0
  burst: 200

ratelimit:
  enabled: true
  requests_per_second: 100
  burst: 200

auth:
  enabled: true
  mode: "apikey"
  apiKey: "${MCP_AUTH_API_KEY}"

audit:
  enabled: true
  storage: "database"
  sampling:
    enabled: true
    rate: 0.3

enableDisable:
  enabledServices: ["kubernetes", "prometheus", "grafana", "aggregate"]

8. 常见误区#

  • 不要使用历史字段,如 cache_ttlmax_connectionsmax_response_size
  • 不要一次性改太多参数,否则难以定位收益来源。
  • 不要只看平均延迟,必须看 p95/p99。

相关文档#