Guido, Alejandro

Hay algunas cosas de las que me recomiendan que estamos haciendo, pero hay
otras que no conocíamos, así que me dieron muy buena data para seguir
investigando, *muchas* gracias!

Abrazos

Jose


On Tue, 31 Aug 2010 13:52:37 -0300, Alejandro Gramajo <[email protected]>
wrote:
> Hola,
> 
> tal cual dice Guido, sino tenes un buen hardware no aprovechas el
> máximo de Percona.
> No te va a consumir mas recursos que otro fork de MySQL.
> 
> Para tu caso de conexiones concurrentes no vas a tener problemas con
> usar el branch de MySQL 5.1.x, es mi recomendación.
> 
> Ahora bien si algún día tu aplicación crece mucho, acá te dejo un
> ejemplo de cosas que se pueden hacer:
> 
> Tengo un par de clientes donde se usan MySQL 5.1 (tablas InnoDB y
> MyISAM), se llegan a las 4000 queries por segundo (qps) de pico y el
> hardware es 16gb ram, dual quad xeon ("8 threads") y tablas de
> millones de registros.
> 
> Realmente se notan las mejoras en InnoDB, los queries como UPDATE y
> REPLACE lockean las base, ahi es donde XtraDB/InnoDB es mas
> performante en ambientes multithread (con multiples micros y mucha
> ram).
> 
> Pero cuando estamos en estos números de qps no alcanza solo con
> descansar tranquilo en eso, estas son algunas otras mejoras que se
> pueden hacer:
> 
> - lib de Malloc de Google, que es mejor que Malloc tradicional para
> multithreading.
> http://goog-perftools.sourceforge.net/doc/tcmalloc.html
> - el patch de Percona de UserStatsV2 es muy bueno ya que te da
> estadísticas adicionales
> - Sphinx, para indexar búsquedas de texto (no usar MyIsam es lento
> para muchos GB)
> - Memcache, para cachear lo mas que puedas en ram y no preguntarle
> mucho a la base
> - MySQL slaves, distribuir los SELECT entre otros servers aliviana la
> carga del Master, donde generalmente van los INSERT, UPDATE (tambien
> podes tener un multi master, pero tenes que tener otros cuidados
> especiales)
> - optimización de código y revisar queries lentas (revisar con
> EXPLAIN, hacer profiling)
> - medir todos los parámetros de los servicios que necesites para tu
> aplicación
> - sesiones en ram (tablas en ram, memcache u otros)
> - sharding de los datos (dividir las tablas grandes por algún criterio)
> - revisar tu my.cnf (leer ejemplo de my-huge.cnf)
> - usar herramientas como mysqlreport y mysqlsla
> - leer: High Performance MySQL (libro)
> - leer: http://forge.mysql.com/wiki/Top10SQLPerformanceTips (es básico
> pero ayuda)
> - etc
> 
> Después hay cosas de cada aplicación, en este caso no todas las tablas
> son InnoDB ya que no es tan rápido como MyISAM pero claro perdés
> seguridad porque no tenes transacciones (ganas velocidad).
> 
> No usar count(*) en InnoDB ya que realiza una estimación y tarda, no
> es como MyISAM que es exacto porque mantiene un indice especifico.
> Luego InnoDB se fragmenta porque va dejando huecos de lo que borras
> para acelerar el proceso insercion y borrado, por eso cada tanto es
> conveniente volver a rearmar la base (en realidad si el espacio en
> disco no es un problema no hay porque hacer esto)
> 
> Bueno y así, hay muchas cosas a tener en cuenta, creo que ya me
> extralimite con lo que vos preguntabas de Percona, pero creo que es
> importante que sepas que no todo es responsabilidad de la base de
> datos, mucha gente le pone el mega hardware pero sigue con problemas,
> porque claro la aplicación tiene otros problemas o el cuello de
> botella se encuentra en un lugar especifico.
> 
> En mis casos, yo trato de usar el branch "oficial" 5.1.x con los
> patches de Percona que me interesan.
> 
> Saludos.
> 
> --
> Alejandro
> http://blog.baicom.com/
> 
> 2010/8/31  <[email protected]>:
>>> El 31/08/10 00:16, [email protected] escribió:
>>>> Como bien dice Alejandro, necesitás hardware y una aplicación que lo
>>>> aproveche.
>>>>
>>>> Yo migré hace poco a los builds de percona y noto una mejora mínima
en
>>>> la
>>>> performance. Principalmente lo hice porque necesitaba un build de
mysql
>>>> mas actualizado que el que viene con mi distro, y percona me permitía
>>>> tener mi NO bleeding edge distro con un mysql mucho mas nuevo.
>>>>
>>>> La versión nueva del mysql traía algunos errores graves resueltos de
>>>> la
>>>> 5.0 con los que venía sufriendo.
>>>
>>> Guido, Alejandro, muchas gracias por los datos.
>>>
>>> La aplicación con la cual lo estoy usando no hace uso de los features
>>> que tiene InnoDB, sin embargo por política del cliente no se puede
usar
>>> una DB no transaccional.
>>> Es por eso que estamos investigando alternativas y encontramos
Percona.
>>> Ahora, cuando dicen que "necesito hardware"... de cuanto fierro
estamos
>>> hablando? es decir, Percona consume muchos más recursos que un MySQL
>>> estandar bajo las mismas condiciones de trabajo?
>>>
>>> Alejandro, vos comentás que la máxima ventaja se nota con miles de
>>> conexiones por segundo... tu experiencia de cuantas miles es?
>>>
>>> Ahora no tengo los logs a mano (luego lo confirmo), pero si la memoria
>>> no me falla, la aplicación, con cerca de 40 usuarios trabajando
llegaba
>>> a tirarle por momentos entre 400 y 700 queryes por segundo aprox a la
>>> DB. Esto en el mediano plazo va a crecer y se esperan 200 usuarios
>>> simultáneos en un par de meses.
>>>
>>> Abrazos, muchas gracias!
>>> --
>>
>>
>> Lo que yo quería decir, y estimo que Alejandro también, es que sino
>> tenés
>> power no aprovechás el build de percona. Para tener una pc con 2gb de
>> ram,
>> es lo mismo que uses el build oficial que el de percona. Lo aprovechás
>> cuando tenés mucha ram para destinar al mysql. Ahí se empieza a notar
la
>> diferencia, que no es grande.
>>
>> Yo tengo un promedio de 1000 qps y va tranquilo con mis 8GB de ram y 2
>> micros quad core una aplicación que usan centenas de usuarios.
>>
>> Pero tengo todo en innodb, y en estos días me parece que voy a
>> triplicarle
>> la ram.
>>
>> --
>> Para desuscribirte tenés que visitar la página
>> https://listas.linux.org.ar/mailman/listinfo/lugar-gral/
>> Usuarios Software Libre Argentina (USLA)
>>
> --
> Para desuscribirte tenés que visitar la página
> https://listas.linux.org.ar/mailman/listinfo/lugar-gral/
> Usuarios Software Libre Argentina (USLA)
--
Para desuscribirte tenés que visitar la página
https://listas.linux.org.ar/mailman/listinfo/lugar-gral/
Usuarios Software Libre Argentina (USLA)

Responder a