RDS for PostgreSQL 进程 - Amazon Relational Database Service

RDS for PostgreSQL 进程

RDS for PostgreSQL 使用多个进程。

邮件管理员过程

邮件管理员进程是启动 RDS for PostgreSQL 时开始的第一个进程。邮件管理员过程负有以下主要责任:

  • 分流并监控后台进程

  • 接收来自客户端进程的身份验证请求,并在允许数据库为请求提供服务之前对这些请求进行身份验证

后端进程

如果邮件管理员对客户请求进行身份验证,邮件管理员会分流一个新的后端进程,也称为 postgres 进程。一个客户端进程只连接到一个后端进程。客户端进程和后端进程直接通信,而无需邮件管理员过程的干预。

后台进程

邮件管理员过程会分流执行不同后端任务的几个进程。其中一些更重要的事项包括:

  • WAL 写入器

    RDS for PostgreSQL 会将 WAL(预写日志记录)缓冲区中的数据写入日志文件。预写日志记录的原则是,在数据库将描述这些更改的日志记录写入磁盘之后,数据库才能将更改写入数据文件。WAL 机制减少了磁盘 I/O,并允许 RDS for PostgreSQL 在出现故障后使用日志恢复数据库。

  • 后台写入器

    此进程会定期将内存缓冲区中的脏(已修改)分页写入数据文件。当后端进程在内存中修改分页时,分页会变脏。

  • Autovacuum 守护进程

    守护进程由以下各项组成:

    • Autovacuum 启动程序

    • Autovacuum 工件进程

    当 Autovacuum 开启时,它会检查包含大量插入的、更新的或删除的元组的表。守护进程要承担以下责任:

    • 恢复或重复使用更新或删除的行占用的磁盘空间

    • 更新计划人员使用的统计数据

    • 防止因事务 ID 重叠而导致旧数据丢失

    Autovacuum 功能自动执行 VACUUMANALYZE 命令。VACUUM 具有以下变体:标准和完整版。标准 vacuum 与其他数据库操作并行运行。VACUUM FULL 需要对您工作所在的表具有专有锁定。因此,它不能与访问同一表的操作并行运行。VACUUM 创建了大量的输入/输出流量,这可能会导致其他活动会话的性能不佳。