[Linux] De las comparativas (benchmarks) y otras justificaciones

Introducción

En un comentario anterior, el compañero Piccoro, hace una remembranza de unas pruebas de rendimiento que hiciera hace ya mucho Sun Microsystems  (antes que la comprara Oracle Corp.) sobre sus conocidos equipos SunFire, estas pruebas de rendimiento (conocidas como las “SPECjAppServer2004”) realizadas en 2007, ahora no están al alcance del público (aunque pueden aún ser encontradas en mi dropbox) pero demuestran el rendimiento de una misma aplicación, optimizada en estos equipos para Oracle, postgreSQL y MySQL.

¿Qué descubrimos con esta prueba?, veamos!.

La prueba Java (antes que fuera de Oracle)

MySQL 5 fué instalado en un equipo con las siguientes características:

  • Sun Fire X4100 (2×285,4x2GB,2X73GB) (2)
  • Sun StorEdge 3320, 12x73GB, 1 RAID CONT
  • Single-Port PCI Ultra320 SCSI HBA

Costo de la Licencia: 0$
Costo de implantación : 59.260 US$
MySQL: 720 JOPS

PostgreSQL 8.2 fué instalado con estas características:

  • Server HP Integrity rx2660 1.6Ghz 18GB 4-core (2)
  • 12GB DDR2 memory pair
  • SAN Array 1000

Costo de la Licencia: PostgreSQL 8.2 (0 US$)
Costo: 70.701 US$
Puntaje: 778 JOPS

Y Oracle 10g fué instalado con las siguientes características (semejantes a PostgreSQL)

  • Server HP Integrity rx2660 1.6Ghz 18GB 4-core (2)
  • 12GB DDR2 memory pair
  • SAN Array 1000

Costo de implementación: 70.701 US$
Licencias: Oracle 10g Enterprise + Oracle App Server + Oracle Partition Option
Costo en Licencias: 120.000 US$
Puntaje: 874 JOPS

Las pruebas, aunque en el mismo hardware físico gana Oracle (por al menos unos 70 puntos), demuestran que necesitas gastar 200US$ por unidad adicional para poder implementar Oracle, es decir, que con el costo *únicamente* de las licencias Oracle podrías incorporar 2 nodos más al cluster postgreSQL; qué, manteniendo la proporción de crecimiento, implementar un único servidor Oracle a 874 JOPS cuesta lo mismo que implementar un cluster de 3 nodos postgreSQL (ejecutandose a un rendimiento de 2334 JOPS).-

¿Cierto o falso?, queda a criterio del lector, la EULA de Oracle prohibe terminantemente la realización de pruebas y publicación de resultados sin su autorización, so-pena de recibir acciones legales, pero como yo no hice el benchmark!😉

pero revisemos otro benchmark.

Cuándo VMWare decidió no publicar “malos benchmarks”

En una aclaratoria en su blog, la gente de VMWare explica que la clausula de la EULA (End-User License Aggrement) donde se prohíbe terminantemente la publicación de benchmarks de su producto versus otros productos de virtualización, no es porque “ellos estén en contra de las pruebas”, sino que le “sugieren amablemente” a las empresas encargadas de hacerlas, a que optimicen su producto y sólo utilicen el hardware que a “ellos” les es más conveniente, ¿interesante, no?.

Hace ya algún tiempo, la gente de specs.org publicaron una comparativa entre VMware ESX, la solución de virtualización para datacenters, y Linux KVM sobre Red Hat 6.1, resumiendo la conclusión:

KVM: SPECvirt_sc2010 1820 @ 114 VMs

VMWare: SPECvirt_sc2010 2721 @ 168 VMs

114 máquinas virtuales versus 168 es bastante, ¿no?, 900 puntos de diferencia en cuánto a rendimiento, también, ¿verdad?, pero, veamos a los detalles:

Primero, el equipo “sugerido” por VMWare para la prueba:

CPU: Intel(R) Xeon(R) X7560
Velocidad: (MHz) 2266
Núcleos: 32 cores, 4 chips, 8 cores/chip, 2 threads/core

Y el equipo con Red Hat:

CPU: Intel Xeon E7-2870
Velocidad: (MHz) 2400
Núcleos: Cores 20 cores, 2 chips, 10 cores/chip, 2 threads/core

El último es un simple HP Proliant Generación 7 (a un costo de 16800US$), el primero es un equipo ensamblado “especificamente” para VMWare, por su partner Bull Novascale, el “Novascale Bullion” fué catalogado como “el equipo para datacenter x86 más rápido del mundo” en 2011 y tiene un costo de 25 mil dólares la unidad.

Si a eso le sumamos la licencia de VMWare ESXi (9200 dólares por cada 2 núcleos), la cosa quedaría *más o menos* así:

