Modificación de su configuración Databases for PostgreSQL
IBM Cloud® Databases for PostgreSQL le permite cambiar algunos de los ajustes de configuración de PostgreSQL para que pueda ajustar 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 implementació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 la max_connections configuración en 150, se proporcionaría:
{"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. El resultado del comando deployment-configuration-schema muestra solo la configuración predeterminada,
incluso después de cambiar la configuración. Para ver los cambios específicos de la base de datos, consulte directamente la base de datos.
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 obtener más información, consulte la referencia de la API.
Disponibles IBM Cloud® Databases for PostgreSQL ajustes de configuración
Esta sección proporciona información sobre los ajustes de configuración disponibles de IBM Cloud Databases for PostgreSQL. Para sugerir una configuración que no aparece aquí como mejora del producto, envíe su idea al portal de ideas IBM. Si lo prefieres, puedes limitar tu vista a solo las mejoras de IBM Cloud en IBM Cloud Ideas.
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 un valor más alto puede provocar problemas de memoria que causen el bloqueo de la base de datos
y podría disminuir el rendimiento de la misma, ya que es muy probable que los datos ya estén almacenados en el búfer del sistema operativo. Establecer shared_buffers un valor igual, cercano 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 índices de aciertos de la caché están por encima del 90 %, deja que el sistema operativo utilice la memoria en otras áreas en lugar de aumentarla 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:
50 - ¿Desea reiniciar la base de datos? - Sí
- Notas - Establecer el valor a
0deshabilita el uso de transacciones preparadas y se recomienda a menos que necesite utilizarlas.
- Valor predeterminado:
local - Reiniciar la base de datos - No
- Opciones -
local,onooff - Notas - Al establecer
synchronous_commiten 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_commitestablecido 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 valoronsolo 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. Dado que IOPS está vinculado al tamaño del disco, tampoco se recomienda aumentar este ajuste en discos predeterminados 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
onuoff - Notas: al establecer este valor en, los registros
onse vuelven más detallados. 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. Los detalles sobre cómo ajustar la URI de conexión se encuentran 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
onuoff - Notas: al establecer este valor en, los registros
onse vuelven más detallados. También mostrará las desconexiones de las herramientas 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. Los detalles sobre cómo ajustar la URI de conexión se encuentran 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
replicaological. Configure paralogicalutilizar la decodificación lógica. Si no va a utilizar la decodificación lógica, el uso delogicalaumenta 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
wal2jsonsin aumentarmax_replication_slotspuede afectar a las réplicas de solo lectura y HA. Si no lo está utilizandowal2json, deje esta configuración en el valor predeterminado.
- 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 predeterminado y mínimo es 12. Se requiere un
wal_senderpor consumidor. Veinte ranuras están reservadas para uso interno por parte del despliegue para fines de alta disponibilidad (HA). Debe establecer el valor por encima de 20 y se recomienda añadir uno máswal_senderpor encima del mínimo por consumidor previsto. El uso dewal2jsonsin aumentarmax_wal_senderspuede afectar a las réplicas de solo lectura y HA. Si no lo está utilizandowal2json, deje esta configuración en el valor predeterminado.