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.

Separar Base de datos y Apache en 2 servidores

Tema en 'Asuntos Técnicos' iniciado por jose_gm, 6 Nov 2012.

  1. jose_gm

    jose_gm Nuevo usuario

    Hola,

    Tengo un aplicativo bajo LAMP que hasta ahora tengo ubicado en un servidor dedicado. Para optimizar carga y poder escalar quiero separar lo que es Apache Web Server de MySQL. Es decir, colocar el MySQL en otro servidor dedicado.

    Estas dos máquinas están bajo el mismo proveedor pero en distintos datacenters, con lo que creo que me encontraré problemas de latencia al realizar conexiones desde el servidor A (Apache) al B (MySQL).

    Si realizo un ping entre A y B obtengo un tiempo medio de 0.288 ms. Y si realizo un traceroute de A a B obtengo:

    1 BLABLA (XX.XX.XX.XX) 2.524 ms 2.584 ms 2.632 ms
    2 BLABLA (XX.XX.XX.XX) 0.194 ms 0.204 ms 0.211 ms


    ¿Es mucha latencia? ¿Cual es la latencia de red recomendada? ¿Vale la pena el cambio, o lo que ganaré por un lado lo perderé por el otro?

    Saludos,
     
  2.  
  3. BeeOne Solutions

    BeeOne Solutions Usuario activo

    es bastante la latencia que tenes.... siempre es recomendable tenerlos en la misma red.
    Si tu preocupación es la redundancia o seguridad de los datos, eso lo podes obtener de otra forma.
     
  4. neocomp

    neocomp Usuario activo

    Lo ideal es tener todo en el mismo datacenter y dentro de la misma red, ojalá conectados como mínimo a 1 Gbps ... para eso es conveniente utilizar IPs privadas que usualmente tienen un mayor ancho de banda que las IPs públicas y transferencia ilimitada, además proveen muchísima más seguridad al servidor MySQL ya que otorgas permisos de acceso exclusivos al servidor web.

    Si lo que quieres es poder escalar fácilmente creo que es mucho más recomendable usar VPS's en vez de dedicados y en muchos casos tener por ejemplo 2 VPS como web + 1 VPS MySQL puede ofrecer mejor rendimiento y mayor confiabilidad que tener todo en un solo servidor ... considerando precios similares.

    Yo tengo varios clusters trabajando desde hace varios usando un MySQL remoto, todo sobre VPS's o VM's y funcionan perfecto ... otra de las grandes ventajas es que puedes optimizar mucho mejor un servidor que está dedicado exclusivamente al servicio de MySQL, sobre todo con la asignación de caché y el aprovechamiento al máximo de la RAM disponible.

    Creo que separar web y MySQL siempre va a ser muy recomendable, sobre todo cuando va aumentado la carga, porque siempre va a llegar un minuto donde un solo servidor se va a saturar haciendo todos los servicios ... en cambio si tienes un cluster es cosa de agregar y/o potenciar los servidores.

    Altamente recomendable según mi experiencia.
     
    A BeeOne Solutions le gusta esto.
  5. neocomp

    neocomp Usuario activo

    Otro punto que se me olvidó comentar en el post anterior, es que al menos para mí lo más crítico de un servidor MySQL es el sistema de discos y normalmente en un dedicado es muchísimo mas caro poder contar por ejemplo con un sistema con RAID-10, discos SAS 15k y controladoras con caché y BBU ( batería de respaldo ) ... los cuellos de botella de MySQL normalmente vienen por los accesos a disco, si hay mucha carga de queries que no pueden ser procesadas a tiempo y van quedando en la cola, aunque tengas mucha cpu y RAM disponible el problema puede suceder igual si los discos no están al nivel del resto del sistema.

    Tengo algunos sistemas en cluster con MySQL remoto montado sobre VPS's con nodos de hardware como los descritos anteriormente que ya se acercan a los 3.800 millones de queries procesados :-D ... asi es que está mas que probado :-D
     
  6. jose_gm

    jose_gm Nuevo usuario

    Gracias por las respuestas.

    Sobre los temas de disco, actualmente tengo SATA 6 Gb/s HDD 7200 rpm (Software-RAID 1) ¿es mejor usar disco SSD o SASS?

    Lo VPS's lo he pensado, pero mi proveedor no me garantiza que estén en el mismo datacenter el Server A (Apache) y el B (MySQL) con lo que volveré a topar con los problemas de latencia. Haciendo un ping de A a B me da 0.288 ms

    Los servidores que tengo contratados son como este:

    hetzner.de/en/hosting/produkte_rootserver/ex4
     
  7. BeeOne Solutions

    BeeOne Solutions Usuario activo

    Siempre puedes crear VPS dentro de tu servidor privado... de todas formas, respondo a tu pregunta.

    SSD siempre es mejor que cualquier otra tecnología que incluya partes móviles. Obviamente, suele ser mas caro.
     
  8. neocomp

    neocomp Usuario activo

    Primero me parece raro que no puedas contratar 2 servidores localizados en el mismo datacenter, supongo que eso ya lo has consultado a Hetzner ... normalmente es posible hacerlo aunque no esté la opción de seleccionar el datacenter al momento de hacer la orden y hay que enviar un ticket haciendo la solicitud a ventas.

    Considerando la velocidad obviamente es mejor un SSD, la principal limitante que hay en este minuto es el costo y la capacidad.

    Si los ordenamos de peor a mejor :

    SATA 7,5K, SATA 10K, SAS 10K, SAS 15K, SSD, ioDrive ( por si alguien necesita 10.000 IOPS ) :-D

    Respecto al Software-RAID1 es una solución barata pero que puede llegar a consumir bastante cpu y degradar en el fondo el rendimiento del sistema, lo ideal es usar RAID por hardware, RAID 1 si se tiene solo 2 discos, RAID 5 si se tiene 3 como mínimo y RAID 10 si se tiene 4 como mínimo.

    Y si tienes RAID por hardware es importante la cantidad de memoria cache que incluye la controladora y si cuenta con BBU ( batería de respaldo ) para mayor seguridad ( habría que preguntar por las especificaciones de la controladora )

    Por lo tanto mientras mejor rendimiento tienen los discos, si hay o no controladora RAID y si tiene o no cache, mejor va a ser el rendimiento global del sistema de discos ... OBVIAMENTE aumentando los costos :)

    Por lo que vi así a la rápida ... Hetzner ofrece todas esas alternativas, por lo que también podría ser una opción de mejorar el rendimiento y la confiabilidad agregando una controladora RAID con los mismos discos, mejor aún si se reemplazan los discos por SAS o SSD, y "más mejor" :) si le agregas un par de discos y lo dejas con RAID-10 ... casi por el mismo costo de tener un segundo servidor, podrías tener uno mucho mejor potenciando el sistema de discos, ya que el que tienes actualmente está como en el límite de lo más básico, para un servidor MySQL obviamente :)

    Personalmente si tuviera que elegir entre un cluster con 2 servidores igual al que tienes ahora o solo un servidor pero con 4 discos + controladora con RAID 10 ... creo que optaría por este último ... depende de tu disponibilidad para elegir discos SATA, SAS o SSD, pero en cualquier caso el rendimiento aumentaría varias veces sobre todo para MySQL ( RAID 10 es lo ideal ).
     
    Última edición: 6 Nov 2012
    A ideasmultiples le gusta esto.
  9. josegm

    josegm Nuevo usuario

    Gracias por vuestras respuestas.

    Sobre los discos SSD siempre he escuchado que la vida útil es menor que un disco duro tradicional, sobretodo si se va a realizar un uso intensivo de escrituras. No se si esto ha cambiado con el tiempo y hoy por hoy ya son muy fiables.

    ¿Para aprovechar los SATA sería recomendable el sistema operativo en el SATA y la base de datos en la SSD, o vale la pena todo en la SSD?
     
  10. neocomp

    neocomp Usuario activo

    Eso es correcto y depende de la tecnología de los chips NAND usados en los discos, hoy lo que más se utiliza son los MLC ( multi level cell - 2 bits - 4 estados ) que en teoría soportan unos 10.000 ciclos de borrado/escritura "por cada celda" y la otra alternativa son los SLC ( single level cell - 1 bit - 2 estados ) que soportan unos 100.000 ciclos de borrado/escritura, estos últimos son incluso más rápidos pero mucho más caros.

    La tecnología de discos SSD cambia y se mejora "a diario" y cada día se inventan nuevos algoritmos para optimizar los ciclos de borrado/escritura y aumentar la vida útil ... por ejemplo balanceando las escrituras en diferentes áreas dentro del chip, reservando áreas dentro del chip para las celdas que fallen, agrupando las escrituras en bloques mas grandes para reducir el número de escrituras, etc.
    Una de las tecnologías ya estandarizadas para los ciclos de borrado/escritura se llama TRIM y es importante saber si un disco SSD la soporta.

    Otra cosa es la fiabilidad del disco SSD como tal y esa es muy superior a la de cualquier disco duro tradicional, básicamente porque no tiene parte móviles y pueden soportar por ejemplo muchísimas mas "G" ante un golpe que un disco tradicional.


    Creo que depende un poco de cuantos discos vas a ocupar en total y que tipo de RAID vas a usar ... Si yo tuviera que apostar en este minuto pondría mis fichas por 4 SSD con RAID 10 y ver como anda la cosa :)

    Por lo que recuerdo Hetzner tiene al mismo precio los SATA de 3 Tb, los SAS de 300 y los SSD de 120 Gb, asi que tienes donde elegir.
     
  11. hostigal

    hostigal Usuario activo

    hola la clave te la dijo el amigo neocomp
    "o ideal es tener todo en el mismo datacenter y dentro de la misma red, ojalá conectados como mínimo a 1 Gbps ... para eso es conveniente utilizar IPs privadas que usualmente tienen un mayor ancho de banda"

    Siempre para ese tipo de proyectos te es más factibles trabajar sobre vps para poder ir instalando, en cualquier tipo de plataforma xen, kvm...sobre maquinas de ultima generación con monton de ram, y un minimo de 6 discos en raid 10 no tendrás problema.

    saludos.
     
  12. neocomp

    neocomp Usuario activo

    Anteriormente comenté que la mayoría de los discos SSD están usando actualmente chips NAND MLC y que están usando algoritmos con el fin de optimizar los ciclos de borrado/escritura ya que son finitos por cada celda.

    Pero ya existe la tecnología que deja obsoletos los SSD y eso se llama NVDIMM Non Volatile DIMM que es una tecnología que "combina" DRAM DDR3 + Memoria Flash + controlador inteligente + ultracapacitor que no necesita una batería de respaldo.

    Las principales ventajas del NVDIMM es que es extremadamente rápida ya que soporta rendimientos de memorias DDR3-1600, no tiene problemas con los límites de ciclos de borrado/escritura de los chips NAND y tendría rendimientos de IOPS hasta 40 veces el rendimiento de un disco SSD SATA de 6 Gb/s.

    Obviamente los NVDIMM tienen desventajas y estas tienen relación con la menor capacidad de almacenamiento y los costos actualmente.
    Pero creo que muy pronto va a salir un disco hibrido con interfaz SAS/SATA de 6 Gb/s y con tecnología NVDIMM adentro.

    En unas semanas voy a probar una VM con una BD MySQL corriendo sobre tarjetas ioDrive PCIe que "se supone" ofrecen un rendimiento sobre 100.000 IOPS y una tasa de transferencia para el sistema de almacenamiento de hasta 900 MB/s :-D ... ya veremos que tal funciona.

    Pero ya me estoy imaginando lo que será tener una BD MySQL montada sobre un sistema de almacenamiento con NVDIMM con un rendimiento de unos 1.000.000 IOPS :-D
     
  13. Datacenter1

    Datacenter1 Usuario activo

    Si los dos servidores no están en el mismo switch la latencia hace que se pierda cualquier beneficio proveniente de la separación, en tu caso probablemente tenga más sentido que ambos servidores sean http/mysql active/active y usar un servicio de load balancer global. De esta forma no tendrás el problema de las latencias porque cada servidor web usará el servidor mysql local, y tendras las ventaja adicional de que si un servidor falla, tu web se mantendrá activa (asumo que es una web alojada no un servicio de hosting compartido con algún panel de control)

    Otra opción es solicitar a tu proveedor que te de dos servidores físicamente en el mismo rack y/o conectados por una red privada
     


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


    
    
    
    
Blog · Sitios amigos: GuiaHosting · Unidominios · Interalta ·