Los clientes incorporan MinIO a sus entornos para obtener almacenamiento de objetos de alto rendimiento compatible con S3 que se ejecuta en cualquier hardware físico o virtual y en Kubernetes. Nuestros puntos de referencia publicados demuestran que MinIO es el almacenamiento de objetos más rápido disponible, pero solo puede funcionar tan rápido como el hardware y la red que le proporcione. El rendimiento es un gran objetivo para nuestro equipo, por lo que hacemos todo lo posible para ayudar a los administradores a aprovechar MinIO al máximo. Para verificar que la infraestructura subyacente pueda soportar MinIO de manera óptima, proporcionamos dos métodos para evaluar el rendimiento e identificar posibles cuellos de botella: WARP y Speedtest.
Las aplicaciones modernas como AI/ML, análisis avanzados y bases de datos requieren almacenamiento de objetos de alto rendimiento. La combinación de escalabilidad y alto rendimiento de MinIO pone cada carga de trabajo, sin importar cuán exigente sea, a su alcance. Cuando el rendimiento es crítico, necesita saber que está logrando el mejor rendimiento posible. Los resultados de WARP y Speedtest se pueden utilizar para realizar un seguimiento del rendimiento a lo largo del tiempo e identificar de forma proactiva problemas potenciales antes de que se conviertan en problemas graves.
WARP es un software de evaluación del rendimiento S3 de código abierto y con todas las funciones creado para realizar pruebas entre clientes WARP y hosts de almacenamiento de objetos. WARP mide el rendimiento GET y PUT de múltiples clientes frente a un clúster MinIO. WARP tiene muchas opciones, configuradas por línea de comando o variables ambientales, lo que le permite crear pruebas que se alinean con sus cargas de trabajo. Recuerde: es absolutamente fundamental evaluar el rendimiento de manera significativa y realizar pruebas utilizando datos y una carga de trabajo que represente las condiciones del mundo real en las que opera su almacenamiento de objetos.
Por el contrario, Speedtest es una prueba de rendimiento automatizada fácil de usar que proporciona una experiencia optimizada y resultados concisos. Presentamos Speedtest en noviembre para brindar a los administradores de MinIO la capacidad de ejecutar una evaluación de rendimiento distribuida de sus clústeres MinIO con un solo comando. Speedtest ejecuta PUTS y luego GETS, aumentando gradualmente la carga para determinar el rendimiento agregado máximo. Las pruebas pueden tardar desde unos segundos hasta varios minutos en ejecutarse, según su clúster MinIO.
Existen algunas diferencias importantes entre WARP y Speedtest. WARP es una herramienta completa que prueba el rendimiento de su clúster MinIO mediante operaciones realizadas por clientes WARP. Las máquinas cliente realizan PUTS y GETS de objetos a través de la red hasta su clúster MinIO distribuido. Esto convierte a WARP en un mecanismo excelente para probar el rendimiento anticipado del cliente-servidor. Por el contrario, Speedtest se ejecuta en instancias MinIO para realizar PUTS y GETS de objetos a otras instancias MinIO en el mismo clúster. Como tal, Speedtest le dice de qué es capaz el lado del servidor de la ecuación de rendimiento.
WARP contiene casi todas las pruebas (GET, PUT, DELETE, LIST, STAT, RETENTION) que quizás desee ejecutar en el almacenamiento de objetos, y las ejecuciones de pruebas pueden incluir una combinación personalizada de tamaños de objetos para que coincida con sus cargas de trabajo. Speedtest ejecuta parámetros de prueba establecidos para determinar rápidamente el rendimiento máximo. Si bien WARP requiere software adicional, Speedtest se incluye con MinIO y se puede ejecutar desde la interfaz mc o la consola MinIO. Para ayudar en la resolución de problemas, los clientes pueden compartir los resultados de Speedtest con los ingenieros de MinIO con un solo clic.
Primero, echemos un vistazo a WARP. WARP es una herramienta que le permite comparar minuciosamente el rendimiento de MinIO o de cualquier almacenamiento de objetos compatible con S3 en una variedad de condiciones. De forma predeterminada, WARP realizará una prueba mixta de lectura y escritura en todos los discos utilizados por MinIO que se ejecuta en modo distribuido.
Para esta demostración. Ejecutaremos WARP para probar MinIO ejecutándose en AWS en modo distribuido. Hemos estado haciendo esto con bastante frecuencia últimamente, por lo que podemos asesorar a los clientes actuales y potenciales sobre las configuraciones de mayor rendimiento que hemos encontrado al probarlas.
WARP se encuentra en un repositorio de GitHub , donde también encontrarás documentación detallada.
Comenzaremos implementando MinIO en modo distribuido . Puede descargar MinIO e instalarlo usted mismo en su entorno, o puede seguir este tutorial para instalar MinIO en AWS EC2 .
De cualquier manera, comenzaremos con una implementación MinIO distribuida:
Una vez que MinIO esté en funcionamiento, podrá medir el rendimiento con WARP, así que comencemos.
Para todas las UI de Amazon o AWS CLI, siga los pasos de la publicación de blog anterior para implementar instancias, pero no configure almacenamiento adicional. Las instancias que ejecutan WARP deben ser lo suficientemente potentes como para generar objetos rápidamente y medir operaciones PUT y GET, pero no requieren el volumen de almacenamiento que necesita un nodo MinIO.
172.31.23.237 host1 172.31.26.78 host2 172.31.26.90 host3 172.31.19.110 host4 172.31.27.18 warp1 172.31.23.81 warp2 172.31.19.28 warp3 172.31.19.7 warp4
Tenga en cuenta que recomendamos enumerar y trabajar con los hosts en orden consecutivo. Esto simplifica el inicio de WARP desde la línea de comandos y facilita la localización de cada cliente WARP y host MinIO.
[root@ip-172-31-19-7 ec2-user]# wget https://github.com/minio/warp/releases/download/v0.5.5/warp_0.5.5_Linux_arm64.tar.gz 2022-02-08 20:06:04 (66.3 MB/s) - 'warp_0.5.5_Linux_arm64.tar.gz' saved [3943887/3943887] [root@ip-172-31-19-7 ec2-user]# tar -xzvf warp_0.5.5_Linux_arm64.tar.gz LICENSE README.md warp_logo.png warp [root@ip-172-31-19-7 ec2-user]# ./warp client warp: Listening on :7761
Observe que cada cliente WARP está escuchando en el puerto 7761
[root@ip-172-31-27-18 ec2-user]# WARP_ACCESS_KEY=minioadmin WARP_SECRET_KEY=minioadmin ./warp mixed --warp-client warp{1...4}:7761 --host host{1...4}:9000 --duration 120s --obj.size 64M --concurrent 64 warp: Benchmark data written to "warp-remote-2022-02-08[201339]-qymu.csv.zst" Mixed operations. Operation: DELETE, 10%, Concurrency: 256, Ran 1m54s. * Throughput: 39.90 obj/s Operation: GET, 45%, Concurrency: 256, Ran 1m54s. * Throughput: 10903.28 MiB/s, 178.64 obj/s Operation: PUT, 15%, Concurrency: 256, Ran 1m54s. * Throughput: 3628.27 MiB/s, 59.45 obj/s Operation: STAT, 30%, Concurrency: 256, Ran 1m54s. * Throughput: 119.98 obj/s Cluster Total: 14501.38 MiB/s, 397.44 obj/s over 1m55s. warp: Cleanup done. [root@ip-172-31-27-18 ec2-user]#
Ha completado una prueba básica de rendimiento en modo mixto utilizando WARP. Si bien utilizamos una prueba de modo mixto para demostrar WARP, normalmente obtendrá mejores resultados que están más alineados con el uso del mundo real) al dividir las operaciones individuales (GET, PUT, LIST) en sus propias ejecuciones de prueba en lugar de ejecutar una prueba mixta. -prueba de modo.
Le recomendamos que consulte la documentación para obtener información sobre cómo ejecutar más escenarios de prueba. Por ejemplo, puede habilitar TLS y el cifrado del lado del servidor para medir su impacto en su entorno. Puede estresar más la infraestructura aumentando el número de pruebas simultáneas. Puede utilizar una combinación aleatoria de tamaños de objetos o especificar un tamaño de objeto que coincida con su entorno y carga de trabajo actuales. Puede configurar las pruebas para que se ejecuten durante un período de tiempo definido o para que finalicen automáticamente como hicimos anteriormente.
Los resultados de WARP se muestran en pantalla y se guardan en un archivo CSV local comprimido con zstandard.
En caso de que no desee la flexibilidad total de WARP, hemos creado una forma rápida y sencilla de medir el rendimiento de MinIO utilizando Speedtest. Speedtest se ejecuta más comúnmente en modo de ajuste automático, aumentando gradualmente la carga para determinar el rendimiento agregado máximo.
Puedes usar mc para ejecutar Speedtest:
$ mc support perf object <alias>
[root@ip-172-31-77-115 ec2-user]# ./mc support perf object myminio THROUGHPUT IOPS PUT 2.4 GiB/s 38 objs/s GET 4.6 GiB/s 73 objs/s Speedtest: MinIO 2022-02-01T18:00:14Z, 4 servers, 16 drives, 64 MiB objects, 72 threads
O puede ejecutar Speedtest desde la consola MinIO, la GUI basada en navegador para configurar, administrar e informar sobre clústeres MinIO. Simplemente navegue hasta el menú Soporte y haga clic en Rendimiento, luego haga clic en el botón de inicio.
Se ejecutará la prueba de rendimiento. Cuando se completa, se muestra el rendimiento agregado de GET y PUT, así como el rendimiento de los nodos individuales.
Para obtener más detalles y ejemplos de Speedtest, consulte este tutorial .
Comience descargando MinIO hoy. Únase a nuestra comunidad de Slack e intercambie ideas con otros usuarios de MinIO. Si tiene alguna pregunta específica sobre el uso de WARP, comuníquese con nosotros a través de nuestro canal Slack (Matt Sarrel y Cesar Celis) o envíenos un correo electrónico a [email protected].
También publicado aquí .