Gracias a todos por sus comentarios.
En mi trabajo estamos usando CentOS 6 or 7 y en algunos casos Redhat,
eso es para production por supuesto.
Cuando empece con linux hace algun tiempo atras use Gentoo pero creo
que de alguna manera u otra CentOS/Redhat brindaron la seguridad y
estabilidad que todos queremos en production y se han ganado ese puesto.
Me surgio esta duda porque creo que todos contamos los CPU como # de
sockets x # de cores per socket x # de threads per core
Usando como ejemplo el upgrade que voy hacer proximamente:
Intel Xeon E5-2680 v3 2.5GHz 12-Core model
Tiene 2 sockets, 12 cores per sockets y 2 threads per core, asi que
cuantos CPU decimos 48 jajaja pero en realidad solo tenemos 24 cores
Definitivamente xfs brinda mejor performance que xt4 en mi opinion, la
primera migracion que hice, solia tener un disco SAN con xt4 mi IO
siempre estaba elevado por encima de 90% al punto que no podia
aumentar autovacuum_vacuum_cost_limit a mas de 300 y migre a un
servidor nuevo con SSD utilizando xfs y en estos momentos el % de
utilizacion de IO raramente aumenta del 25% y tengo cost_limit = 1200
y la aplicacion maneja una cantidad absurda the updates.
Horacio muy interesante lo que comentas acerca de: es mucho mejor
tener alta frecuencia de CPU y bajos cores vs cantidad de cores y baja
frecuencia
Lo tendre en cuanta y si es posible pregutare para hacer un
performance test utilizando esta hipotesis.
Gracias...
On Wed, Aug 7, 2019 at 3:32 AM Juan <smalltalker.marc...@gmail.com
<mailto:smalltalker.marc...@gmail.com>> wrote:
Hola a todos,
El mié., 7 de ago. de 2019 2:34 AM, Horacio Miranda
<hmira...@gmail.com <mailto:hmira...@gmail.com>> escribió:
On 7/08/2019 11:08 AM, Carlos T. Groero Carmona wrote:
Gracias Alvaro, solo queria estar seguro pues despues de leer
ese articulo me entro duda...
Actualmente me encuentro trabajando con el equipo de
Performance Test para encontrar la configuracion correcta de
pgbouncer, si logro ejecutar un test reduciendo a 16 en lugar
de 32 les dejare saber los resultados.
Genial, esos grupos de testing son entretenidos, en el caso de
postgresql debes tener el server en Balance, el numero de CPU,
la frecuencia, la configuración de ahorro de energia, la RAM
que tienes, el swappiness cercano a 0, el kernel y hasta el
postgresql compilado con ICC de Intel hacen las diferencias.
Si realmente estas buscando performance mira una distribución
llamada Gentoo ( no es facil, pero si logras instalarla y
compilar postgresql junto con los componentes que necesitas )
usando XFS como Filesystem ( en lo personal me gusta mucho más
que ext4 ) con discos SSD y si puedes un IO Accelerator mucho
mejor.
Hace mucho tiempo uso Gentoo,la ventaja, es que no es distro
binaria,todos mis servers son Gentoo con Postgres,
Son muy estables rápidos y a pesar que tiene un manejador de
packages de fuentes y un portage, una' especie de distro, todo se
configura,es decir si tienes placa ibm compilas todos los paquetes
con soporte ibm (xej) eso hace que sea el ; más rápido, porque
todo se customiza,
A pesar de que tiene un "instalador de paquetes" y. Postgres está
contemplado en a;fin hardware como el tuyo lo compilo a mano, así
todo tiene soporte de 32/64/128 cores , desde la glibc hasta la
librería readline, y obviamente el kernel que también secompila a
mano,aunque hay un paquete que lo automatiza. Prefiero especificar
más a mano, no tiene reval en perfomance y es muy estable,si sabes
lo que haces.
Salu2
El cache de la controladora que sea el más grande puede hacer
la diferencia.
Volviendo a la CPU, lo importante es que los steping de las
CPU sean los mismos y que tengas el max performance
configurado en la BIOS.
La RAM para maximo performance puedes trata de usar la mayor
cantidad de canales posible ( los bancos soportan 8R en los
servidores ) por lo que sí usas memorias 4R solo puedes usar
dos pastillas y sí usas 2R puedes usar tres pastillas de RAM (
imagina que son como un RAID 0 distribuido a nivel de RAM ).
Sobre las CPU el otro factor a considerar es la frecuencia, en
bases de datos CPU intensive, es mucho mejor tener alta
frecuencia de CPU y bajos cores vs grantidad de cores y baja
frecuencia.
Sobre los threads, por ejemplo sí usaras SUN las CPU traen 8
threads/core es decir tener 64 threads son solo 8 cores... que
las CPU tengan más threads no es algo malo, es solamente dejar
las instrucciones listas para que la CPU las maneje, en Linux
cuando compilo se recomienda tener threads * 2 + 1 ( es decir
en tu caso se puede compilar con 65 threads. :D me imagino que
esta regla no aplica a las bases de datos, en mi caso miraría
el el queue de la CPU, si el valor sube más de 4, algo no esta
bien y deje ajustarse.
El tema me gusta, hago tunning de maquinas, esa es mi pega
actualmente. Espero que esto te ayude en alguna medida. ( ojo,
yo no usaría gentoo en PROD a menos que este muy seguro ), lo
use una vez y es entretenido cuando se rompe ( que es facil de
romper ) pero si no lo tocas anda muy fuerte bien configurado.
Saludos,
Carlos
On Tue, Aug 6, 2019, 4:27 PM Alvaro Herrera
<alvhe...@2ndquadrant.com <mailto:alvhe...@2ndquadrant.com>>
wrote:
Hola
Carlos T. Groero Carmona escribió:
> Estamos planeando hacer una mejora en el Numero de CPU
the los servidores y
> me surge la siguiente pregunta. Cual es el numero
correcto de CPU que
> debemos utilizar en la configuration de postgres?
La cantidad considerando hyperthreading (32 en tu caso)
está bien.
Puedes medirlo si quieres (ie. usando un benchmark
representativo de tu
carga real, comparar cuántas TPS da con cada
configuración). Obviamente
hay muchos otros parámetros que ajustar para encontrar el
punto óptimo.
--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA,
Training & Services