¿Cómo se puede estimar el costo del servidor por usuario en un portal social SaaS?

Le recomendaría que haga algunas pruebas de carga en un entorno de control de calidad con infraestructura similar para tener una idea de la cantidad de carga que los usuarios concurrentes que realizan transacciones clave colocarán en el sistema. Una transacción podría ser leer una publicación, escribir una publicación, realizar una búsqueda, etc. Es posible que ciertas transacciones consuman más recursos que otras (búsquedas y escrituras) y que desee dividir estos componentes en máquinas separadas y dedicadas para mantener las operaciones de lectura fluyendo sin problemas.

Debería poder realizar hits de tamaño similar para cada tipo de transacción para comprender cómo se desempeñan entre sí, pero no olvide hacer una prueba mixta ya que ciertas operaciones pueden bloquear otras operaciones y querrá ver qué sucede allí .

Por lo tanto, puede comenzar con 100, luego 200, luego 300, luego 400, hasta X transacciones de lectura simultáneas en un ciclo durante algún intervalo, y tomar algunas medidas de carga durante esos intervalos. Entonces escribe. Entonces haz búsquedas. Compare las mediciones para determinar qué operaciones tienen la carga más alta y cómo se ve su curva de crecimiento durante esos intervalos (lineal, exponencial, logarítmico, etc.) que lo ayudarán a proyectar la carga en ciertos umbrales concurrentes.

Luego haga algo como 33% de lectura, 33% de escritura, 33% de búsqueda simultánea y vea cómo se desarrollan todas las operaciones juntas y si tiene algún problema de bloqueo. (De nuevo, en incrementos).

Luego, finalmente, querrá ajustar lo que cree que podría ser el volumen normal (80% de lectura, 10% de escritura, 10% de búsqueda o algo así). (De nuevo, en incrementos).

Una vez que haya hecho eso, empuje la máquina al fracaso utilizando el modelo de “volumen normal anticipado” para comprender cuál es su umbral superior.

Ahora, dése espacio libre en esa máquina. Digamos que vomitó a 1,000 concurrentes. Tal vez diremos que 800 operaciones concurrentes es lo máximo que queremos poner en una sola máquina debido a esto. Esta es una decisión, pero concédete suficiente espacio sin darte demasiado espacio como para estar subutilizando completamente la caja.

Bien, ahora sabemos que cada máquina puede hacer X concurrentes.

En función de cada usuario, en nuestro ejemplo de 800 concurrentes por servidor, usted tomaría el precio de ese servidor dividido por 800 (ya que cada concurrente es un usuario), y ese es el costo por usuario para esa máquina. Esto supone una utilización del 100%, por lo que siempre habrá un servidor para un usuario si tiene 800 usuarios. Si escatima y mide con una utilización del 50%, podría ser enclavado en las horas pico y no poder atender las solicitudes.

Por lo tanto, tendrá que preocuparse por el aspecto que tendrá su uso pico y no pico. Habrá horas pico y no pico. Mi consejo: planifique las horas pico cuando planifique la capacidad (es decir, si su pico es de 1600 concurrentes, necesitará al menos dos máquinas para manejarlo, incluso si solo promedia 800 concurrentes durante las horas no pico).

En este punto, descubrir estos números será en su mayoría un trabajo de conjetura educado hasta que pueda obtener datos reales en vivo.

Después de llegar a un pico estimado, observe sus medidas y descubra dónde se encuentra. ¿Necesita un servidor, dos servidores, etc. para manejar esa carga?

Es realmente un juego de tuning.

Solo un aviso: si cambia su base de código, es posible que sus mediciones ya no sean válidas, ya que las mediciones se tomaron contra lo que ahora es una versión anterior del sitio.

Las pruebas de carga pueden darle una idea, pero querrá ver esos números una vez que entre en funcionamiento. Es posible que conozca sus números de capacidad, pero no puede predecir cuántas personas se presentarán realmente a la fiesta.

No olvide especificar el almacenamiento por usuario en sus estimaciones.

Hay un montón de herramientas de prueba de carga de FOSS por ahí que debe considerar para comenzar. Jmeter es bastante popular con el que podrías comenzar.

Un último consejo: busque en las opciones de nube disponibles que le permiten ampliar / reducir según demanda. Algunos proveedores de la nube tienen API donde puede monitorear mediante programación la carga y aumentar o disminuir las instancias según sea necesario. De esa manera, sabrá cuánto le costará por usuario, pero en realidad no necesita mantener esos servidores adicionales durante las horas pico; puedes girar una instancia cuando llegue el momento.

La mejor de las suertes.

Hay una serie de cosas que debe tener en cuenta con la moneda:

a) Número de usuarios
b) Número de usuarios concurrentes
c) ¿Cuánto almacenamiento imagina por usuario?

En una red social típica, también tendría un servidor de anuncios y una capa de procesamiento de datos.

A continuación se muestra un ejemplo de arquitectura de red social:

Mis dos centavos..

More Interesting

Para un SaaS B2B, después de enviar una propuesta de negocio, ¿cuál es el consejo final para cerrar el trato durante el seguimiento? ¿Qué tasa de conversión de propuesta enviada al cliente cerrado puede ser exceptuada?

¿Qué tan común es que una compañía de software cobre su tarifa anual por adelantado y otorgue un período de espera de 60 días antes de configurar el software?

¿Cuál es el mejor servicio wiki para empresas?

¿A qué sitios web de listas B2B de SaaS debo enviar mi solución?

¿Qué estrategias utilizó Salesforce para dominar efectivamente el espacio de CRM? ¿Los clientes ya no usaban otros productos CRM? ¿Cómo los convencieron de cambiar?

¿Qué mercados de software interrumpirán SaaS?

¿Cuáles son algunas empresas SaaS que alojan un blog en su propio dominio en wordpress.com?

¿Dar una demostración cerrada de su producto SaaS es mejor o peor que una demostración en persona (estilo de calificación de ventas)?

¿Cuál es la mejor plataforma para construir una solución SaaS?

¿Qué métricas clave debo rastrear si mi producto es un servicio automatizado (SaaS)?

¿Por qué no hay aplicaciones de base de datos relacionales en línea decentes a un precio razonable?

¿Qué características cabría esperar de un sistema de series de tiempo como servicio y qué se consideraría un modelo de precios razonable?

¿Qué CRM o SaaS utiliza para administrar su comunidad?

¿Cómo gana dinero el software de gestión de eventos (SaaS) en India?

¿Cómo funciona COS en un entorno de desarrollo ágil de Saas?