Está en la página 1de 3

Referencia de la Pagina

https://pgtune.leopard.in.ua/#/

Caracteristicas Servidor BD
# DB Version: 9.6
# OS Type: linux
# DB Type: web
# Total Memory (RAM): 16 GB
# CPUs num: 6
# Connections num: 300
# Data Storage: ssd

############ Add/modify this settings in postgresql.conf and restart


database
### Valor máximo de conexiones permitidas
max_connections = 300 # (change requires restart)

### Tamaño del buffer utilizado por postgresql para mantener data en cache representa el 25% de RAM Se debe
alterar valor de SHMMAX
shared_buffers = 4096MB # min 128kB

## Optimizar la lectura de datos Valor razonable 50% de la memoria


effective_cache_size = 12228MB

### Usada en operaciones del tipo VACUUM, ANALYZE, CREATE INDEX, ...
maintenance_work_mem = 6MB 1024MB # min 1MB

checkpoint_completion_target = 0.7

wal_buffers = -1 16MB # min 32kB, -1 sets based on shared_buffers

default_statistics_target = 100 # range 1-10000

random_page_cost = 1.1 # same scale as above

effective_io_concurrency = 200 # 1-1000. 0 disables prefetching

##Utilizada para las ordenes ORDEN BY, DISTINCT, joins, ... Valor razonable 2-4% de la memoria Se colocó 3%
work_mem = 512MB # min 64kB

##Optimizar punto de chequeo WALL. Cada segmento es normalmente 16 MB. En este caso 64 * 16 = 1024MB
punto de chequeo
checkpoint_segments = 64 # in logfile segments, min 1, 16MB each

##En caso de llegar a las max_connection y se requiera entrar, se reserva para superusuario
superuser_reserved_connections = 3
##memoria temporal utilizada por cada sesión para las tablas temporarias y para apertura de tablas en cada sesión
de cada BD
temp_buffers = 32MB # min 800kB

min_wal_size = 1GB
max_wal_size = 2GB
max_worker_processes = 6
max_parallel_workers_per_gather = 3

Las siguientes opciones son de tipo “auditoras” y es solo para verificar


el tiempo de duración de algunas sentencias. Se requiere registrar en el
log las sentencias SQL de tipo Ddl (comandos de definición de datos,
como CREATE, ALTER, DROP, ..) que tengan una duración mayor a
los 10 seg
## tiempo de duracion de la setencias ddl
## para registrar los logs
## 10000 milisengundos equivale a 10 segundos
log_min_duration_statement = 10000

## Permite grabar algunas variable al registro de bitacoras

log_line_prefix = '%t %r %u %d %p '

# Donde :
# - %u = nombre usuario
# - %d = nombre base de datos
# - %r = host remoto y puerto de conexión
# - %p = Número de proceso ID
# - %t = timestamp without milliseconds

## activar el registro de log para las


## sentencias de tipo ddl
log_statement = 'ddl'

Configuración modificar el tiempo y el reciclar conexiones “Time_wait”


en Linux
TIME-WAIT – representa el tiempo de espera para asegurarse de que el TCP remoto recibió el acuse de recibo de
su petición de terminación de conexión.
1. Comprobar el tiempo por defecto
root@server:/~# sysctl net.ipv4.tcp_fin_timeout
net.ipv4.tcp_fin_timeout = 60

2. Reducir el tiempo a 30 segundos, para ello editar archvio “/etc/sysctl.conf”


root@server:/~# nano /etc/sysctl.conf

Efectuar el siguiente cambio:


net.ipv4.tcp_fin_timeout=30

3. Activar opción para “Reciclar” conexiones, para ello editar archivo “/etc/sysctl.conf”
root@server:/~# nano /etc/sysctl.conf

Efectuar los siguiente cambios:


net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1

4. Incluir los cambios en “caliente” al Kernel:


root@server:/~# sysctl -p /etc/sysctl.conf

5. Comprobar los cambios:


root@server:/~# sysctl net.ipv4.tcp_fin_timeout

root@server:/~# sysctl net.ipv4.tcp_tw_reuse

root@server:/~# sysctl net.ipv4.tcp_tw_recycle

También podría gustarte