1. ¡OFERTA! con cupón "DIRVPS": hosting por $0,01 y también VPS Linux y Windows por $0,01 el primer mes por Interserver ← publi
    Descartar aviso
Descartar aviso
Al usar este sitio web, aceptas que nosotros y nuestros socios podamos establecer cookies para fines tales como personalizar el contenido y la publicidad. Más información.

Mysql se detiene de la nada y mi wordpress dejá de funcionar

Tema en 'VPS Hosting' iniciado por Jhoedram, 12 Sep 2014.

  1. Jhoedram

    Jhoedram Usuario activo

    Hola a todos :

    Soy nuevo en esto de servidores, al parecer es un problema de mysql que se detiene cuando consume demasiados recursos, alguien puede ayudarme.

    Tengo un VPS en digitalocean con 500MB de Ram, con Centos 6.5 x64

    Este es el archivo de configuración de mi mysql, los logs los pueden ver más abajo. Espero que alguien pueda ayudarme, desde ya muchisimas gracias.


    CODE, HTML o PHP Insertado:
    [mysqld]
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    user=mysql
    symbolic-links=0
    max_connections=70
    max_user_connections=30
    wait_timeout=10
    interactive_timeout=50
    long_query_time=5
    #log-queries-not-using-indexes
    #log-slow-queries=/var/log/mysql/log-slow-queries.log
    
    key_buffer = 16M
    myisam_sort_buffer_size = 32M
    join_buffer_size=1M
    read_buffer_size=1M
    sort_buffer_size=2M
    table_cache=1024
    thread_cache_size=286
    interactive_timeout=25
    connect_timeout=5
    max_allowed_packet=1M
    max_connect_errors=1000
    query_cache_limit=1M
    query_cache_size=8M
    query_cache_type=1
    tmp_table_size=16M
    
    #innodb_use_native_aio = 0
    innodb_file_per_table
    
    [mysqld_safe]
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid
    

    CODE, HTML o PHP Insertado:
    140912  9:27:44 [Warning] IP address '118.123.119.110' could not be resolved: Name or service not known
    140912 12:01:02 mysqld_safe Number of processes running now: 0
    140912 12:01:02 mysqld_safe mysqld restarted
    140912 12:01:02 [Warning] Using unique option prefix key_buffer instead of key_buffer_size is deprecated and will be removed in a future release. Please use the full name instead.
    140912 12:01:02 [Note] Plugin 'FEDERATED' is disabled.
    140912 12:01:02 InnoDB: The InnoDB memory heap is disabled
    140912 12:01:02 InnoDB: Mutexes and rw_locks use GCC atomic builtins
    140912 12:01:02 InnoDB: Compressed tables use zlib 1.2.3
    140912 12:01:02 InnoDB: Using Linux native AIO
    140912 12:01:02 InnoDB: Initializing buffer pool, size = 128.0M
    InnoDB: mmap(137363456 bytes) failed; errno 12
    140912 12:01:02 InnoDB: Completed initialization of buffer pool
    140912 12:01:02 InnoDB: Fatal error: cannot allocate memory for the buffer pool
    140912 12:01:02 [ERROR] Plugin 'InnoDB' init function returned error.
    140912 12:01:02 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
    140912 12:01:02 [ERROR] Unknown/unsupported storage engine: InnoDB
    140912 12:01:02 [ERROR] Aborting
    
    140912 12:01:02 [Note] /usr/libexec/mysqld: Shutdown complete
    
    140912 12:01:02 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
    140912 16:57:29 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
    140912 16:57:29 [Warning] Using unique option prefix key_buffer instead of key_buffer_size is deprecated and will be removed in a future release. Please use the full name instead.
    140912 16:57:29 [Note] Plugin 'FEDERATED' is disabled.
    140912 16:57:29 InnoDB: The InnoDB memory heap is disabled
    140912 16:57:29 InnoDB: Mutexes and rw_locks use GCC atomic builtins
    140912 16:57:29 InnoDB: Compressed tables use zlib 1.2.3
    140912 16:57:29 InnoDB: Using Linux native AIO
    140912 16:57:29 InnoDB: Initializing buffer pool, size = 128.0M
    140912 16:57:29 InnoDB: Completed initialization of buffer pool
    140912 16:57:29 InnoDB: highest supported file format is Barracuda.
    InnoDB: The log sequence number in ibdata files does not match
    InnoDB: the log sequence number in the ib_logfiles!
    140912 16:57:29  InnoDB: Database was not shut down normally!
    InnoDB: Starting crash recovery.
    InnoDB: Reading tablespace information from the .ibd files...
    InnoDB: Restoring possible half-written data pages from the doublewrite
    InnoDB: buffer...
    140912 16:57:30  InnoDB: Waiting for the background threads to start
    140912 16:57:31 InnoDB: 5.5.39 started; log sequence number 14584556
    140912 16:57:31 [Note] Server hostname (bind-address): '0.0.0.0'; port: 3306
    140912 16:57:31 [Note]   - '0.0.0.0' resolves to '0.0.0.0';
    140912 16:57:31 [Note] Server socket created on IP: '0.0.0.0'.
    140912 16:57:31 [Note] Event Scheduler: Loaded 0 events
    140912 16:57:31 [Note] /usr/libexec/mysqld: ready for connections.
    Version: '5.5.39'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  MySQL Community Server (GPL) by Remi
    
     
  2.  
  3. Hola,

    Has echo un top para ver que te consume mysql?

    Has optimizado mysql con mysqltunner? Has intentado jugar con los valores Maxclients de apache? Tu apache es prefork? comprueba con httpd -l
     
  4. Jhoedram

    Jhoedram Usuario activo

    Segun estuve averiguando es la configuración de este archivo que muestro arriba, mi servicio de mysql se detiene, es como una auto protección que realiza. Pero el problema es que no se como configurarlo, como te digo soy novato en todo esto. espero puedas comprender y también ayudarme.

    Gracias.
     
  5. Hola,

    Por lo que comentas veo que no has optimizado nada.

    Primero conectate por consola a través de ssh y lanzas un top.

    Si mysql te consume mucha memroria ram pasas mysqltunner buscalo en google.
     
  6. Jhoedram

    Jhoedram Usuario activo

    Todo esta normal, como puedes ver aquí. La cosa es cuando es hora punta.

    [​IMG]
     
  7. Por lo que veo apenas tienes carga de cpu alguna. (load average) Te sobran 100MB y pico de memoria ram. Tienes 500MB. No tienes IO Wait. Que valor tienes en el maxclients de apache? Yo miraría subir el maxclients y si te sigue pasando aumenta la ram. Puedes hacer un top en horas puntas haber cuanta carga tienes?
     
  8. Empieza por ver que MPM usas en apache.

    httpd -l

    Calcula la memoria consumida por apache: ps -ylC httpd --sort (ruta a carpeta donde alojas el wordpress)
     
  9. egrueda

    egrueda Usuario activo

    El log nos dice claramente cuál es el problema. ¿De qué valen los logs si no nos paramos a leerlos?
    Te quedas sin memoria, no hay más, no busques duendes.
    O amplías la memoria o juegas con la cache de mysql... hasta que amplíes la memoria xD
    Además, revisa si las tablas están optimizadas y si lo están las consultas que lanzas.
     
    A nonamef191118 y WebTech les gusta esto.
  10. justice13

    justice13 Usuario activo

    A nadie que sepa del tema se le ocurriría meter 500 miserables MB de RAM para un servidor que va a jugar con apache, MySQL, php...

    Aumenta la RAM pero ya... Sin panel te diría que de 1gb en adelante. Si tienes panel yo no bajaría de 2.

    Saludos
     
  11. Jhoedram

    Jhoedram Usuario activo

    Como puedo jugar con la memoria ? , antes yo usaba zpanel y me iba todo bien :( pero ahora estoy teniendo problemas, espero puedan ayudarme.

    Gracias
     
  12. He leído que plesk trabja con 512MB de RAM. Yo igual primero probaría a optimizar mysql a fondo con mysqltunner y apache y si sigue pasando claramente ampliar la RAM. Puede probar a usar varnish para caché.
     
  13. justice13

    justice13 Usuario activo

    Es probable que se pueda instalar, pero de ahí a cómo vaya todo... No me fiaría mucho. Al final los servicios que se corren, salvo alguna excepción que habrá, son los mismos sea Plesk, cpanel, etc...

    Debería incrementar algo la RAM.
     
  14. WebTech

    WebTech Súper Moderador Miembro del Staff Moderador CH

    100% de acuerdo.

    Optimiza al 100% tu VPS para intentar consumir la menor cantidad de RAM posible, y luego intenta ver si va bien con los valores asignados a Innodb a nivel de buffer en /etc/my.cnf, sino agrega más RAM al VPS y listo.

    Un saludo,
     
  15. Puedes usar http://mysqltuner.com para optimizar mysql ya que suele dar valores ajustados. Como lea esto un DBA me va a matar. Jeje. xD

    Salu2,
     
  16. neocomp

    neocomp Usuario activo

    El problema es mas que obvio, si quedan solo 100 Mb libres y defines un buffer para InnoDB de 128 Mb ... FALTA MEMORIA.
    Pero por definición con 500 Mb de RAM la optimización que se puede hacer de MySQL es prácticamente nula y/o inútil :)

    Si quieres que el VPS logre "funcionar" aunque limitadísimo y con casi cero optimización PORQUE NO HAY MEMORIA ... puedes configurar por ejemplo innodb_buffer_pool_size = 10M en vez de los 128 Mb que MySQL toma por defecto cuando no está especificado un valor, puede que el servidor y MySQL funcionen pero no quiere decir que vaya a funcionar en forma "decente", pero podría funcionar :)
    Para optimizar MySQL necesitas de partida conocer la cantidad de recursos que consumen las tablas instaladas y NO EXISTE una configuración universal o predefinida que siempre vaya a funcionar, siempre es particular y muy específica de cada servidor.

    Por que funcionaba con zpanel ?
    Porque probablemente zpanel consume menos memoria y por lo tanto quedaba mas memoria disponible y el buffer de InnoDB era mucho menor a 128 Mb ... simple.

    Si un MySQL no está optimizado NO SIRVE DE NADA agregar mas recursos a un servidor, hace un par de días me tocó optimizar un servidor con 16 Gb de RAM, pero 15,25 Gb NUNCA fueron utilizados y jamás iban a ser utilizados si no se reconfiguraba MySQL ... de hecho ya estaban pensando en agregar mas RAM jejejejejejee.
    Otro punto importante es que la configuración inicial puede que no sirva en un par de meses más, ya que normalmente las tablas van creciendo, la cantidad de índices va aumentando, la cantidad de sorts o joins depende del código, etc, etc. es un asunto muy dinámico y que puede cambiar en cualquier minuto.

    Si vas a tener un uso "normal" de MySQL deberías partir en 1 Gb de RAM, por ejemplo si tienes sitios WordPress ... para un uso moderado deberías pensar en 2 Gb de RAM mínimo y para un sistema con uso intensivo de MySQL al menos unos 4 Gb ... MUY IMPORTANTE si vas a usar más de 2 Gb con MySQL solo se pueden aprovechar usando un sistema operativo de 64 bits ... por ejemplo si tienes un VPS con 5 Gb de RAM con SO de 32 bits NUNCA podrás aprovechar más de 2 Gb con MySQL.

    Reitero que "optimización de MySQL" con 500 Mb de RAM es "casi" de ciencia ficción :)
     
    A Jhoedram le gusta esto.
  17. Jhoedram

    Jhoedram Usuario activo

    Amigo, gracias por tu respuesta. Te he hecho caso, he colocado 1GB de ram en mi servidor y ha vuelto a caer. Creo que debe de ser por el parametro max clientes en apache, lo tengo en 200.
    ¿Cuál crees que sea el problema?
    Hasta cuantas visitas paralelas podría resistir mi vps, el cual solo tiene un blog en wordpress. Me comentas.

    Esta es la nueva configuración de mi mysql

    CODE, HTML o PHP Insertado:
    [mysqld]
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    user=mysql
    symbolic-links=0
    max_connections=200
    max_user_connections=30
    wait_timeout=30
    interactive_timeout=50
    long_query_time=5
    #log-queries-not-using-indexes
    #log-slow-queries=/var/log/mysql/log-slow-queries.log
    
    #innodb_use_native_aio = 0
    innodb_file_per_table
    
    [mysqld_safe]
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid
     
  18. Jhoedram

    Jhoedram Usuario activo

    Este es el resultado del log :

    CODE, HTML o PHP Insertado:
    141017 12:25:51 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
    141017 12:25:52 [Note] Plugin 'FEDERATED' is disabled.
    141017 12:25:52 InnoDB: The InnoDB memory heap is disabled
    141017 12:25:52 InnoDB: Mutexes and rw_locks use GCC atomic builtins
    141017 12:25:52 InnoDB: Compressed tables use zlib 1.2.3
    141017 12:25:52 InnoDB: Using Linux native AIO
    141017 12:25:52 InnoDB: Initializing buffer pool, size = 128.0M
    141017 12:25:52 InnoDB: Completed initialization of buffer pool
    141017 12:25:52 InnoDB: highest supported file format is Barracuda.
    InnoDB: Log scan progressed past the checkpoint lsn 32778106
    141017 12:25:52  InnoDB: Database was not shut down normally!
    InnoDB: Starting crash recovery.
    InnoDB: Reading tablespace information from the .ibd files...
    InnoDB: Restoring possible half-written data pages from the doublewrite
    InnoDB: buffer...
    InnoDB: Doing recovery: scanned up to log sequence number 32778126
    141017 12:25:52  InnoDB: Waiting for the background threads to start
    141017 12:25:53 InnoDB: 5.5.39 started; log sequence number 32778126
    141017 12:25:53 [Note] Server hostname (bind-address): '0.0.0.0'; port: 3306
    141017 12:25:53 [Note]   - '0.0.0.0' resolves to '0.0.0.0';
    141017 12:25:53 [Note] Server socket created on IP: '0.0.0.0'.
    141017 12:25:53 [Note] Event Scheduler: Loaded 0 events
    141017 12:25:53 [Note] /usr/libexec/mysqld: ready for connections.
    Version: '5.5.39'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  MySQL Community Server (GPL) by Remi
     
  19. Hola,

    Creo que es por el parámetro: max_user_connections=30 (ha las 30 conexiónes te cae) Mira que error te da MySQL exactamente.
     
  20. neocomp

    neocomp Usuario activo

    Estimado Jhoedram ... creo que la configuración que tienes ahora de los parámetros de MySQL es PEOR que la que tenías antes :) ... agregar recursos sin optimizar la configuración NO SIRVE DE NADA y para poder optimizar MySQL es IMPRESCINDIBLE tener estadísticas de uso ojalá de al menos unas 48 horas y es un proceso permanente ya que los recursos que requiere MySQL van cambiando en el tiempo dependiendo de la cantidad y tipo de tablas.

    Respecto a la cantidad de visitas paralelas que podría soportar el VPS ... es la pregunta del millón :) ... es prácticamente IMPOSIBLE poder determinar eso sin tener ningún otro antecedente, normalmente la carga se puede "estimar" solo en base a las estadísticas de uso y carga del VPS.

    Solo por el hecho de usar WP pasa a ser crítico optimizar MySQL, basta a veces que solo "un parámetro" este mal definido para tener un mal rendimiento, independiente de la cantidad de recursos que tenga el servidor ... si tienes por ejemplo 16 Gb de RAM pero MySQL no está bien configurado, JAMAS se van a poder aprovechar esos 16 Gb de RAM y la memoria es el recurso mas importante para optimizar MySQL.

    Si se descarta que sea un problema con MySQL, 2 formas de "ayudar" a WP es teniendo SIEMPRE instalado un plugin de caché e idealmente adicionar un CDN, sobre todo si hay muchas imágenes ... con un MySQL optimizado + cache de WP + CDN, un sitio con WP puede multiplicar "varias veces" la carga que puede soportar usando el mismo VPS.

    Como veo que vas cada vez peor :) ... te recomiendo que me contactes por mi formulario de contacto y te puedo dar una mano con tu MySQL, sino este post puede seguir creciendo hasta el infinito .........
     
  21. Mira con mysqltuner para optimizar mysql, y para generar peticiones de apache tienes siege. Estresa tu vps y be haciendo ajustes.

    Con siege puedes mandar X número de peticiones y generar tráfico para ver que es lo que aguanta tu apache.
     


Alojamiento web, Hosting Reseller, Servidores Dedicados - All in Hosting


    
    
    
    
Blog · Sitios amigos: GuiaHosting · Unidominios · Interalta ·