Pregunta

Supongamos, quería desarrollar sitio web de desbordamiento de pila. ¿Cómo puedo calcular la cantidad de hardware básico requerido para apoyar esta web suponiendo que 1 millón de solicitudes por día. ¿Hay casos de estudio que explica las mejoras de rendimiento posible en esta situación?

Yo sé I / O cuello de botella es el principal obstáculo para la mayoría de los sistemas. ¿Cuáles son las posibles opciones para mejorar el rendimiento de E / S? Algunos de ellos son lo sé

  1. almacenamiento en caché
  2. replicación
¿Fue útil?

Solución

Puede mejorar el rendimiento de E / S de varias maneras dependiendo de lo que se utiliza para la configuración de almacenamiento:

  1. Aumentar tamaño de bloque del sistema de ficheros si su aplicación muestra buena localidad espacial en su E / S o utiliza archivos de gran tamaño.
  2. 10 (intercalado + mirroring) para un rendimiento + redundancia (fallo de disco protección).
  3. Utilice discos rápidos (En cuanto al rendimiento: SSD> FC> SATA).
  4. Separar las cargas de trabajo en diferentes momentos del día. p.ej. Copia de seguridad durante la noche, la aplicación normal de E / S durante el día.
  5. atime actualizaciones en su sistema de archivos.
  6. caché de archivos NFS maneja también conocido como Haystack (Facebook) , si el almacenamiento de datos en el servidor NFS.
  7. Combinar archivos pequeños en trozos más grandes, también conocido como BigTable , HBase .
  8. Evitar directorios muy grandes es decir, un montón de archivos en el mismo directorio (en lugar dividen entre diferentes archivos de directorios en una jerarquía).
  9. Utilizar un agrupado sistema de almacenamiento (sí no es exactamente hardware básico).
  10. Optimizar / diseñar la aplicación para el disco secuencial accede siempre que sea posible.
  11. memcached . :)

Es posible que desee ver en las "lecciones aprendidas" de Stackoverflow Arquitectura .

Otros consejos

echa un vistazo a esta herramienta útil:

http://www.sizinglounge.com/

y otra guía de dell:

http: / /www.dell.com/content/topics/global.aspx/power/en/ps3q01_graham?c=us&l=en&cs=555

si desea que su propia comunidad stackoverflow similar, puede inscribirse con StackExchange .

se puede leer algunos casos de estudio aquí:

Alta escalabilidad - ¿Cómo Rackspace ahora usa MapReduce Hadoop y realizar consultas terabytes de datos http://highscalability.com/how- -ahora-usos Rackspace-MapReduce-y-Hadoop-query-terabytes de datos

http: //www.gear6 .com / gear6-descargas? fid = 56 y = DLT-estudio de caso y ls = Veoh-estudio de caso

1 millón de solicitudes por día es de 12 / segundo. Desbordamiento de pila es lo suficientemente pequeño que se puede (con la normalización interesante y trucos de compresión) encajan por completo en la memoria RAM de un 64 Gbyte Dell PowerEdge 2970. No estoy seguro de que el almacenamiento en caché y replicación deben desempeñar un papel.

Si usted tiene un problema pensando lo suficiente acerca de la normalización, un R900 PowerEdge con 256 GB está disponible.

Si no te gusta un único punto de fallo, se puede conectar a algunos de los cambios y simplemente empujar a través de una toma de corriente (preferentemente en una tarjeta de red independiente). Incluso una carga máxima de 12 K / segundo no debería ser un problema para un sistema de memoria principal.

La mejor manera de evitar el cuello de botella de E / S es no hacer de E / S (en lo posible). Eso significa una arquitectura Prevayler-como con las escrituras por lotes (no hay problema de perder unos segundos de datos), básicamente un archivo de registro, y para la replicación escribir también a cabo a una toma de corriente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top