Modificación de su configuración Databases for PostgreSQL
IBM Cloud® Databases for PostgreSQL Te permite modificar algunos de los parámetros de configuración de PostgreSQL para que puedas ajustar tus bases de datos de PostgreSQL a tu caso de uso. Para realizar cambios permanentes en la configuración de la base de datos, utiliza el complemento CLI de Cloud Databases o la API para escribir los cambios en el archivo de configuración de tu 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 el parámetro max_connections en 150, deberías introducir:
{"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, consulta 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. Si se establece un shared_buffers valor superior, pueden producirse problemas de memoria que provoquen un fallo de la base
de datos y podrían reducir su rendimiento, ya que es muy probable que el sistema operativo ya haya almacenado los datos en el búfer. Si se establece shared_buffers un valor igual, casi igual o superior a la cantidad de memoria
asignada, se 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 caché se sitúan en torno al 90 %, deja 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:
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 las IOPS están vinculadas al tamaño del disco, tampoco se recomienda aumentar este ajuste en discos de tamaño predeterminado o inferior.
- 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: si se establece este valor en, los registros serán
onmá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. Encontrarás 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
onuoff - Notas: si se establece este valor en, los registros serán
onmá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. Encontrarás 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
replicaological. Configurar enlogicalpara utilizar 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 utilizaswal2json, deja esta configuración tal y como viene 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_senderpor consumidor. Veinte ranuras están reservadas para uso interno por parte del despliegue para fines de alta disponibilidad (HA). Debes establecer el valor por encima de 20 y se recomienda añadir uno más por encimawal_senderdel mínimo por consumidor previsto. El uso dewal2jsonsin aumentarmax_wal_senderspuede afectar a las réplicas de solo lectura y HA. Si no lo utilizaswal2json, deja esta configuración tal y como viene por defecto.