RE: Servidores grande y su maximo rendimeinto

From: Fabricio <fabrixio1(at)hotmail(dot)com>
To: Fernando Hevia <fhevia(at)gmail(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:47:34
Message-ID: SNT148-W133BBEF07BB8AAD47FCA64FED00@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Gracias Fernando, estoy completamente de acuerdo contigo sobre los problemas de performance que puede haber sobre todo por causa de la aplicación, me han tocado muchos. Hablando de escalabilidad vertical me ayuda mucho tu comentario y la url.
Saludos.

From: fhevia(at)gmail(dot)com
Date: Fri, 22 Aug 2014 20:05:53 -0300
Subject: Re: [pgsql-es-ayuda] Servidores grande y su maximo rendimeinto
To: fabrixio1(at)hotmail(dot)com
CC: alvherre(at)2ndquadrant(dot)com; pgsql-es-ayuda(at)postgresql(dot)org

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

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Emanuel Calvo 2014-08-23 00:15:47 Re: 32 bits, 64 bits, slony 2.2
Previous Message Fernando Hevia 2014-08-22 23:05:53 Re: Servidores grande y su maximo rendimeinto