Foros del Web » Administración de Sistemas » Cloud Computing »

Uso de CPU de MySQL disparado

Estas en el tema de Uso de CPU de MySQL disparado en el foro de Cloud Computing en Foros del Web. Hola, Antes de nada comentaros que antes de escribir el post pidiendo ayuda, llevo varios días trasteando por internet , buscando una solución... que no ...
  #1 (permalink)  
Antiguo 25/08/2013, 14:59
 
Fecha de Ingreso: marzo-2011
Ubicación: Madrid
Mensajes: 7
Antigüedad: 13 años, 1 mes
Puntos: 0
Uso de CPU de MySQL disparado

Hola,

Antes de nada comentaros que antes de escribir el post pidiendo ayuda, llevo varios días trasteando por internet , buscando una solución... que no termino de encontrar

El caso es que hace unos meses contraté un servidor dedicado, con plesk para gestionarlo (ya que soy bastante novato en la gestión de servidores) y en principio todo bien, pero últimamente estoy recibiendo mails con alertas que el uso de Uso de CPU de MySQL pasa a amarillo, a rojo, luego vuelve a bajar... y no encuentro que es lo que pasa.

El servidor en principio no debería de tener problemas ya que es bastante potente (64GB de RAM, discos SSD, 8 procesadores...) y las webs que tengo alojadas no tienen apenas carga (el servidor tan potente lo necesito para un proyecto que lanzo ahora)

La carga del la CPU por el MySQL llega a veces hasta el 40-50%

Creo que no es un problema de configuración del MySQL, no estará optimizado pero me inclino más a alguna de las webs, un componente, etc, esté haciendo algo... aunque las webs van muy rápido y aparentemente no noto problemas en ellas

Como os decía tengo instalado plesk 11 y el servidor está con ubuntu. ¿Sabéis alguna manera de identificar que está originando este problema?

Muchas gracias por vuestra ayuda
Manuel
  #2 (permalink)  
Antiguo 26/08/2013, 00:50
Avatar de hostigal  
Fecha de Ingreso: junio-2009
Mensajes: 318
Antigüedad: 14 años, 10 meses
Puntos: 6
Respuesta: Uso de CPU de MySQL disparado

Estimado mdelreal, lo que comentas es algo muy genérico, yo empezaría por configurar bien, es decir optimizar la configuración de mysql y apache según el uso y tipo de páginas web, seguramente con esto por lo menos tendrías solucionado parte del problema. saludos.
  #3 (permalink)  
Antiguo 26/08/2013, 05:54
 
Fecha de Ingreso: marzo-2011
Ubicación: Madrid
Mensajes: 7
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Uso de CPU de MySQL disparado

Hola Hostigal,

Antes de nada agradecerte tu respuesta.

Si, sé que es algo genérico lo que he comentado. En principio no creo que se deba a un problema de configuración, ya que este problema lo tengo desde este lunes, antes, con la misma configuración funcionaba correctamente.

Lo que preguntaba es si había alguna forma de rastrear que está pasando, porque no debería de funcionar así el servidor, cuando entre todas las webs, ahora mismo tendré 20 visitas simultáneas como mucho, y el servidor es una buena máquina

Gracias
Manuel

De todas formas te pongo la conf del MySQL, por si vieras algo raro:



