MySQL no utiliza múltiples CPU

MySQL no utiliza múltiples CPU

Nuestro servidor MySQL ha estado usando mucha CPU últimamente (ha alcanzado el 100% varias veces y permanece así por un tiempo) y noté que toda la carga de la CPU está en un núcleo de una CPU. Esperaba difundir eso a los 4 en mi servidor.

He estado modificando la configuración de MySQL para usar más RAM y menos CPU, pero ocasionalmente todavía alcanza un uso de CPU muy alto.

Parece que todo lo relacionado con el tema se refiere a thread_concurrency (que, según he leído, es una configuración exclusiva de Solaris). ¿Qué puedo hacer en Linux?

Gracias.

Respuesta1

Tienes razón, thread_concurrency es solo para Solaris y está obsoleto en MySQL 5.6 en adelante. No creo que puedas usar múltiples núcleos/cpus con MyISAM. Para utilizar completamente el hardware, utilice InnoDB.

Estepodría ayudarte a entender mejor las cosas.

Respuesta2

El valor correcto para esta variable depende del entorno y la carga de trabajo. Deberá probar una variedad de valores diferentes para determinar qué valor funciona para sus aplicaciones. Un valor recomendado es 2 veces la cantidad de CPU más la cantidad de discos.

El rango de esta variable es de 0 a 1000. Un valor de 20 o superior se interpreta como concurrencia infinita antes de MySQL 5.0.19. A partir de la versión 5.0.19, puede deshabilitar la verificación de concurrencia de subprocesos estableciendo el valor en 0. Deshabilitar la verificación de concurrencia de subprocesos permite a InnoDB crear tantos subprocesos como necesite.

http://dev.mysql.com/doc/refman/5.0/en/innodb-parameters.html#sysvar_innodb_thread_concurrency

Respuesta3

Para hacerlo simple, cada consulta ejecutada en MySQL usa solo 1 núcleo de CPU, independientemente de cuán multinúcleo sea el motor InnoDB.

Todas las optimizaciones de múltiples núcleos dentro de MySQL ayudan cuando tiene muchas consultas diferentes ejecutándose al mismo tiempo y exigen CPU y datos, pero si tiene alguna consulta importante que tarda minutos/horas en completarse, siempre usará solo 1 núcleo de CPU. (Y si debe tener este tipo de consultas, debe comprar servidores con mayor velocidad de CPU y menos núcleos).

información relacionada