KVM: Red Hat Licencias (Server=6500$ + Virtualización=6700) = 13200$
Servidor: 16800$
Total: 30000 US$
Costo: 263 dólares por VM (máquina virtual)

VMWare: Licencia=9200$ x 16 cores = 147200US$
Servidor: 25000 US$
Total: 172200 US$
Costo:  1025 US$ por VM (máquina virtual)

Entonces, ¿dónde está el rendimiento y el abaratamiento de precios?, además, hagamos algo bastante “jocoso”, reemplacemos Red Hat por Debian Linux (que el valor de siu licencia es “0$” – se lee cero!-) y te darás cuenta que por el mismo precio de la implementación de VMWare en tu empresa podrías pagar 11 servidores Proliant con GNU/Linux, ¡En vez de un equipo, tendrías un datacenter!  donde podrías en promedio (y según las cifras de Debian) virtualizar 990 máquinas virtuales.

A mí, me enseñaron que 990 VMs > (se lee, “es mayor qué”) 168 VMs, ¿no creen?.

Saquen ustedes sus propias conclusiones.

Acerca de phenobarbital

http://about.me/phenobarbital

Publicado el 30 julio 2012 en Blogeando!, Cultura Libre, Databases, La nota del día, Linux, PlanetaLinux, Software Libre, trucos de la abuela, Virtualizacion y etiquetado en , . Guarda el enlace permanente. 15 comentarios.

  1. esperando terminar para que alimentes este y el articulo de postgres.. tranquilo pueblo tranquilo..

  2. Cada vez me gusta mas lo que publicas, excelente.

  3. hey se me olvido criticar que olvidas colocar notar que en el caso de el oracle todas las apps son 64bit mientras los conectores de portgres son 32 bit y la JVM es 32bits, ademas no es lo mismo conectar postgres con JDBC que con su propio conector.. en este caso se tuvo que remitir a JDBC ya que no existe otro para oracle (en esa epoca) mas que el instant client y los devel files..

  4. El problema que tienen las empresas para usar estas implementaciones libres, aunque sean mucho mejores y más baratas, es el soporte. Lamentablemente los que tomas las decisiones al final son los gerentes (que saben muy poco de tecnología y mucho de como generar dinero) y si no tienen una garantía de que si sucede algo alguien se hace responsable y corre con las consecuencias (económicas, legales, técnicas, etc) que pueda haber en un fallo, pues no la consideran. Un gerente o quien tome las decisiones le interesa saber más cuanto tiene que pagar, cuanto va a ganar y cuanto puede perder, todo en términos financieros. Y esa es la realidad (y tiene mucha lógica), en el mundo empresarial.
    Ciertamente esto está cambiando poco a poco, sobre todo cuando en la empresa puede contar con personal capacitado que pueda asumir estos retos y riesgos, y sobre todo que sepa explicar en los términos que entiende la alta gerencia, es decir en términos de dinero.

    • tu comentario es igual a esos gerentes, estas trtando de estar “con dios y con el diablo” eso se nota al colocar “y mucho de como generar dinero)” lo cual si fuera cierto no generaran perdidas.. como refuto esto:simple, google y “faisbuk”, sus creadores son genrentes, que ahora saben hacer dinero y creo muuucho mejor que estos que no saben de tecnologias…
      los gerentes no saben hacer dinero, lo que saben es hacer politica, con la politica establecen convenios, como usar mocosoft en el proyecto magallanes de intel asi ambas companias se beneficiaban y el estado era el simple comprador ( mismo proyecto que se uso en canaima el cual es 40% productivo apenas por ser una copia en barrida de ideas mal aplicadas), ya que hay muchas aplicaciones alli que se tienen que ajustar pero nadie que sabe contribuye porque termina saliendo “el canaima educativo” en vez de el proyecto independiente propio..

      lee mi comentario ma abajo para que sepas que sucedio con mis pruebas..

  5. creo debrias modificar esta entrada.. ruego leas buen lo que paso, ya no se haran las pruebas..

    pretendia con esta oportunidad realizar una pruebas, estaba todo listo (inclusive hay tres de esos dell 3400 no se que pra cada caso conectados a una misma SAN) y de repente salio la mala noti (buena para mi, mala para el software libre), queria presentarlas como las de sun spec 2004, solo faltaban data que ya se estaban cuadrando..

    ahh pero como postgres usa una variante de plSQL por alli agarro cuerpo al cosa y con la premisa de que “es mas facil portar un procedimiento plsql de postgres a oracle” se resolvio usar postgres en el desarrollo ( y en primeras fases de produccion) para luego mudar a oracle cuando se adquiera la licencia (de uno a dos anios aprox)

    pero porque? PORQUE “EL SOFTWARE LIBRE ES GRATIS” asi que usaran algo gratis en produccion para que no limite la concurrencia de conexiones (ya que en sybase y oracle la licencia mas barata es por conexciones de usuarios)

    triste que por mas que se explique, la filosofia de software libre es muy semejante a la socialista (que si se aplicara nuestro mundo seria una utopia que nunca sera posible) LOS GERENTES Y EMPRESARIO SOLO VEN ESE SOFTWARE EN TERMINOS DE COSTE DIRECTO (entrenamiento vs inversion) y nunca lo ven a largo plazo.. ya que queren resultados rapidos… esto es porque pensaban coprar una licencia pequeña y esta estaba limitada en la concurrencia de conecciones de usuarios vs datos solicitados (no entendi muy bien pero hay varios niveles en al de sybase anywhere que es la que instala en cualqueir pote de hardware)

    no entiendo como no les importo el basamento tecnico y el esfuerzo de trabajo extra de despues de tener algo corriendo haya que migralo a oracle.. que terminaria siendo mas plata!!!!!!!!!!! o son brutos o son masoquistas, pero ello evidencia el que ningun empresario quiere algo con software linux o libre..

    cuando vieron que no habian limitantes en la aplicatividad vs el coste, dijeron que estaba bien “mientras tanto”… es decir que solo ven lo gratis vs la limitantes..

    la filosofia del software libre poco le importa a los empresarios que solo ven los tereminos de “gratis” y “limitantes” y cuando se les dice para ponerlo en produccion solo indican que si es gratis es chimbo, o que nadia sabe nada de eso (realmente es asi, los que realmente saben de linux no entran a trabajar como ellos desean)….

    asi que migre todas las DB que estaban “probandolas” (redmine con sqlite, codeignier con mysql, portar usvn a postgres, phppassmanager que por cierto no se pudo por que postgres tiene peos al pasar utf8 por tcpip) a postgresql para asegurar la continuidad y deseharon las pruebas que ayudarian a demostrar la superiorida del software libre…

    • phenobarbital

      PostgreSQL no tiene peos con UTF8, lo que tiene peos es la gente que no define bien los charsets de sus clientes … trabajan desde windows con iso-8859-1 y pretenden que eso se convierta automágicamente a utf8 o viceversa …

      • no vale, revisa el codigo de phppassmanager en sourgeforce, cuando paso por php caracteres raros postgres no me lo recibe (que es correcto) por estandares, mientras mysql si.. intente pasar a postgresql ese phppassmanager pero me fastidie de jugar con php y tcpip, estoy muy full para eso..

        termina de leer el comentario..

  6. phenobarbital

    Eso, de phppassmanager es precisamente un peo del cliente, no de postgreSQL, es una mala implementación de la negociación de las locales y el charset desde el cliente a la DB … lo he visto en miles de aplicaciones …

    • yo dije lo mismo al principio, y viendo el codigo dije lo mismo pero depues fui al api de php5 y esa es una de las principales diferencias entre usar mysql y postgres con claves md5 y hash.. en serio ve el codigo antes de opinar.. y termina de leer el comentario

      • phenobarbital

        PHP5 no es un lenguaje UTF8-ready, tienes que procesar las cadenas con funciones de mbstring antes de usarlas, o en su defecto, cambiar el modo de conexión por defecto en la base de datos a latin1, lo bueno de las bases de datos es que la conexión la puedes cambiar al charset y al collation que necesites y de eso se encarga la librería, a veces la gente olvida eso … creen que todo será “auto-mágico” y gestionado por la API de tu lenguaje.

        Pero en fin … cada quien es libre de pensar lo que desee …

      • err si, en realidad es una limitante de la parte de php para postgres.. dame unas horas para pegar la instruccion .. en realidad tienes razon en parte ya que el desarrollador original de phppassmanager se aprobecho de las “bondades” que creyo magicas como dices..

  7. OS LINUX PARA MI ES LO MEJOR Y ES EL SISTEMA QUE USO

  8. Es muy grato leer tanta información junta, empecé leyendo sobre “las comparativas (benchmarks) y otras justificaciones” y gracias a los comentarios ya tengo “ruído”(por así decirlo) acerca de php, phppassmanager, UTF8. Este blog tiene muchas informaciones VALIOSAS.

    • tengo nueva info…

      se trataron de cargar unos miles de registros en archivo de texto plano en un DELL T110 4 nucleos y 4G ram, raid 0 7500RPM

      DB oracle 11g ultima, redhat windoserisimo, configurado tal cual dice oracle..

      los datos no cargan, cada archivo pesa aprox 1G en promedio…

      la maquina se queda pegada..

      esto demuestra que redhat y formulas windoseras es una mierda..

      en misma formula cambiando a debian, cargan en 30 minutos cada archivo, incluso menos…

      en postgres cargan en 10 minutos.. con debian obviamente.. dare detalles en unos meses de esto…

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: