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.

Servidor requerido para app con picos de 300-500 peticiones mysql

Tema en 'Servidores Dedicados' iniciado por odenmc, 5 Oct 2017.

  1. odenmc

    odenmc Nuevo usuario

    Buenos días,

    Quería plantearos una duda ya que ando bastante perdido. Tenemos una aplicación encargada de gestionar de manera remota varias webs (stocks, precios, costos, etcétera), y es un programa que requiere de muchas peticiones a base de datos (mysql). Tiene picos de 300-500 peticiones (aunque por lo general suele tener una carga baja). El problema suele estar en esos picos, que se colapsa la base de datos y deja de responder, lo que es algo que no nos podemos permitir.

    Decir que esta aplicación apenas tiene usuarios simultaneos, puede llegar a tener 4-5 por lo que temas como la transferencia y demás no son un problema.

    Como ahora mismo tenemos esa app compartida con otras webs, vamos a separarla a otro servidor para que ella sola pueda "desahogarse" xD

    La pregunta que nos surge ¿qué servidor sería el más adecuado para albergar una aplicación con picos de (por ahora) 300-500 peticiones por segundo? Ya digo que son picos de pocos segundos pero necesitamos ante todo fiabilidad, que no se corte en esos picos, por lo que no estamos seguros de qué buscar.

    También si nos diérais recomendaciones de hosting, de lujo. Muchas gracias.
     
  2.  
  3. copernico.es

    copernico.es Usuario activo

    Hola,

    ¿Solo 5 usuarios en linea al mismo tiempo con ese número de peticiones?
    ¿Es un aplicativo conocido?
    ¿Tienes mantenimiento o soporte del aplicativo?

    Por otro lado, indícame por favor, que características tiene el servidor actual, memoria, cpu etc... Puede que se solucione con una optimización adecuada del aplicativo, servidor y/o de mysql ;)

    Salu2,
     
  4. odenmc

    odenmc Nuevo usuario

    Hola! Gracias por responder y ofrecerte a ayudarme.

    Siento no haber desarrollado tanto mi respuesta, ahora mismo se encuentra en un servidor dedicado de estas características:
    • Intel Xeon Quad Core E3-1220V5 (8M Cache, 3.00 GHz)
    • 8 GB DDR4
    • 1TB SATA
    En principio cumple de sobra, pero claro, el problema es que la aplicación se encuentra en un servidor dedicado en el que no está sola, ya que se encuentra con varias webs (unas 6) de comercio electrónico y que tienen un volumen de visitas interesante.

    El problema es que no nos podemos permitir que nuestras webs se caigan por culpa de los picos de esta aplicación, de ahí que hayamos decidido separarlo.

    La aplicación es un sistema completo de ERP/CRM que se encarga de gestionar de multitud de comercios electrónicos una serie de datos que tienen que estar actualizados al minuto (precios, costos, variaciones de stock, usuarios, pedidos, etcétera), y esta aplicación envía y recibe muchas peticiones de multitud de webs, haciendo que en picos de bastante movimiento haya llegado a alcanzar las 400-500 peticiones (en momentos muy puntuales, pero las ha alcanzado, sobretodo en épocas "especiales" como Black Friday o Navidad).

    Por lo general no tiene un volumen tan tan alto, pero si que tiene en el día a día picos que provocan lentitud en la base de datos, y por ello hemos decidido cortar por lo sano y separarlo. Como digo, la aplicación no tiene apenas usuarios recurrentes ya que lo usan los distintos departamentos pero realmente es algo anecdótico y que como digo, puede coincidir que como mucho 10 personas usen la aplicación a la vez.

    Entonces nuestra duda surge de qué características debemos buscar ese servidor dedicado / VPS, qué recomendaciones nos darían teniendo en cuenta que la prioridad son los movimientos de BBDD y debe soportar esos picos sin problemas.

    Muchas gracias por adelantado.
     
  5. jmginer

    jmginer Usuario activo

    Yo diría que el cuello de botella lo tienes en el disco duro.
    De todas formas, mirando el IO delay lo sabrás con seguridad.
    En caso afirmativo, considera mover a un equipo con SSD o NVMe.
     
  6. copernico.es

    copernico.es Usuario activo

    Supongo que tienes un servidor NO administrado ;) Yo instalaría el aplicativo y las webs sobre un nuevo servidor un poco más potente con discos sólidos / NVMe, para pasar posteriormente a optimizarlo como es debido, esos picos dejarán huella de los procesos que se deben atacar, probablemente trabajéis tiendas con prestashop o wordpress y hay muchas cosas que se pueden hacer en optimización...
     
  7. hostigal

    hostigal Usuario activo

    Si deberías empezar por tener SSD y más memoria, luego todo va a depender mucho de la configuración de los distintos servicios: apache, php, mysql, etc.
    saludos
     
  8. Andaina.net

    Andaina.net Usuario activo

    Por experiencia te diré que con SSD para temas de bases de datos verás una gran gran diferencia ya que es donde suele darse el problema
     
  9. neocomp

    neocomp Usuario activo

    El primer problema que veo es el uso de un solo disco y además SATA en un servidor web, "por definición" siempre es recomendable utilizar arreglos de discos en RAID con controladoras por hardware y discos SAS 15K por rendimiento y confiabilidad antiguamente y discos SSD o NVMe para datacenters actualmente.
    Obviamente que el uso de discos SSD o NVMe presenta una diferencia abismante en el rendimiento de un servidor ya que pasas de unos 100 a 120 IOPS de un disco SATA tradicional a unas 65.000 IOPS de lectura en un disco SSD profesional como la serie DC 3500 de Intel o a mas de 500.000 IOPS de lectura en un disco NVMe como la serie DC 4500 de Intel ( menciono Intel solo porque son los que estoy usando actualmente ).
    El RAID ademas de aumentar la confiabilidad al ofrecer redundancia y tolerancia a fallos, aumenta el rendimiento al distribuir la carga entre varias unidades y al usar cache interno en la controladora.
    Para servidores siempre es recomendable utilizar discos SSD o NVMe fabricados especialmente para servidores, muchos hablan de versiones "datacenter edition" porque son discos diseñados con un mejor Endurance Rating ( Indice de resistencia ) medido en TBW ( Terabytes escritos ) que permiten muchos mas ciclos de escritura sobre los discos.
    Ademas del hardware es MUY IMPORTANTE la optimización de MySQL, por experiencia muchas veces un servidor MySQL no optimizado puede significar no aprovechar el hardware disponible, principalmente el aprovechamiento optimo de la memoria para los caches de MySQL, eso puede significar una mejora de rendimiento de hasta 20 o 30 veces.
    Una vez un cliente ya había aumentado como 3 veces la memoria de un VPS y estaba por pasar a un dedicado con 32 Gb de RAM porque seguía con problemas de rendimiento de MySQL y el problema era que estaban usando CentOS de 32 bits por lo que MySQL nunca podía aprovechar mas de 2 Gb de RAM ... cambiamos a CentOS de 64 bits y con un VPS de 8 Gb de RAM y MySQL optimizado para ese sistema en particular quedó perfecto ... no todo es hardware.
    Lo ideal sería poder analizar la configuración actual de MySQL ya que las estadísticas de uso y rendimiento actuales son muy importantes para hacer un buen diagnóstico y diseñar una configuración optimizada.
    Yo he usado un cluster de VMs con hasta 12 servidores web conectados a un MySQL remoto montado en otra VM que soportaron hasta 25.000 usuarios simultáneos y con varios cientos o hasta miles de operaciones MySQL por segundo sin problemas, estoy buscando si tengo registros estadísticos de ese MySQL para dar datos mas objetivos.
    Yo te recomendaría un VPS de alto rendimiento montado en un nodo con discos SSD DC o NVMe DC en RAID y creo que sería suficiente para soportar esa carga sin problemas, respecto a la cantidad de RAM depende mucho del uso particular del sistema y eso se puede obtener fácilmente desde las estadísticas de uso actuales, las configuraciones "por defecto" disponibles en internet no sirven porque cada sistema tiene diferente tipo de requerimientos de memoria y eso depende del tipo y cantidad de tablas, tipos y cantidad de indices, etc.
    Lo ideal para sistemas MySQL de alta carga es montar un cluster con al menos 1 web + 1 MySQL, ya que asi el MySQL se puede optimizar para aprovechar al máximo los recursos en forma exclusiva para el motor MySQL.
     


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


    
    
    
    
Blog · Sitios amigos: GuiaHosting · Unidominios · Interalta ·