Re: Servidores grande y su maximo rendimeinto

From: Fernando Hevia <fhevia(at)gmail(dot)com>
To: Fabricio <fabrixio1(at)hotmail(dot)com>
Cc: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>, pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Servidores grande y su maximo rendimeinto
Date: 2014-08-22 23:05:53
Message-ID: CAGYT1XRGXamv=k2UdX+g=3812NqLAvq6qMkUHvfxRgdWy6T6Kg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

2014-08-22 16:51 GMT-03:00 Fabricio <fabrixio1(at)hotmail(dot)com>:

>
> Buen día.
>
> Me gustaría conocer su opinión sobre que tan escalable puede llegar a ser
> PostgreSQL.
>
> Por ejemplo si hayun servidor de 64 cores y 128GB de RAM y este da un
> rendimiento aproximado de 900 operaciones por segundo atendiendo alrededor
> de 700 usuarios, ¿Qué debería esperar de un mainframe o un power con
> cientos de cores y memoria? es decir, ¿La base de datos no tiene alguna
> limitante en cuanto a concurrencia u operaciones máximas que pueda procesar
> y me procesara muchas mas con servidores mas robustos?
>
> Gracias de antemano, saludos.
>

Mi primer pensamiento es que la aplicación debe estar horriblemente
programada para que necesites semejante hardware para producir 900 tps. El
segundo es que debe haber grandes posibilidades que ni los cores ni la ram
tengan que ver con ese límite sino que la contención se produce a nivel de
IO. Tal vez quieras darnos más info. ¿De que se trata el sistema, que
actividad tienen típicamente esos 700 usuarios, cual es tu storage, que
connection pooler usas y donde estás tocando los límites? Ese es un buen
punto de partida. Con simplemente agregar más hardware me temo que no verás
los resultados que esperas.

Si bien Postgres viene haciendo sólidos avances versión a versión para
mejorar su escalabilidad vertical, siempre hay un punto donde un proceso
extra en lugar de sumar restará a la performance del sistema. Entonces la
respuesta es si, existen limitantes inherentes a la arquitectura y código
de Postgres que limitarán o incluso degradarán la performance pasada cierta
cantidad de backends concurrentes. El punto exacto depende mucho del tipo
de carga que le arrojes pero me imagino que con 64 procesadores debes estar
ya en el límite.
No tengo ninguna base corriendo sobre más de 16 cores y en todos los casos
la contención se da a nivel de IO así que lamentablemente no puedo
compartir experiencia práctica. Lo que si puedo decir es que en mi
experiencia el 90% de los casos de problemas serios de performance la
solución vino por optimizar el código de la aplicación. A nivel de la base
un connection pooler y el particionado de tablas son dos recursos de fácil
implementación que permiten escalar enormemente la performance.

Esta es una presentación interesante sobre las mejoras que introdujo 9.2
sobre su predecesor al respecto:
http://wiki.postgresql.org/images/e/e8/FOSDEM2012-Multi-CPU-performance-in-9.2.pdf

Saludos,
Fernando.

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Fabricio 2014-08-22 23:47:34 RE: Servidores grande y su maximo rendimeinto
Previous Message Fabricio 2014-08-22 19:51:13 Servidores grande y su maximo rendimeinto