Modificación de su configuración Databases for PostgreSQL
IBM Cloud® Databases for PostgreSQL le permite cambiar algunos de los parámetros de configuración de PostgreSQL para que pueda adaptar sus bases de datos PostgreSQL a su caso de uso. Para realizar cambios permanentes en la configuración de la base de datos, utilice el complemento CLI o la API de Cloud Databases para escribir los cambios en el archivo de configuración de su implantación.
La configuración se define en un esquema. Para realizar un cambio, envíe un objeto JSON con la configuración y los nuevos valores a la API o la CLI. Por ejemplo, para establecer el ajuste max_connections
en 150, debería suministrar:
{"configuration":{"max_connections":150}}
a la CLI o a la API.
Para obtener más información, consulte Gestión de conexiones PostgreSQL.
Utilización de la CLI con Databases for PostgreSQL
Puede comprobar la configuración predeterminada del despliegue con el mandato deployment-configuration-schema
.
ibmcloud cdb deployment-configuration-schema <INSTANCE_NAME_OR_CRN>
De forma similar, cambie la configuración con el mandato deployment-configuration
.
ibmcloud cdb deployment-configuration <INSTANCE_NAME_OR_CRN> [@JSON_FILE | JSON_STRING]
Este mandato lee los cambios que desea realizar del objeto JSON o de un archivo. Para obtener más información, consulte la página de referencia.
Utilización de la API con IBM Cloud® Databases for PostgreSQL
Los dos puntos finales de configuración de despliegue permiten ver el esquema de configuración y cambiar la configuración. Para ver el esquema de configuración, envíe una solicitud GET
a /deployments/{id}/configuration/schema
.
Para cambiar la configuración, envíe los valores que desea cambiar en forma de objeto JSON en el cuerpo de una solicitud PATCH
a /deployments/{id}/configuration
.
Para más información, consulte la referencia de la API.
Disponibles IBM Cloud® Databases for PostgreSQL ajustes de configuración
IBM Cloud® Databases for PostgreSQL configuración de la zona horaria
El huso horario para los despliegues de IBM Cloud® Databases for PostgreSQL es siempre UTC (Hora Universal Coordinada). Este valor no lo pueden configurar los clientes.
IBM Cloud® Databases for PostgreSQL configuración de la memoria
- Valor predeterminado -
32000
(número de almacenamientos intermedios de 8 KiB, o aproximadamente 262 MB) - Valor máximo recomendado: 25% de RAM disponible
- ¿Desea reiniciar la base de datos? - Sí
La asignación de memoria recomendada para shared_buffers
es de 25% de la RAM del despliegue. Establecer shared_buffers
a un valor superior puede provocar problemas de memoria que provoquen el bloqueo de la base de
datos y puede reducir el rendimiento de la base de datos, ya que es muy probable que el sistema operativo ya haya almacenado los datos en el búfer. Establecer shared_buffers
en un valor igual, casi igual o superior a la cantidad
de memoria asignada impide que la base de datos se inicie. El valor especifica el número de almacenamientos intermedios de memoria compartida de 8 KiB.
Por ejemplo, 1 GB de espacio shared_buffers
es 1048576 KiB
y (1048576 KiB / 8 KiB
) es 131072
almacenamientos intermedios. El despliegue puede utilizar RAM adicional para el almacenamiento
en memoria caché y el rendimiento, incluso sin asignarla a shared_buffers
. No es necesario que configure la base de datos para que utilice toda la RAM asignada para que el despliegue la utilice.
Para las cargas de trabajo existentes, o cuando se escala la RAM, aumentar la memoria a los búferes compartidos podría no ser el mejor curso de acción. En lugar de ello, haga un seguimiento de las proporciones de accesos a la memoria caché
de tablas e índices. Si los ratios de acierto de la caché se sitúan en los noventa, deje que el sistema operativo utilice la memoria en otras áreas en lugar de aumentar shared_buffers
.
Puede utilizar estas consultas como el usuario admin
o cualquier usuario con el rol pg_monitor
para realizar un seguimiento de las proporciones de accesos a la memoria caché:
Tablas
SELECT
sum(heap_blks_read) as heap_read,
sum(heap_blks_hit) as heap_hit,
sum(heap_blks_hit) / (sum(heap_blks_hit) + sum(heap_blks_read)) as table_hit_ratio
FROM
pg_statio_user_tables;
Índices
SELECT
sum(idx_blks_read) as idx_read,
sum(idx_blks_hit) as idx_hit,
(sum(idx_blks_hit) - sum(idx_blks_read)) / sum(idx_blks_hit) as index_hit_ratio
FROM
pg_statio_user_indexes;
El valor work_mem
se ajusta automáticamente en relación con los valores de configuración shared_buffer
y max_connection
.
IBM Cloud® Databases for PostgreSQL configuración general
- Valor predeterminado - 115
- ¿Desea reiniciar la base de datos? - Sí
- Notas - Es posible que necesite escalar antes de aumentar el número máximo de conexiones.
- Valor predeterminado-64
- Opciones - Valor mínimo de 10
- ¿Desea reiniciar la base de datos? - Sí
- Valor predeterminado:
0
- ¿Desea reiniciar la base de datos? - Sí
- Notas - El valor por defecto de
0
deshabilita el uso de transacciones preparadas y se recomienda a menos que necesite utilizarlas.
- Valor predeterminado:
local
- Reiniciar la base de datos - No
- Opciones -
local
,on
ooff
- Notas - Al establecer
synchronous_commit
en off, aumenta la tasa de compromiso de transacción a expensas de una pérdida de transacciones confirmadas si se produce una conclusión no limpia. Consynchronous_commit
establecido enon
, una transacción se confirma solo cuando se escribe en el líder y al menos en una réplica. Por lo tanto, el valoron
solo está disponible en las formaciones que se han escalado horizontalmente a por lo menos tres miembros. Antes de aplicar este cambio, consulte Alta disponibilidad.
- Valor predeterminado:
12
- Reiniciar la base de datos - No
- Notas - Se recomienda dejar el valor predeterminado. Solo aumente si ha perfilado consultas SQL y ha detectado exploraciones de almacenamiento dinámico de mapa de bits ineficientes. Como las IOPS están ligadas al tamaño del disco, tampoco se recomienda aumentar este ajuste en discos por defecto o de menor tamaño.
- Valor predeterminado:
10000
- Reiniciar la base de datos - No
- Opciones: valor mínimo de 100
- Notas - El número de milisegundos a esperar antes de comprobar si hay un punto muerto y la duración en la que se registran las esperas de bloqueo. Registros disponibles a través de la integración de registro. Si se establece este número demasiado bajo afecta negativamente al rendimiento.
- Valor predeterminado:
off
- Reiniciar la base de datos - No
- Opciones - Valores de
on
uoff
- Notas - Establecer este valor a
on
hace que los registros sean verbose. También muestra las conexiones de la herramienta de supervisión ya que extrae métricas cada 60 segundos. Cuando se establece enon
, se recomienda establecer application_name en el URI de conexión para mantener una visión general en los registros, ya que las direcciones IP que se muestran son las IP internas de Kubernetes. Encontrará más detalles sobre cómo ajustar el URI de conexión en la documentación de PostgreSQL. Cuando se establece enoff
, no hay ningún cambio en el comportamiento en el valor predeterminado y no se registra ninguna conexión. Los registros están disponibles a través de la integración de registro. Si se estableceon
, los registros muestran líneas similares a este ejemplo, donde el nombre de la aplicación se establece comotest-app
:
2021-03-01 10:27:56 UTC [[unknown]] [00000] [708]: [2-1] user=admin,db=ibmclouddb,client=127.0.0.1 LOG: connection authorized: user=admin database=ibmclouddb application_name=test-app SSL enabled (protocol=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384, bits=256, compression=off)
- Valor predeterminado:
off
- Reiniciar la base de datos - No
- Opciones - Valores de
on
uoff
- Notas - Establecer este valor a
on
hace que los registros sean verbose. También mostrará las desconexiones de las herramientas de monitorización, ya que extrae métricas cada 60 segundos. Cuando se establece enon
, se recomienda establecer application_name en el URI de conexión para mantener una visión general en los registros, ya que las direcciones IP que se muestran son las IP internas de Kubernetes. Encontrará más detalles sobre cómo ajustar el URI de conexión en la documentación de PostgreSQL. Cuando se establece enoff
, no hay ningún cambio en el comportamiento en el valor predeterminado y no se registra ninguna desconexión. Los registros están disponibles a través de la integración de registro. Si se estableceon
, los registros muestran líneas similares a este ejemplo donde el nombre de la aplicación se establece comotest-app
:
2021-03-01 10:27:56 UTC [test-app] [00000] [708]: [3-1] user=admin,db=ibmclouddb,client=127.0.0.1 LOG: disconnection: session time: 0:00:00.793 user=admin database=ibmclouddb host=127.0.0.1 port=50638
- Valor predeterminado:
100
- Reiniciar la base de datos - No
- Opciones: valor mínimo de 100
- Notas - Se registran las sentencias que tardan más que el número de milisegundos especificado.
- Valor predeterminado:
111
- Reiniciar la base de datos - No
- Valor predeterminado:
15
- Reiniciar la base de datos - No
- Valor predeterminado:
6
- Reiniciar la base de datos - No
IBM Cloud® Databases for PostgreSQL Configuración de WAL
- Valor predeterminado:
1800
- Reiniciar la base de datos - No
- Opciones - Valor mínimo de 300
- Notas - El número de segundos a esperar antes de forzar un cambio al siguiente archivo WAL. Si ha transcurrido el número de segundos y ha habido actividad en la base de datos, el servidor cambia a un nuevo segmento. Limita de manera efectiva la cantidad de tiempo que los datos pueden permanecer sin archivar.
Los tres valores siguientes wal_level
, max_replication_slots
y max_wal_senders
habilitan el uso del plugin de decodificación lógica de wal2json
.
Si no está utilizando este plug-in, deje estos valores en el valor predeterminado.
- Valor predeterminado:
replica
- ¿Se reinicia la base de datos? - Sí
- Notas - Controla el nivel de WAL. Los valores permitidos son
replica
ological
. Establézcalo enlogical
para utilizar la descodificación lógica. Si no va a utilizar la decodificación lógica, el uso delogical
aumenta el tamaño de WAL, lo que supone diversos inconvenientes y ninguna ventaja real.
- Valor predeterminado:
10
- ¿Se reinicia la base de datos? - Sí
- Notas - El número máximo de ranuras de réplica definidas de forma simultánea. El valor predeterminado y mínimo de ranuras es 10. Veinte ranuras están reservadas para uso interno por parte del despliegue para fines de alta disponibilidad
(HA). Para utilizar ranuras, debe establecer el valor por encima de 20 y tener una ranura por consumidor. Añada una ranura adicional por encima del mínimo por consumidor esperado. El uso de
wal2json
sin aumentarmax_replication_slots
puede afectar a las réplicas de solo lectura y HA. Si no utilizawal2json
, deje esta configuración por defecto.
- Valor predeterminado:
12
- ¿Se reinicia la base de datos? - Sí
- Notas - El número máximo de procesos de emisor WAL que se ejecutan de forma simultánea. El valor por defecto, y mínimo, es 12. Se requiere un
wal_sender
por consumidor. Veinte ranuras están reservadas para uso interno por parte del despliegue para fines de alta disponibilidad (HA). Es necesario fijar el valor por encima de 20 y se recomienda añadir unwal_sender
más sobre el mínimo por consumidor esperado. El uso dewal2json
sin aumentarmax_wal_senders
puede afectar a las réplicas de solo lectura y HA. Si no utilizawal2json
, deje esta configuración por defecto.