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.

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

Reply via email to