[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock


[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0
open_files_limit=8192

[mysqld]
local-infile=0
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
key_buffer = 4096M
join_buffer =2M
max_connect_errors =20
max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size = 64
myisam-recover = BACKUP
table_cache = 1512
sort_buffer_size =64M ## 1MB for every 1GB of RAM
read_buffer_size =64M ## 1MB for every 1GB of RAM
read_rnd_buffer_size =64M ## 1MB for every 1GB of RAM
thread_concurrency=16 ## Number of CPUs x 2
myisam_sort_buffer_size=256M
query_cache_limit = 1M
query_cache_size = 2048M
query_cache_type = 1
max_connections = 150
max_user_connections = 30
back_log = 25
wait_timeout = 30
interactive_timeout = 10
connect_timeout = 20
tmp_table_size = 64M
max_heap_table_size = 32M
open_files_limit = 8192
max_allowed_packet = 16M
net_buffer_length = 32K
max_tmp_tables = 64
max_delayed_threads = 0
log_error = /var/log/mysql/error.log
log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 4
expire_logs_days = 10
max_binlog_size = 100M

[mysqldump]
quick
quote-names
max_allowed_packet = 16M

[mysql]
#no-auto-rehash # faster start of mysql but no tab completition

[isamchk]
key_buffer=256M
sort_buffer=256M
read_buffer=16M
write_buffer=16M

[myisamchk]
key_buffer=256M
sort_buffer=256M
read_buffer=16M
write_buffer=16M
[mysqlhotcopy]
interactive-timeout


!includedir /etc/mysql/conf.d/
  #4 (permalink)  
Antiguo 26/08/2013, 06:37
 
Fecha de Ingreso: marzo-2011
Ubicación: Madrid
Mensajes: 7
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Uso de CPU de MySQL disparado

Yo creo que más de la configuración es un tema de algún script o algún bucle en alguna de mis webs... lo que no sé es como localizarlo, detectar donde en cual está el problema

Gracias
Manuel
  #5 (permalink)  
Antiguo 26/08/2013, 12:32
 
Fecha de Ingreso: marzo-2011
Ubicación: Madrid
Mensajes: 7
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Uso de CPU de MySQL disparado

Hola de nuevo, siento el "spam"

Acabo de probar a deshabilitar todos los dominios del plesk, para ver si era alguna web... pero no, el porcentaje de uso de la CPY por el mySQL sigue siendo del 14,5%, cuando las reactivo apenas sube... ya no entiendo nada ¿¿??

Entonces supongo que si debe de ser algo de la configuración.

Alguna idea?

Gracias
Manuel
  #6 (permalink)  
Antiguo 26/08/2013, 18:50
cascompany
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Uso de CPU de MySQL disparado

Bueno... primero que nada... teienes que ver los LOGS!
Alli encontraras cualquier cosa extraña... errores raros y demas...

Es posible que tu servidor "poco configurado" ya tenga hospedado algun spammer... quien sabe... es tan generico lo que dices, sin ver los logs, un top y demás es imposible adivinar que pasa.

Te recomiendo lo siguiente.
1) Instalar un firewall (CSF por ej) bien configurado desde ya.
2) Si no usas el Mail/SMTP por ahora, DESHABILITARLO, o bien, configurarlo bien, y monitorear los logs en buscar de cosas raras, o ver la cola de mails a ver si hay mails raros o rebotados.
3) Configurar todo como para producción y monitorear logs de apache, puedes instalar el MUNIN para darte una idea de donde reside tu cuello de botella si es que es refernte a tu web....


Como veras, no es "tan facil" administrar un servidor, aunque tenga plesk o cpanel como parece a simple vista, ya que hay mucho que configurar para que todo corra seguro y sin problemas, y saber detectar este tipo de cosas es la mayor parte de la administración en si.

Saludos!
  #7 (permalink)  
Antiguo 27/08/2013, 14:50
 
Fecha de Ingreso: octubre-2010
Mensajes: 374
Antigüedad: 13 años, 6 meses
Puntos: 34
Respuesta: Uso de CPU de MySQL disparado

Conectate a mysql y

SHOW PROCESSLIST;

A ver que esta ejecutando y también mira los logs como te dijeron y mira a ver si no es que tienes mucho IO wait en el server.

Y como bien has dicho normalmente es un script, en este caso puede ser el mismo plesk :/

Igual checa esto, tal vez te sirva: http://www.skamasle.com/mysql-alto-c...ir-el-consumo/
__________________
Administrador de Servidores -> yo[arroba]skamasle[puntito]com
| Debian | Centos |
| Solución de Problemas | Seguridad | Instalaciones y Configuraciones | Soluciones Anti-DDOS
  #8 (permalink)  
Antiguo 28/08/2013, 08:12
Avatar de Datacenter1
Usuario no validado
 
Fecha de Ingreso: agosto-2005
Ubicación: Chicago
Mensajes: 1.982
Antigüedad: 18 años, 8 meses
Puntos: 144
Respuesta: Uso de CPU de MySQL disparado

Otro forma fácil de optimizar mysql para no expertos es con el script mysqltuner, lo corres y hace sugerencias acerca de que valores debes modificar/agregar de acuerdo a tu entorno

Código:
cd /sbin
wget mysqltuner.pl
chmod 700 mysqltuner.pl
./mysqltuner.pl
  #9 (permalink)  
Antiguo 17/10/2014, 05:11
 
