Help us learn about your current experience with the documentation. Take the survey.

外部数据库的监控与日志设置

外部 PostgreSQL 数据库系统提供了不同的日志选项,用于监控性能和故障排查,但它们默认情况下并未启用。在本节中,我们为自管理的 PostgreSQL 提供建议,并为一些主要的 PostgreSQL 托管服务提供商提供建议。

推荐的 PostgreSQL 日志设置

您应该启用以下日志设置:

  • log_statement=ddl: 记录数据库模型定义 (DDL) 的变更,例如对象的 CREATEALTERDROP 操作。这有助于追踪可能导致性能问题的近期模型变更,并识别安全漏洞和人为错误。
  • log_lock_waits=on: 记录长时间持有 的进程,这是查询性能不佳的一个常见原因。
  • log_temp_files=0: 记录大量和不寻常的临时文件的使用情况,这可能表明查询性能不佳。
  • log_autovacuum_min_duration=0: 记录所有 autovacuum 的执行情况。Autovacuum 是 PostgreSQL 引擎整体性能的关键组成部分。如果表中的死元组未被清除,这对于故障排查和性能调优至关重要。
  • log_min_duration_statement=1000: 记录慢查询(慢于 1 秒)。

这些参数设置的完整描述可以在 PostgreSQL 错误报告和日志文档 中找到。

Amazon RDS

Amazon Relational Database Service (RDS) 提供了大量的 监控指标日志接口。以下是您应该配置的几个选项:

  • 通过 RDS 参数组 更改所有 推荐的 PostgreSQL 日志设置
    • 由于推荐的日志参数在 RDS 中是 动态的,因此更改这些设置后您无需重启。
    • 可以通过 RDS 控制台 查看 PostgreSQL 日志。
  • 启用 RDS Performance Insight 可以让您可视化数据库负载,并包含 PostgreSQL 数据库引擎的许多重要性能指标。
  • 启用 RDS 增强监控 以监控操作系统指标。这些指标可以指明底层硬件和操作系统中正在影响您数据库性能的瓶颈。
    • 在生产环境中,将监控间隔设置为 10 秒(或更短),以捕获可能导致许多性能问题的资源使用微突发。在控制台中设置 Granularity=10,或在 CLI 中设置 monitoring-interval=10