Otro tema a considerar es NUMA

https://www.enterprisedb.com/blog/solving-cache-line-contention-large-numa-systems

Que las redes sean LAG lo que mas puedas entre cliente y server.

etc. mira cada capa y que sea paralelo y activo-activo.

On 9/08/2019 11:27 AM, Carlos T. Groero Carmona wrote:
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

Reply via email to