Re: Cual es el # correcto de CPU que Postgres usa

From: Horacio Miranda <hmiranda(at)gmail(dot)com>
To: "Carlos T(dot) Groero Carmona" <ctonetg(at)gmail(dot)com>, Juan <smalltalker(dot)marcelo(at)gmail(dot)com>
Cc: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>, Lista PostgreSql <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Cual es el # correcto de CPU que Postgres usa
Date: 2019-08-09 00:06:14
Message-ID: 0915ac19-bade-5834-edfc-fa4037c0dc3b@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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(dot)marcelo(at)gmail(dot)com
> <mailto:smalltalker(dot)marcelo(at)gmail(dot)com>> wrote:
>
> Hola a todos,
>
> El mié., 7 de ago. de 2019 2:34 AM, Horacio Miranda
> <hmiranda(at)gmail(dot)com <mailto:hmiranda(at)gmail(dot)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
>> <alvherre(at)2ndquadrant(dot)com <mailto:alvherre(at)2ndquadrant(dot)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
>>

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Ruben Fitó 2019-08-09 05:17:34 Re: Particionar tabla existente PG11
Previous Message Carlos T. Groero Carmona 2019-08-08 23:27:56 Re: Cual es el # correcto de CPU que Postgres usa