Autor
|
Tema: MySQL consume 300% de CPU (Leído 9,325 veces)
|
ccrunch
|
Hola a todos, los que lean este tema y ya me conozcan (porque ya pregunté algo de optimización de MySQL) se van a cagar de risa pero bueno A ver, tengo un servidor con una web y estoy viendo en los procesos del TOP que consume 300%. Yo la verdad es que me encargo de mantenerlo, tanto apache, como servidor correo, MySQL, cron, scripts, etc, pero es que esto no tengo ni idea de qué pasa Me podéis dar consejos sobre cómo intentar ver cuál es el problema? En google vi un script que te dice más o menos qué hay que modificar, pero quisiera algo más... creíble Me podéis ayudar? Salu2 y gracias a todos!
|
|
|
En línea
|
|
|
|
|
ccrunch
|
Muchas gracias, como siempre ayudando a los demás Le echaré muchos vistazos, porque me hace falta Gracias de nuevo.
|
|
|
En línea
|
|
|
|
6666
Desconectado
Mensajes: 146
Wikileaks.org
|
Estas solicitando consultas a varios registros a la vez de gran tamaño u solicitando una funcion mysql de uso general cientos de veces, como es math() . revisa todas las propiedades de la tabla y bases, igualmente para las consultas de busqueda.
|
|
|
En línea
|
|
|
|
|
moikano→@
Desconectado
Mensajes: 572
Cultiva tu mente y cuerpo, son tu única propiedad
|
El mismo mysql te puede hechar una mano para saber que consultan cuestan mas. En el fichero /etc/my.conf puedes añadir estas dos líneas. long_query_time=1 log-slow-queries=/var/log/mysql/log-slow-queries.log
La consultas que cuesten mas de un segundo se guardarán en ese log. También puedes hacer lo siguiente por consola de mysql para saber que procesos hay y cuales se quedan colgados y cuanto tiempo llevan. Si lo quieres ver como un htop puedes ejecutar este comando para ver lo mismo que el show pero en tiempo real y con mas datos. Este comando directamente por consola bash. Suerte.
|
|
|
En línea
|
|
|
|
ccrunch
|
La info del mysql me da esto: Uptime: 1323861 Threads: 7 Questions: 108110567 [b]Slow queries: 11816[/b] Opens: 133651 Flush tables: 1 Open tables: 64 [b]Queries per second avg: 81.663[/b]
Eso en negrita por lo visto está un poco mal, cómo puedo detectar esas consultas? He creado el log para las slow-queries y el fichero de momento está vacío, aunque haya hecho esto: mkdir /var/log/mysql touch /var/log/mysql/log-slow-queries.log chown mysql.mysql -R /var/log/mysql Salu2
|
|
|
En línea
|
|
|
|
el-brujo
|
81 consultas por segundo no está nada mal, me refiero que son bastantes consultas por segundo.
Parece que tienes muchas slow queries. Se guardará la consulta en el fichero log-slow-queries.log que duren más de un segundo (long_query_time=1)
Y estás usando el motor InnoDB
Copia y pega el contenido del fichero my.cnf para ver la configuración que estás usando.
¿Qué versión de MySQL estás usando? Me refiero a la rama 5.5?
|
|
|
En línea
|
|
|
|
moikano→@
Desconectado
Mensajes: 572
Cultiva tu mente y cuerpo, son tu única propiedad
|
He creado el log para las slow-queries y el fichero de momento está vacío, aunque haya hecho esto: Has probado a reiniciar mysql? si no no lo creará
|
|
|
En línea
|
|
|
|
ccrunch
|
[mysqld] bind-address=127.0.0.1 local-infile=0 datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0
ft_min_word_len = 1
[mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
#queries lentas long_query_time=1 log-slow-queries=/var/log/mysql/log-slow-queries.log
Has probado a reiniciar mysql? si no no lo creará Lo sé pero como hay consultas y escrituras en la BD es por miedo a que se corrompa. Salu2 a los dos y gracias!
|
|
« Última modificación: 2 Diciembre 2014, 18:56 pm por ccrunch »
|
En línea
|
|
|
|
|
|