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.

Recomendacion de servidor 5000 visitas simultaneas

Tema en 'Servidores Dedicados' iniciado por KAOSNORMAL, 27 Jun 2012.

  1. KAOSNORMAL

    KAOSNORMAL Nuevo usuario

    Hola que tal tengo un servidor con estas carateristicas

    Intel i7-3820 - Quad core - Sandy Bridge-E
    16GB RAM
    2x1.5TB HDD
    100Mbps unmetered
    Linux OS: CentOS
    OS Architecture: 64-bit

    quisiera saber si bien optimizado podria aguantar 5000 usuarios simultaneos o necesito subir a 1Gbps y mas memoria?
     
  2.  
  3. ideasmultiples

    ideasmultiples Usuario activo

    Todo depende del software que uses....

    :cool:
     
  4. KAOSNORMAL

    KAOSNORMAL Nuevo usuario

    Casi todo es PHP y SQL
     
  5. ideasmultiples

    ideasmultiples Usuario activo

    El rendimiento depende del diseño de software y manejo de DDBB, no del lenguaje.

    De todas formas para 5,000 simultaneas seguramente vas a necesitar un cluster de 2 servidores web (o más), uno DDBB y un balanceador de carga.


    :cool:
     
  6. hostigal

    hostigal Usuario activo

    hola , 99% no aguantará porque ademas seguro es un foro o similar, que tenga mucha escritura y lectura no??. si es así tendrá mínimo que montar un servidor de front y otro para la base de datos, y que sean servidores mínimo como el que comentas o superior; te recomendaría con un minimo de 6 a 8 discos por ejemplo , en raid 10.

    saludos.
     
  7. comvive

    comvive Usuario activo

    todo depende del tipo de web.

    no es lo mismo un foro (mucho mysql) que una web de imagenes (mucho acceso a disco)

    puedes optimizar:

    poniendo apache + nginx para contenido estatico.
    poniendo memcache y haciendo cache de consultas de mysql
    poniendo discos SSD o raid 10 para el acceso a disco.

    las soluciones son variadas dependiendo del tipo de web.


    un saludo.
     
    A mstudios le gusta esto.
  8. KAOSNORMAL

    KAOSNORMAL Nuevo usuario

    Gracias por sus respuestas la pagina es php si tiene muchas consultas al SQL pero no es de mucha escritura la tengo usango nginx y fastcgi hasta el momento el servidor asi tal como estaba me soporto 4000 usuarios online se puso un poco lenta pero trabaja bien entonces le agregue a 32 gb de memoria y subi a un 1gbps el load siempre se mantiene en Load Averages: 0.36 0.53 0.52 y no pasa del 1 todo lo tengo por medio de cache muchas gracias por sus comentarios saludos
     
  9. KAOSNORMAL

    KAOSNORMAL Nuevo usuario

    Por ejemplo si tengo dos servidores igual de esos en uno pongo la pagina y en otro la base de datos si las puede aguantar eso es lo que entiendo o no es asi
    el script es propio y lo eh optimizado lo mas posible
     
  10. neocomp

    neocomp Usuario activo

    Esa podría ser una de las configuraciones con un servidor web y un MySQL remoto, la ventaja es que puedes configurar cada uno en forma más específica para optimizar el rendimiento del Apache y del MySQL respectivamente.

    Pero usualmente en la medida que aumenta la cantidad de usuarios conectados simultáneamente es necesario aumentar la cantidad de servidores web, ya que llega un punto donde agregar mas memoria no sirve de nada y los problemas comienzan por el I/O.

    El tener varios servidores web permite balancear la carga y repartirla entre todos los servidores del cluster, además es posible agregar y/o sacar servidores web en la medida que aumente o disminuya la carga.

    Creo que sería más recomendable tener al menos 2 servidores web conectados a un MySQL remoto, los que podrían tener entre 4 y 8 Gb de RAM.

    Además de la configuración en cluster, cada uno de los servidores tendrán un mejor rendimiento si utilizan múltiples discos con RAID-10 o discos SSD, sobre todo para el servidor MySQL por la cantidad de lecturas/escrituras de disco.
    Para los servidores web es recomendable nginx, algún caché de contenido estático como Varnish y algo que aún no he probado pero ya lo voy a probar como es CloudLinux.

    Si lograstes 4000 usuarios simultáneos con ese servidor y con cargas de cpu bajo 1,00 quiere decir que está bastante bien optimizado el sistema.
    Es crítico que el servidor MySQL esté lo más optimizado posible y poder aprovechar al máximo la memoria asignando cachés.

    Hace 2 semanas recibí el requerimiento de un cliente para soportar entre 10.000 y 15.000 usuarios simultáneos proyectados para realizar una encuesta online, sobre una base de más de 1 millón de clientes posibles.
    Yo estoy usando clusters con containers Virtuozzo desde hace varios años, pero por experiencia tengo claro que con altas cargas sobre 4000 o 5000 usuarios simultáneos los containers se han saturado e incluso han ocasionado problemas al nodo completo.

    Estuve haciendo pruebas con 2 sistemas bajo VMWare, pero ambos tuvieron problemas con cPanel y no tenía el tiempo suficiente para dedicarme a solucionar ese problema.
    Por lo que decidí montar el cluster usando VMs bajo Citrix XenServer conectados a SANs duales, algo que ya he usado anteriormente.

    La gran ventaja de usar VMs en vez de dedicados es que puedo hacer un upgrade/downgrade de recursos a cada VM en caso de ser necesario.
    Además que si los voy a necesitar solo por algunos días, luego los elimino y pago solo por los recursos efectivamente utilizados.

    Calculé unos 4.000 usuarios máximo por servidor web, asi que con 4 servidores tendría una capacidad estimada de 12.000 usuarios simultáneos.
    Cada servidor web lo configuré inicialmente con 4 cores Xeon y 4 Gb RAM.

    Para el servidor MySQL usé una configuración con mas cpu's y RAM ... 8 cores Xeon y 8 Gb RAM.
    Como no se podía tener una idea exacta de la carga inicial y se iban a enviar inicialmente casi 400.000 correos en menos de una hora, al final sugerí agregar 2 servidores web adicionales por si acaso :cool: y aumentar a 6 cores Xeon y 6 Gb de RAM c/u para tener un márgen de carga estimada de casi un 100%.

    Una vez enviado el primer grupo de correos, la carga aumentó desde 0 a 25.000 conexiones en exactamente 9 minutos :cool:
    Se me olvidaba un dato ... la carga de los web estaba balanceada a nivel de DNS, lo que además me permite agregar o sacar un web en unos 15 minutos.
    Monitoreando todos los servidores cada 5 segundos, cada servidor web soportó un peak de unas 4.400 conexiones con una carga máxima de los 6 cores de un 25% a 30%.

    Por lo tanto el cluster soportó un peak de unas 22.000 conexiones simultáneas y podría haber soportado hasta unas 75.000 sin problemas.
    El MySQL por otro lado mantuvo 75 threads MySQL conectadas desde los web, mantuvo una carga de los 8 cores de un 15% máximo y soportó casi 60 millones de queries en una semana.

    El sistema de encuestas estaba desarrollado integramente en PHP + MySQL y era un desarrollo 100% propio.
    Las preguntas de la encuesta también estaban en BD MySQL, por lo que también existió la idea de tener esas BD localmente en cada servidor web, pero no hubo tiempo para probar esa configuración y al final no fué necesario.

    Tampoco había demasiada carga de imágenes, pero en ese caso se pueden subir todos esos archivos a un CDN y asi se distribuye todo ese tráfico.

    Es muy difícil estimar con antelación la carga que va a tener un sistema, sobre todo pronosticar los peaks de carga que son los que causan la mayor cantidad de problemas.
    Afortunadamente luego de hacer este tipo de configuraciones la cantidad de información recopilada es invaluable, tengo estadísticas de todos los parámetros de los servidores "cada 1 minuto" durante todo el tiempo que ha estado funcionando el cluster.
    Además hice pruebas de agregar y sacar webs mientras todo el resto del cluster seguía funcionando y redimensionar VMs en minutos ... todo funcionó perfecto.

    Probablemente para una próxima encuesta similar voy a reducir los web a 4 cores Xeon con 4 Gb de RAM, incluso creo que con 2 Gb de RAM el rendimiento sería muy similar ... la RAM no es tan crítica en los web sobre cierto nivel.
    Y si el requerimiento es por un peak de 50.000 o 75.000 usuarios simultáneos basta con agregar más servidores web y listo o aumentar la cantidad de cores, por último se pueden agregar más webs solo para el día más crítico y despues se eliminan o se dejan stand-by con una configuración mínima, pero listos para meterlos al cluster en minutos y mientras se está realizando una encuesta.

    Otros tips son usar BD InnoDB en vez de MyISAM para las tablas que tienen muchas modificaciones, porque InnoDB permite múltiples modificaciones simultáneas, en cambio MyISAM bloquea la tabla mientras se hace una modificación y las demás quedan en la cola.
    O configurar las conexiones entre los web con el MySQL usando IP privadas, es muchísimo más seguro y se puede obtener una mayor velocidad de transferencia.

    Como todavía tengo el cluster montado con una configuración básica, estoy haciendo pruebas con un web remoto instalado en otro datacenter o configurar una réplica del MySQL para respaldo y las lecturas.

    Obviamente que el uso de VMs Citrix otorga una flexibilidad absoluta pudiendo potenciar el cluster hasta 96 veces el tamaño mínimo y redimensionarlo de acuerdo a los requerimientos del minuto ... como se paga por los recursos efectivamente utilizados, es una solución muchísimo mas económica y mas confiable que usar solo dedicados o VPSs de pago mensual.

    Otra alternativa es usar un cluster mixto, usando por ejemplo un dedicado como MySQL y VMs como servidores web, ya que el MySQL es el que mas recursos requiere y no se puede estar redimensionando a cada rato.

    Ufffffffffff ... Salió un poco largo el asunto ... pero la idea era aportar un ejemplo práctico por si a alguien le sirven las configuraciones usadas.
     
    A sysdop le gusta esto.
  11. ranman

    ranman Usuario activo

    entre varios equipos.

    Hola:

    Mi opinion y si se tiene en cuenta esas 5000 visitas vienen de un site con acceso masivo a BBDD como bien ha dicho ideasmultiples es que tengas al menos dos equipos, uno para la web y otro para la BBDD, de esta manera y si empiezas desde un principio con posibilidad de escalar la plataforma cuando tengas 20.000 usuarios todo sera ir agregando equipos a la solucion.
    Suerte.
     
  12. KAOSNORMAL

    KAOSNORMAL Nuevo usuario

    Gracias amigo neocomp y ranman por las ultimas respuestas bueno lo que hice y me esta ayudando aguantar esto es que tengo dos servidores con estas caracteristicas

    Intel i7-3820 - Quad core - Sandy Bridge-E
    32GB RAM
    2x1.5TB HDD
    1000 Mbps unmetered
    Linux OS: CentOS
    OS Architecture: 64-bit

    en uno cargo todas las imagenes y en otro los archivos php y la base de datos al principio quise solo poner la base de datos en el servidor extra pero la verda no pude configurar la base datos remoto me tardaba mucho la pagina en cargar no se aque se deba pero ahora con esto pueden llegar a los 5000 usuarios en linea y la pagina me carga bien aveces las imegenes me tardan un poco en cargar pero funciona bien la pagina principal en el de las imagenes lo tenia configurado con nginx y fast cgi el load estaba super bajo pero se trababan un poco las imagenes entonces decidi dejarlo con el nginx y subphp y esta funcionando bien mas tarde si aumentan los usuarios creo que seria buena idea poner la base de datos en otro servidor externo claro que tendria que configurar y aprender bien de ese tema saludos y gracias por la respuesta
     
  13. VPSFAN

    VPSFAN Nuevo usuario

    Que tipo de tablas utilizas en MySQL? InnoDB?

    Por curiosidad, de que se trata el sitio web?
     
  14. neocomp

    neocomp Usuario activo

    Si tenías problemas con las imagenes lo ideal habría sido mover todo eso a un CDN, asi distribuyes todo ese tráfico externamente en múltiples servidores, obtienes un sistema muchísimo más redundante que tener todo en un solo servidor y además te habría salido muchísimo mas económico ya que usualmente los CDN puedes pagarlos por el consumo que tengas.

    Configurar un cluster con varios web y un MySQL remoto tiene bastantes complejidades y hay que hacer varias configuraciones especiales, en particular si usas un firewall dentro del VPS.
    Hace varios años atras cuando configuré mi primer cluster estuve varias semanas haciendo pruebas con distintas configuraciones hasta obtener la ideal, ningún manual de configuración de cluster tenía todas las respuestas :) ... ya que siempre hay algunas diferencias dependiendo del S.O. y panel de control utilizado.

    Lo ideal es hacer las conexiones dentro del cluster por IPs privadas y no por las IPs públicas, asi se obtiene un sistema mucho mas seguro ya que el MySQL no queda disponible en la web y los puertos privados normalmente son unmetered y de mayor velocidad.

    Sin tener ninguna estadística de rendimiento de tu MySQL yo habría optado por dejar el servidor que tenías tal cual y haber agregado uno de la mitad de los recursos para instalarlo exclusivamente como servidor web con el fin de balancear la carga ... la conexión de múltiples usuarios simultáneos va a afectar principalmente a los servidores web y no al MySQL.

    Incluso en vez de agregar otro dedicado ... habría dejado el original sin cambios y habría agregado un par de VPS de menor tamaño para habilitarlos como web servers, obviamente primero tendrías que haber solucionado lo del MySQL remoto, asi habrías tenido 3 servidores web + 1 MySQL remoto ( MySQL local para el web del dedicado ) ... o sea un cluster mixto con un dedicado + 2 VPS's, probablemente habrías tenido el mismo costo de los 2 dedicados.

    Y si a la configuración anterior igual le sacas todas las imágenes a un CDN, es como la combinación perfecta y probablemente te pueda soportar hasta unos 15.000 0 20.000 usuarios simultáneos sin problemas.

    Si en un minuto el MySQL se está quedando corto de recursos, sacas el web del dedicado y lo metes en otro VPS y listo ... incluso lo podrías hacer con cero downtime y mientras el sistema sigue funcionando ... asi lo hago a menudo cuando en algún cluster se espera un peak de carga :)

    Otra recomendación ... lo ideal para las BD es utilizar RAID-10.
     
    Última edición: 26 Jul 2012
  15. KAOSNORMAL

    KAOSNORMAL Nuevo usuario

    Amigo VPSFAN uso tablas InnoDB y MyISAM esta combianada los InnoDB son para los usuario que por ejemplo los registros las veces que se logeuan comentarios todo lo que se escribe se va a ese tipo de tablas y MyISAM todo lo que agrego yo como administrados es una web de peliculas ...

    Amigo neocomp donde se pueden adquirir ese tipo de servicio CDN si me podrias pasar algun link?
     
  16. WebTech

    WebTech Súper Moderador Miembro del Staff Moderador CH

    Web por un lado, mysql por otro y un CDN o bien un server para contenido estático con nginx/lighttpd o varnish te solucionará la vida. Si usas algún cache como memcached integrado para bajar la carga de la base de datos, rendirá aún mejor.

    Si vas por un CDN, maxcdn.com es de lo mejor en relación precio, calidad y distribución de los nodos a nivel global.

    Saludos,
     
  17. Skamasle

    Skamasle Usuario activo

    Umm pues ese server a de aguantarte aunque lo ideal es separar el contenido estático y todo depende del consumo que tenga la web.

    Básicamente todo dependerá de la web.

    A mi un i5 me a aguantado 2000 Online sin muchos problemas, bien configurado y todo cargado desde el mismo servidor.

    Pero un opteron no me a aguantado 500, las dos PHP y Mysql la diferencia es que una la del opteron tenia algunos plugins que hacían que colapsara el mysql.

    Pero una web bien bien optimizada, cacheada etc ha de funcionarte casi sin problemas aunque como ya te han dicho distribuir la carga entre varios servidores es lo ideal para evitarse dolores de cabeza.

    A la larga aveces resulta mejor convertir el php - mysql en HTML tipo cache.. pero sin cache XD o sea cada X tiempo ir convirtiendo la web en HTML por partes ( hay plugins en WP y otras plataformas que lo hacen y el rendimiento es espectacular )

    Todo esta en la web :p
     
  18. annelkaren

    annelkaren Nuevo usuario

    Hola, espero me puedan ayudar.
    Que caracteristicas debe tener un servidor en que alojare chamilo que soporte cursos para 44 escuelas y alrededor de 7000 alumnos ?
     
  19. Con un Intel Xeon E3 Quadcore con 8GB o 16GB debería funcionar perfectamente. Si pasas al doble sería ir agregando frontalmente.
     
  20. Para alta disponibilidad va a necesitar dos balanceadores con Haproxy. Pero tiene que estar dispuesto a pagarlo. Por que de entrada va a necesitar 4 servers di quiere balanceador por software con HA proxy y un E3 para la web y otro E3 para la DB. Más otros dos para HA proxy. O el balanceo puede montarlo por hardware pero necesitara dos para evitar points of failure o puntos de fallo.

    Un poco de Varnish y Memcached no estaría de más y dos vps para dns externalizadas.

    Salu2,
     
  21. Adolfo Ponce

    Adolfo Ponce Nuevo usuario

    una pregunta.... tengo una app en android que se va a conectar a un webservice.. echos en nodejs,y php.
    se pronostica conexiones de 100,000 usuarios diarios en 2 meses. Las acciones a realizar de la app sera.. subir foto y videos cortos no mas de 10mb. Y publicaciones en la app. Que configuracion de servidores me recomiendan?? He alivianado la carga porque tambien tendria chat en tiempo real pero eso se lo deje a firebase. Pero en caso de lo demas .... que puedo hacer.. para que no se me caiga el servicio y las subidas de archivos no sean tan lentas.
     


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


    
    
    
    
Blog · Sitios amigos: GuiaHosting · Unidominios · Interalta ·