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