Cuando piensas en, las métricas como la latencia y el rendimiento son probablemente las primeras cosas que vienen a la mente. Hemos abordado esas métricas bastante extensamentey. Hoy, analizaré algunos factores que afectan el rendimiento de la nube y de los que quizás no se hable con tanta frecuencia, entre ellos:
- El tamaño de sus archivos.
- La cantidad de piezas que cargas o descargas.
- (tamaño parcial).
Puede que estos factores no sean “sorprendentes” en sí, especialmente si recuerdas el dolor de intentar descargar Matrix por acceso telefónico. Pero son aspectos que debes tener en cuenta (y sobre los que tienes más control) cuando piensas en el rendimiento general de la nube.
Vamos a profundizar en el tema.
1. El tamaño de tus archivos
Este es bastante obvio. Los archivos más grandes tardan más porque requieren que se transfieran más datos. Si tienes una conexión de carga de 10 Mbps, un archivo de 1 GB tardará aproximadamente 800 segundos (13 minutos y 20 segundos) en cargarse, mientras que un archivo de 100 MB tardará unos 80 segundos (un minuto y 20 segundos). La mayoría de las conexiones a Internet de nivel empresarial ofrecen velocidades de carga más altas, pero 10 Mbps hacen que las matemáticas sean accesibles para el bien del argumento.
Los archivos pequeños (es decir, los de menos de 5 GB) se pueden cargar en una única llamada API. (Nota: esto puede variar según el proveedor de almacenamiento en la nube y la configuración). Los archivos más grandes, de hasta 10 TB, se pueden cargar como “partes” en varias llamadas API. Cada parte debe tener un mínimo de 5 MB y un máximo de 5 GB.
Notarás que aquí hay una gran superposición. Para cargar archivos de entre 5 MB y 5 GB, ¿es mejor cargarlos en una única llamada API o dividirlos en partes? ¿Cuál es el tamaño de parte óptimo? Para las aplicaciones de copia de seguridad, que normalmente dividen todos los datos en bloques de igual tamaño y almacenan cada bloque como un archivo, ¿cuál es el tamaño de bloque óptimo? Como sucede con muchas preguntas, la respuesta es: depende.
2. La cantidad de piezas que cargues o descargues
Cada llamada a la API genera una sobrecarga más o menos fija debido a la latencia. Para un archivo de 1 GB, suponiendo que se ejecuta en un único subproceso, cargar los 1 GB en una única llamada a la API será más rápido que cargar 10 llamadas a la API con una parte de 100 MB cada una, ya que esas nueve llamadas a la API adicionales generan cierta sobrecarga por latencia. Por lo tanto, cuanto más grande, mejor, ¿no?
3. Tamaño del bloque (parte)
No necesariamente, y eso nos lleva al tamaño de la pieza.Como se mencionó anteriormente, nos brinda la oportunidad de cargar múltiples partes simultáneamente, lo que mejora el rendimiento, pero existen desventajas. Por lo general, cada parte debe almacenarse en la memoria a medida que se carga, por lo que más subprocesos significan un mayor consumo de memoria. Si la cantidad de subprocesos multiplicada por el tamaño de la parte excede la memoria disponible, entonces la aplicación fallará con un error de falta de memoria o los datos se intercambiarán en el disco, lo que reducirá el rendimiento.
La descarga de datos ofrece incluso más flexibilidad, ya que las aplicaciones pueden especificar cualquier parte del archivo que se va a descargar en cada llamada a la API. Ya sea que se carguen o descarguen datos, existe una cantidad máxima de subprocesos que harán que el rendimiento consuma todo el ancho de banda disponible. Si se excede este máximo, se consumirá más memoria, pero no se obtendrá ningún beneficio en el rendimiento.
Entonces, ¿qué hacer para obtener el mejor rendimiento posible para su caso de uso?
Simple: personaliza tu configuración
La mayoría de las herramientas de copia de seguridad y transferencia de archivos le permiten configurar la cantidad de subprocesos y la cantidad de datos que se transferirán por llamada a la API, ya sea el tamaño del bloque o el tamaño de una parte. Si está escribiendo su propia aplicación, debe permitir que se configuren estos parámetros. En lo que respecta a la implementación, es posible que se requiera cierta experimentación para lograr el máximo rendimiento con la memoria disponible.
La gran conclusión: cuando se trata del rendimiento de la nube, las métricas que debe tener en cuenta y el rendimiento que realmente necesita dependen en gran medida de su caso de uso, su propia infraestructura, su carga de trabajo y también de todas las conexiones de red entre su infraestructura y el proveedor de la nube. Por lo tanto, cuando esté decidiendo cómo almacenar y usar sus datos, vale la pena tomarse un tiempo adicional para considerar los factores anteriores para obtener un rendimiento óptimo.
Comments (0)