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)
