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

From: "Carlos T(dot) Groero Carmona" <ctonetg(at)gmail(dot)com>
To: Juan <smalltalker(dot)marcelo(at)gmail(dot)com>
Cc: Horacio Miranda <hmiranda(at)gmail(dot)com>, 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-08 23:27:56
Message-ID: CABh6Tc1egzMbCrq_nW-vw5aFm7_SQtrt-s3aeupk6MV3e9Dixw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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> wrote:

> Hola a todos,
>
> El mié., 7 de ago. de 2019 2:34 AM, Horacio Miranda <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>
>> 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

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Horacio Miranda 2019-08-09 00:06:14 Re: Cual es el # correcto de CPU que Postgres usa
Previous Message kernel 2019-08-08 17:35:16 Re: Problemas de tamaño/recodificacion