From: | raul andrez gutierrez alejo <raulandrez(at)gmail(dot)com> |
---|---|
To: | Mario Sileone <msileone(at)gmail(dot)com> |
Cc: | "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: [pgsql-es-ayuda] Optimización del WAL/BGWriter |
Date: | 2014-05-13 14:42:48 |
Message-ID: | CAHQFj70yNHQ0+AOjg1Vw6=H+o6j1yF8N757GuGFu+o2Kb=xUTg@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
hola Mario.
yo administro una db que realiza 4millones de tranaciones por hora y esta
configura una SAN "rapida" de 50GB la partcion para los pg_xlog(WAL) y en
otra SAN mas lenta los pg_data, esta configurado el pg_xlog "tan grandre"
para poder almacenar sifiecientes WALs mientras se sincroniza algun
esclavo, no se que tipo de disco tenga, pero puedes pensar en tener un SSD
que tiene mejor rendimiento.
Tambien puede pensar en desactivar el uso de barrier en las particiones,
esto es algo arriesgado y solo se puede hacer si confia el 200% en su
unidad de respaldo de potencia(2 fuentes redundante conectadas cada una a
una UPS diferente y cada UPS en un "taco" electrico diferente), al
desactivar la barrier cuando se realiza un comit el SO retorna que ya se
escribio en disco duro el comit, pero en realiadad está en la cache del
disco duro, si una consulta lee este dato el disco retorna la informacion,
pero si hay una perdida de energia esa ultima informacion menor a 1 o 2
segundos se puede perder lo cual puede generrar corrupcion de datos.
http://www.postgresql.org/docs/9.0/static/wal-reliability.html
un parametro que puede mejorar el rendimiento del disco es desactivar
"enable_material" pero solo existe apartir de 9.0.
http://www.postgresql.org/docs/9.0/static/runtime-config-query.html
El 13 de mayo de 2014, 8:49, Mario Sileone <msileone(at)gmail(dot)com> escribió:
> Estimada lista:
> Tenemos un servidor con una alta carga de Inserts y Updates (mas de 5
> millones diarios) y me gustaría saber si alguien ha tenido experiencia en
> la optimización del WAL para bases de datos con similar carga.
> Trabajamos en un Servidor de 16 núcleos (2x8 si mal no recuerdo) y 24
> GB de RAM cn CentOS 6.
> Tenemos tablas paticionadas por mes, donde se insertan +2.000.000 de
> registros diarios y por supuesto, muchas consultas entre fechas de estas
> tablas, sumado a post procesos que generan un alto nivel de IO en el
> servidor.
> Actualmente estamos en Postgres 8.4, y en breve pasaremos a Postgres
> 9.2, pero mientras tanto necesitamos optimizar la carga actual en 8.4.
> Lo que no tengo claro es si, estiramos el tiempo de checkpoints o
> límite de bloques, la escritura se hace completa de todos los bloques o
> sólo las tuplas limpias (en caso de los updates) o si modificar otras
> configuraciones como el bgwriter_, checkpoint_, etc. podemos llegar a sacar
> un poco más de jugo a nuestro servidor actual.
>
> Actualmente, la consulta pg_stat_bgwriter nos brinda esta información:
> checkpoints_timed checkpoints_req buffers_checkpoint buffers_clean
> maxwritten_clean buffers_backend buffers_alloc
> 259 40 6451702 40354 213 350116 4088648
>
> Alguna sugerencia?
>
> Desde ya muchas gracias y saludos
>
> --
> Mario Sileone
>
>
> -
> Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org
> )
> Para cambiar tu suscripción:
> http://www.postgresql.org/mailpref/pgsql-es-ayuda
>
--
Raul Andres Gutierrez Alejo
From | Date | Subject | |
---|---|---|---|
Next Message | Mario Sileone | 2014-05-13 15:02:55 | Re: Optimización del WAL/BGWriter |
Previous Message | Mario Sileone | 2014-05-13 13:49:58 | Optimización del WAL/BGWriter |