

# Procesos de RDS para PostgreSQL
<a name="PostgreSQL.Tuning.concepts.processes"></a>

RDS para PostgreSQL utiliza varios procesos.

**Topics**
+ [Proceso de administrador de correos](#PostgreSQL.Tuning.concepts.postmaster)
+ [Procesos de backend](#PostgreSQL.Tuning.concepts.backend)
+ [Procesos en segundo plano](#PostgreSQL.Tuning.concepts.vacuum)

## Proceso de administrador de correos
<a name="PostgreSQL.Tuning.concepts.postmaster"></a>

El *proceso de administrador de correos* es el primer proceso que se ejecuta cuando se inicia RDS para PostgreSQL. El proceso de administrador de correos tiene las siguientes funciones principales:
+ Bifurcar y monitorear los procesos en segundo plano
+ Recibir solicitudes de autenticación de los procesos cliente, y autenticarlos antes de permitir que la base de datos atienda las solicitudes

## Procesos de backend
<a name="PostgreSQL.Tuning.concepts.backend"></a>

Si el administrador de correos autentica una solicitud de cliente, el administrador de correos bifurca un nuevo proceso de backend, también llamado proceso postgres. Un proceso cliente se conecta exactamente a un proceso backend. El proceso cliente y el proceso backend se comunican directamente sin la intervención del proceso de administrador de correos.

## Procesos en segundo plano
<a name="PostgreSQL.Tuning.concepts.vacuum"></a>

El proceso de administrador de correos bifurca varios procesos que ejecutan distintas tareas de backend. Algunas de las más importantes son las siguientes:
+ Escritor de WAL

  RDS para PostgreSQL escribe datos en el búfer WAL (registro de escritura anticipada) en los archivos de registro. El principio del registro por adelantado es que la base de datos no puede escribir los cambios en los archivos de datos hasta que la base de datos escriba los registros que describen esos cambios en el disco. El mecanismo de WAL reduce la E/S del disco y permite a RDS para PostgreSQL utilizar los registros para recuperar la base de datos en caso de error.
+ Escritor en segundo plano

  Este proceso escribe de forma periódica las páginas sucias (modificadas) desde los búferes de memoria a los archivos de datos. Una página se vuelve sucia cuando un proceso de backend la modifica en la memoria.
+ Daemon de autovacuum

  El daemon consta de lo siguiente:
  + El iniciador de autovacuum
  + Los procesos de trabajo de autovacuum

  Cuando autovacuum está activado busca las tablas en las que se ha insertado, actualizado o eliminado un número elevado de tuplas. El daemon tiene las siguientes responsabilidades:
  + Recuperar o reutilizar el espacio de disco ocupado por las filas actualizadas o eliminadas
  + Actualizar las estadísticas utilizadas por el planificador
  + Proteger contra la pérdida de datos antiguos debido al reinicio del ID de transacción

  La característica de autovacuum automatiza la ejecución de los comandos `VACUUM` y `ANALYZE`. `VACUUM` tiene las siguientes variantes: estándar y completo. El vacío estándar se ejecuta en paralelo con otras operaciones de la base de datos. `VACUUM FULL` requiere un bloqueo exclusivo sobre la tabla en la que se trabaja. Por lo tanto, no puede ejecutarse en paralelo con operaciones que acceden a la misma tabla. `VACUUM` crea una cantidad considerable de tráfico de E/S, lo que puede causar un bajo rendimiento para otras sesiones activas.