Está en la página 1de 21

Técnicas Avanzadas en

Base de Datos PostgreSQL


Parámetros Iniciales
• Cluster de BD, Base de datos • shared_buffers, parámetros iniciales
• Estructura lógica del cluster de bd • work_mem, parámetros iniciales
• Estructura física del cluster de bd • maintenance_work_mem, parámetros
• Arquitectura de memoria iniciales
• Fichero Postgresql.conf • effective_cache_size, parámetros
iniciales
• Importancia de posgtresql.conf
• max_wal_size, parámetros iniciales
• Postgresql.conf, parámetros iniciales
• Control de acceso y autenticación
• listen_adresses, parámetros iniciales mediante el fichero pg_hba.conf
• max_connections, parámetros • Fichero pg_hba.conf
iniciales
Estructura lógica del cluster de bd
Un cluster de base de datos es una colección de bases de datos
administradas por un servidor PostgreSQL
Estructura física del cluster de bd
Un cluster de base de datos básicamente es un directorio al que se hace
referencia como directorio base, la ruta del directorio base generalmente se
establece en la variable de entorno PGDATA
Estructura física del cluster de bd
Arquitectura de Memoria
• Área de memoria local.
• Área de memoria compartida
Postgresql.conf
Los cambios que realicen en este fichero afectaran a todas las bases de
datos definidas en el cluster PostgreSQL. La mayoría de los cambios se
pueden poner en producción con un simple ‘reload’ otros cambios necesitan
un reinicio del cluster.
Example:
Select name, setting, pending_restart
From pg_settings
Where name like ‘max-connections’;
Importancia de Postgresql.conf
• Se debe ajustar los parámetros más importantes que se deben cambiar si
se utiliza PostgreSQL para un uso empresarial y aprovechar las
características del servidor físico
• Existen muchos parámetros que se pueden ajustar, en el curso se centrará
en los más importantes para utilizar PostgreSQL de una manera seria.
Postgresql.conf, parámetros inciales
• Listen_addresses: esta variable está comentada por defecto e impide
conexiones remotas a las bases de datos.
Si se coloca un asterico, Postgres escuchará a todas las ip configuradas en
el servidor. También se pueden filtrar sólos las Ips requeridas, de la
siguiente forma:
 Lister_adresses=‘*’;
 Listen_adresses=‘192.168.3.10,192.168.3.20’
Postgresql.conf, parámetros inciales
• max_connections: Número máximo de cliente conectados a la vez a la
base de datos. Se debe incrementar esta valor en proporción al número de
clientes concurrentes en el cluster PostgreSQL.
Se debe considerar que cada sesión establecida en la base de datos se
asocia a un proceso backend y una memoria de trabajo.
Un buen valor inicial es 100
Postgresql.conf, parámetros inciales
• shared_buffers: Este parámetro es importantísimo y define el tamaño del
buffer de memoria utilizado por PostgreSQL.
En un servidor dedicado podemos empezar con un 25% del total de nuestra
memoria. Nunca más de 1/3 (33%) del total.
Por ejemplo, en un servidor con 4GBytes de memoria, se puede usar
1024MB como valor inicial.
Postgresql.conf, parámetros inciales
• work_mem: Usada en operaciones que contengan ORDER BY, DISTINCT,
JOINS, ….
En un servidor dedicado se puede usar un 2-4% del total de la memoria si se
tienen solamente unas pocas sesiones o sesiones numeradas.
Como valor inicial se puede usar 8 Mbytes.
Postgresql.conf, parámetros inciales
• maintenance_work_mem: Usada en operaciones de tipo VACUUM,
ANALYZE, CREATE INDEX, ALTER TABLE, ADD FOREIGN KEY. Su valor
dependerá mucho del tamaño de los datos.
Por ejemplo, un servidor con 4 Gbytes de memoria, podemos usar 256 MB
como valor inicial.
Postgresql.conf, parámetros inciales
• effective_cache_size: Parámetro usado por el 'query planner' del motor de
bases de datos para optimizar la lectura de datos.
En un servidor dedicado se puede empezar con un 50% del total de la
memoria. Como máximo unos 2/3 (66%) del total. Por ejemplo, en un
servidor con 4Gbytes de memoria, se puede usar 2048MB como valor inicial.
Postgresql.conf, parámetros inciales
• max_wal_size : Tamaño máximo para permitir que el WAL crezca entre
puntos de control WAL automáticos. Este es un límite suave;
WAL tamaño puede exceder max_wal_size en circunstancias especiales,
como en situaciones de carga, un defecto archive_command , o un alto
wal_keep_segments ajuste. El valor predeterminado es 1 GB.
Control de acceso y autenticación
• El fichero pg_hba.conf se utiliza para definir como, donde, desde que sitio
un usuario puede utilizar el cluster PostgreSQL.
• Todas las líneas que empiecen con el carácter # se interpretan como
comentarios.
• El resto debe tener el siguiente formato:
Control de acceso y autenticación
• El fichero pg_hba.conf se utiliza para definir como, donde, desde que sitio
un usuario puede utilizar el cluster PostgreSQL.
• Todas las líneas que empiecen con el carácter # se interpretan como
comentarios.
• El resto debe tener el siguiente formato:
Control de acceso y autenticación
• El fichero pg_hba.conf se utiliza para definir como, donde, desde que sitio
un usuario puede utilizar el cluster PostgreSQL.
• Todas las líneas que empiecen con el carácter # se interpretan como
comentarios.
• El resto debe tener el siguiente formato:
Fichero pg_hba.conf
Tipo de conexión Tipo de método
• local • trust
• reject
• host
• md5
• hostssl
• crypt
• hostnossl • password
Tipo de autentificación • krb5
• [IP] • Ident

• [Netmask] • pam
• ldap
• [opciones]
Fichero pg_hba.conf
[Tipo de conexion][database][usuario][IP][Netmask][Tipo de autentificacion][opciones]

5
Laboratorio
Crear el entorno de pruebas:
pgbench -i -s 50 example
Ejecutar prueba de estrés:
pgbench -c 10 -j 2 -t 10000 example
- Setear la varible shared_buffers al doble 128 Mbytes.
- Setear la varible shared_buffers al doble 256 Mbytes.
- Setear la varible shared_buffers al doble 512 Mbytes.
- Setear la varible shared_buffers al doble 1024 Mbytes.
Link de apoyo:
https://pgtune.leopard.in.ua/

También podría gustarte