Fecha de Ingreso: octubre-2014
Mensajes: 1
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Uso de CPU de MySQL disparado

Hola, buenas tardes.

Soy nuevo en el foro y agradecería si alguién me pudiera ayudar acerca de un servidor dedicado que tenemos contratado.
Es un servidor Windows de Nivel 5, con 32 GB de RAM, y sobre el cuál corremos una aplicación de gestión de transporte.

En estos momentos tenemos un volúmen de unas 150 conexiones concurrentes que atacan contra el sistema, a nivel de usuarios conectados y tablets que comunican con el sistema.

Hace una semana, el nivel de CPU de MySQL se nos dispara al 50% y de de CPU de IIS al 30%.

Alguién nos podría confirmar acerca de si esto sería por culpa de algún script, o porqué no cerramos alguna conexión después de una consulta, o si lo suyo sería cambiar la estructuar del my.ini.

Adjunto estructura del my.ini actual:

[MySQLD]
port=3306
basedir=C:\Program Files (x86)\Parallels\Plesk\Databases\MySQL51\
datadir=C:\Program Files (x86)\Parallels\Plesk\Databases\MySQL\Data
character-set-server=latin1
default-storage-engine=INNODB
read_buffer_size=1M
read_rnd_buffer_size=256K
sort_buffer_size=256K
max_connections=400
old_passwords=0
max_user_connections=200
thread_cache_size=4
thread_stack=196608
binlog_cache_size=32768
net_read_timeout=30
net_retry_count=10
net_write_timeout=30
thread_concurrency=10
open_files_limit=0


innodb_additional_mem_pool_size=2M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=1M
innodb_buffer_pool_size=16M
innodb_log_file_size =10M
innodb_thread_concurrency=8
innodb_lock_wait_timeout = 120


# nueva configuracion
# este parámetro es fundamental, hay que registrar las consultas lentas, todas las que duren mas de 2 segundos.
# asi se puede ver las consultas que se hacen y que tienen que ser optimizadas

log-slow-queries=C:\Program Files (x86)\Parallels\Plesk\log\varmysql-slow-queries.log
long_query_time = 5
log-queries-not-using-indexes
query_cache_limit=2M
query_cache_size=256M
query_cache_type=1
interactive_timeout=100

wait_timeout=30
connect_timeout=15

# establecido a 128 para que no use mas memoria
thread_cache_size=128
key_buffer_size=1G
key_buffer=32M
join_buffer=1M
max_allowed_packet=16M
table_cache=1024
record_buffer=1M
sort_buffer_size=2M
read_buffer_size=2M
max_connect_errors=10

[mysqld_safe]
log-error=C:\Program Files (x86)\Parallels\Plesk\log\mysqld.log
pid-file=C:\Program Files (x86)\Parallels\Plesk\run\mysqld\mysqld.pid

open_files_limit=8192


[mysql]
no-auto-rehash
# safe-updates


[isamchk]
key_buffer=64M
sort_buffer=64M
read_buffer=16M
write_buffer=16M

[myisamchk]
key_buffer=64M
sort_buffer=64M
read_buffer=16M
write_buffer=16M

[mysqlhotcopy]
interactive-timeout

[client]
port=3306

Grácias por adelantado y un saludo a todos.

Última edición por Salota; 17/10/2014 a las 05:13 Razón: correcciones en el texto
  #10 (permalink)  
Antiguo 17/10/2014, 12:34
Avatar de WebTech
Hosting Moderator
 
Fecha de Ingreso: octubre-2005
Ubicación: East Coast
Mensajes: 5.399
Antigüedad: 18 años, 6 meses
Puntos: 162
Respuesta: Uso de CPU de MySQL disparado

Para Linux existe una utilidad llamada mytop que es muy buena y te permite ver consultas lentas, creo que corre también en Windows.
Sino lo otro que puedes hacer es buscar las consultas más lentas con log_slow_queries, que veo que ya tienes activado. Lo que yo haría sería reducir el tiempo de long_query_time = 1, pues una consulta bien hecha no debería demorar más de 1 segundo, 4 es una exageración.

Un saludo,
__________________
Infranetworking.com - Expertos en Hosting Multidominio, Cloud Hosting, Servidores Dedicados y Administración de Servidores Linux

Etiquetas: cpu, dedicado, mysql, servidor, servidores-dedicados-vps-y-colocación
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:40.