Persiguiendo los cuellos de botella de disco con iperf3

2021-10-15T09:00:00+02:00 | 11 minutos de lectura | Actualizado en 2021-10-15T09:00:00+02:00

Persiguiendo los cuellos de botella de disco con iperf3

Persiguiendo los cuellos de botella en disco

He hecho un artículo en el cual detallo todo esto esto. Está en este artículo por si no lo has visto, donde está detallado todo el proceso, y los comandos que uso junto a sus parámetros.
También están el artículo y el vídeo donde hay mucha más información que asumo ya y que no quiero repetir en este artículo.

Objetivo. Analizar la lectura y escritura en disco

El parámetro -F que como podéis ver en el vídeo, me equivoco, determina el destino y origen de la carga que mueve iperf por la red.
En nuestro caso, vamos a analizar lectura de un SSD, lectura de un par de discos mecánicos y escritura, en disco mecánico esta vez porque es lo que tendrán los servidores de virtualización.
La metodología dista bastante de ser perfecta puesto que ni en todo momento la lectura o escritura en disco es lineal ni en todo momento los ficheros son grandes y secuenciales.
Con esto puedo aspirar a saber un límite mínimo realista, que se acerque a la realidad sin serlo.

Primer concepto, el fichero dummy

Lo primero que voy a hacer es crear un fichero con el que jugar, y lo voy a hacer con powershell.
Esto me va a permitir no depender de múltiples fuentes, y en el vídeo me ha servido para ahorrarme tiempos.
La triste realidad es que seguramente no necesite solo uno, si no varios, por temas de cachés y demás

Creación de un fichero via API de .net

Al igual que en linux haríamos con dd if=/dev/null of=./test.vmdk bs=1M count=500 en windows también puedo crear un fichero vacío con powershell.

$fichero = new-object System.IO.FileStream .\test.vmdk, Create, ReadWrite
$fichero.SetLength(500MB)
$fichero.Close()

Con eso creamos la estructura en la tabla de archivos, con un descriptor a un fichero abierto con un nombre, le añadimos un tamaño y cerramos el fichero.

¿Servidor en linux? Mejor aún

En el caso de leer varias veces el mismo fichero, lo que conseguiremos es que “prefetcher”, “superfetch”, y todos esos derivados del viejo “smartdrv” que hacen de caché de disco, nos sirvan los datos de memoria. Para ello, es bueno crear, usar y destruir.
Pero en linux hay otra opción, que es limpiar manualmente y reiniciar el uso de caché durante la prueba, eso si, como root:

sync; echo 3 > /proc/sys/vm/drop_caches 

Esto lo que hace es escribir a disco los buffers, poner el valor 3 en drop_caches y reiniciar el almacenamiento y uso de sus funcionalidades.
Básicamente será:

  • Mientras queda prueba
    • Ejecuto prueba
    • Limpio caché
    • Vuelvo a ver si queda prueba

Segundo concepto. La metodología

Esto es muy simple.
La idea es seguir y localizar en que punto mi flujo de datos en disco es más lento que el canal de red que estoy usando. Como base, tenemos la topología de red y adaptadores diseñada a raíz de las pruebas del artículo anterior

Para afinar, las pruebas serán:

  • Desde ordenador MII con SSD, lectura de SSD a Servidor Dell a memoria. Con eso veremos la velocidad de lectura.
  • Desde ordenador MII con SSD, lectura de USB a Servidor Dell a memoria. Con eso veremos la velocidad de lectura del disco externo
  • Desde el ordenador MII, escritura en Servidor Dell en disco mecánico interno. Vamos a ver que disco es más viable.
  • Desde el ordenador MII, escritura en Servidor Dell en disco mecánico externo. Vamos a ver que disco es más viable y se repetirá en un par de ocasiones.

El resultado más lento nos determinará el disco menos apto y obraré en consecuencia.

Esta es mi guía para localizar cuellos de botella en esta infraestructura.

Las pruebas

Pues igual que en artículo anterior, voy a probar varias veces a ver que resultados obtengo.

Prueba 1a

Desde ordenador MII con SSD, lectura de SSD a Servidor Dell a memoria.
Con eso veremos la velocidad de lectura.

PS C:\Users\Sistemas\Downloads> .\iperf3.exe -c 169.254.76.145 -F .\test.vmdk
Connecting to host 169.254.76.145, port 5201
[  4] local 169.254.124.136 port 59041 connected to 169.254.76.145 port 5201
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-0.56   sec  59.6 MBytes   891 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-0.56   sec  59.6 MBytes   891 Mbits/sec                  sender
        Sent 59.6 MByte /  500 MByte (11%) of .\test.vmdk
[  4]   0.00-0.56   sec  59.6 MBytes   891 Mbits/sec                  receiver

iperf Done.

Prueba 1b

Desde ordenador MII con SSD, lectura de USB a Servidor Dell a memoria.
Con eso veremos la velocidad de lectura del disco externo Toshiba.

PS C:\Users\Sistemas\Downloads> .\iperf3.exe -c 169.254.76.145 -F 'd:\copiavm.vmdk'
Connecting to host 169.254.76.145, port 5201
[  4] local 169.254.124.136 port 59043 connected to 169.254.76.145 port 5201
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-1.01   sec  48.0 MBytes   399 Mbits/sec
[  4]   1.01-2.00   sec  53.4 MBytes   450 Mbits/sec
[  4]   2.00-3.01   sec  50.5 MBytes   423 Mbits/sec
[  4]   3.01-4.00   sec  51.2 MBytes   432 Mbits/sec
[  4]   4.00-5.00   sec  50.9 MBytes   426 Mbits/sec
[  4]   5.00-6.01   sec  52.5 MBytes   439 Mbits/sec
[  4]   6.01-7.02   sec  52.8 MBytes   438 Mbits/sec
[  4]   7.02-8.02   sec  52.5 MBytes   438 Mbits/sec
[  4]   8.02-9.01   sec  50.6 MBytes   431 Mbits/sec
[  4]   9.01-10.01  sec  55.0 MBytes   457 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-10.01  sec   517 MBytes   433 Mbits/sec                  sender
        Sent  517 MByte / 5.30 GByte (9%) of d:\copiavm.vmdk
[  4]   0.00-10.01  sec   517 MBytes   433 Mbits/sec                  receiver

iperf Done.

Prueba 1c

Desde ordenador MII con SSD, lectura de USB a Servidor Dell a memoria.
Con eso veremos la velocidad de lectura del disco externo Seagate.

PS C:\Users\Sistemas\Downloads> .\iperf3.exe -c 169.254.76.145 -F 'e:\New folder\ghost.gho'
Connecting to host 169.254.76.145, port 5201
[  4] local 169.254.124.136 port 59056 connected to 169.254.76.145 port 5201
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-1.00   sec  85.4 MBytes   715 Mbits/sec
[  4]   1.00-2.00   sec  91.5 MBytes   767 Mbits/sec
[  4]   2.00-3.00   sec  90.0 MBytes   754 Mbits/sec
[  4]   3.00-4.01   sec  77.4 MBytes   648 Mbits/sec
[  4]   4.01-5.01   sec  86.2 MBytes   723 Mbits/sec
[  4]   5.01-6.00   sec  89.8 MBytes   755 Mbits/sec
[  4]   6.00-7.00   sec  92.0 MBytes   774 Mbits/sec
[  4]   7.00-8.01   sec  80.2 MBytes   664 Mbits/sec
[  4]   8.01-9.01   sec  71.8 MBytes   607 Mbits/sec
[  4]   9.01-9.50   sec  40.8 MBytes   692 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-9.50   sec   805 MBytes   711 Mbits/sec                  sender
        Sent  805 MByte / 1.23 GByte (63%) of e:\New folder\ghost.gho
[  4]   0.00-9.50   sec   805 MBytes   711 Mbits/sec                  receiver

iperf Done.

Prueba 2a

Desde el ordenador MII, escritura en Servidor Dell en disco mecánico interno.
Vamos a ver que disco es más viable.

PS C:\users\equipo\Downloads> .\iperf3.exe -s -F Ficherobasura
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 169.254.124.136, port 59059
[  5] local 169.254.76.145 port 5201 connected to 169.254.124.136 port 59060
[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-1.03   sec  5.14 MBytes  41.9 Mbits/sec
[  5]   1.03-2.02   sec  5.88 MBytes  49.6 Mbits/sec
[  5]   2.02-3.04   sec  5.88 MBytes  48.5 Mbits/sec
[  5]   3.04-4.02   sec  5.62 MBytes  48.0 Mbits/sec
[  5]   4.02-5.03   sec  5.75 MBytes  47.9 Mbits/sec
[  5]   5.03-6.02   sec  6.25 MBytes  52.9 Mbits/sec
[  5]   6.02-7.03   sec  6.00 MBytes  49.8 Mbits/sec
[  5]   7.03-8.04   sec  6.38 MBytes  53.1 Mbits/sec
[  5]   8.04-9.09   sec  6.12 MBytes  49.0 Mbits/sec
[  5]   9.09-10.02  sec  5.12 MBytes  46.0 Mbits/sec
[  5]  10.02-10.03  sec  0.00 Bytes  0.00 bits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-10.03  sec  0.00 Bytes  0.00 bits/sec                  sender
        Sent 0.00 Byte / 58.1 MByte (0%) of Ficherobasura
[  5]   0.00-10.03  sec  58.1 MBytes  48.6 Mbits/sec                  receiver

Prueba 2b

Desde el ordenador MII, escritura en Servidor Dell en disco mecánico externo.
Vamos a ver que disco es más viable igual que la lectura. Primero con Seagate.

PS C:\users\equipo\Downloads> .\iperf3.exe -s -F d:\Ficherobasura
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 169.254.124.136, port 50880
[  5] local 169.254.76.145 port 5201 connected to 169.254.124.136 port 50881
[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-1.08   sec  3.14 MBytes  24.3 Mbits/sec
[  5]   1.08-2.05   sec  3.12 MBytes  27.1 Mbits/sec
[  5]   2.05-3.04   sec  3.75 MBytes  31.8 Mbits/sec
[  5]   3.04-4.06   sec  3.25 MBytes  26.7 Mbits/sec
[  5]   4.06-5.05   sec  2.75 MBytes  23.3 Mbits/sec
[  5]   5.05-6.06   sec  2.75 MBytes  22.8 Mbits/sec
[  5]   6.06-7.07   sec  2.75 MBytes  22.8 Mbits/sec
[  5]   7.07-8.09   sec  2.75 MBytes  22.8 Mbits/sec
[  5]   8.09-9.09   sec  2.75 MBytes  23.1 Mbits/sec
[  5]   9.09-10.01  sec  2.38 MBytes  21.6 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-10.01  sec  0.00 Bytes  0.00 bits/sec                  sender
        Sent 0.00 Byte / 29.4 MByte (0%) of d:\Ficherobasura
[  5]   0.00-10.01  sec  29.4 MBytes  24.6 Mbits/sec                  receiver

Prueba 2c

Desde el ordenador MII, escritura en Servidor Dell en disco mecánico externo. Vamos a ver que disco es más viable, ahora con Toshiba.

PS C:\users\equipo\Downloads> .\iperf3.exe -s -F d:\Ficherobasura
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 169.254.124.136, port 59061
[  5] local 169.254.76.145 port 5201 connected to 169.254.124.136 port 59062
[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-1.00   sec  40.6 MBytes   340 Mbits/sec
[  5]   1.00-2.11   sec  42.1 MBytes   320 Mbits/sec
[  5]   2.11-3.01   sec  42.4 MBytes   394 Mbits/sec
[  5]   3.01-4.00   sec  43.5 MBytes   368 Mbits/sec
[  5]   4.00-5.02   sec  44.8 MBytes   370 Mbits/sec
[  5]   5.02-6.00   sec  49.1 MBytes   418 Mbits/sec
[  5]   6.00-7.01   sec  54.0 MBytes   449 Mbits/sec
[  5]   7.01-8.00   sec  48.6 MBytes   411 Mbits/sec
[  5]   8.00-9.00   sec  53.0 MBytes   445 Mbits/sec
[  5]   9.00-10.00  sec  54.9 MBytes   461 Mbits/sec
[  5]  10.00-10.00  sec  0.00 Bytes  0.00 bits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-10.00  sec  0.00 Bytes  0.00 bits/sec                  sender
        Sent 0.00 Byte /  473 MByte (0%) of d:\Ficherobasura
[  5]   0.00-10.00  sec   473 MBytes   397 Mbits/sec                  receiver

Prueba 2d

Desde el ordenador MII, escritura en Servidor Dell en disco mecánico externo. Vamos a ver que disco es más viable, ahora con Toshiba, pero en un puerto USB 2.0

PS C:\users\equipo\Downloads> .\iperf3.exe -s -F d:\Ficherobasura
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 169.254.124.136, port 50880
[  5] local 169.254.76.145 port 5201 connected to 169.254.124.136 port 50881
[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-1.08   sec  3.14 MBytes  24.3 Mbits/sec
[  5]   1.08-2.05   sec  3.12 MBytes  27.1 Mbits/sec
[  5]   2.05-3.04   sec  3.75 MBytes  31.8 Mbits/sec
[  5]   3.04-4.06   sec  3.25 MBytes  26.7 Mbits/sec
[  5]   4.06-5.05   sec  2.75 MBytes  23.3 Mbits/sec
[  5]   5.05-6.06   sec  2.75 MBytes  22.8 Mbits/sec
[  5]   6.06-7.07   sec  2.75 MBytes  22.8 Mbits/sec
[  5]   7.07-8.09   sec  2.75 MBytes  22.8 Mbits/sec
[  5]   8.09-9.09   sec  2.75 MBytes  23.1 Mbits/sec
[  5]   9.09-10.01  sec  2.38 MBytes  21.6 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-10.01  sec  0.00 Bytes  0.00 bits/sec                  sender
        Sent 0.00 Byte / 29.4 MByte (0%) of d:\Ficherobasura
[  5]   0.00-10.01  sec  29.4 MBytes  24.6 Mbits/sec                  receiver

Resumen y resultado

Como vemos tenemos las siguientes velocidades:

Prueba Tipo elemento medido Resultado
1a Lectura a RAM Disco SSD SK Hynix M.2 891 Mbits/sec
1b Lectura a RAM Toshiba MQ01 ABD100 USB 3.0 UASP 433 Mbits/sec
1c Lectura a RAM Seagate ST1000LM35 USB 3.0 UASP 711 Mbits/sec
2a Escritura desde RAM WDC WD5000 SATA3 48.6 Mbits/sec
2b Escritura desde RAM Seagate ST1000LM35 USB 3.0 UASP 24.6 Mbits/sec
2c Escritura desde RAM Toshiba MQ01 ABD100 USB 3.0 UASP 397 Mbits/sec
2d Escritura desde RAM Toshiba MQ01 ABD100 USB 2.0 24.6 Mbits/sec

Esto significa que no vamos a encontrarnos problemas significativos de lectura si no que la lucha estará en la escritura.
Y es en escritura donde, a Falta de confirmarlo, parece ser que el peor de los discos, el Toshiba, mejora en rendimiento de escritura a discos de 7200 RPM en principio superiores a las 5400 RPM del Toshiba.
Ante las dudas, si, he repetido varias veces las pruebas y arroja esos resultados.

Así, tal como dije en el vídeo, el flujo será de lectura del M.2 a escritura en el WD, o puede que en el Toshiba, y con esto ya queda localizado viendo donde y como podemos hacer las siguientes pruebas.

Hasta la proxima.


YoVirtualizador en formato podcast. Ahora también en Sospechosos Habituales: https://wt.territoriolinux.es/rss/short.xml
Y sin más, os dejo los enlaces:

Web: https://www.yovirtualizador.com
Grupo de telegram: https://t.me/grupovirtualizador
Podcast: https://www.ivoox.com/podcast-yovirtualizador_fg_f1563806_filtro_1.xml
Canal de youtube: https://youtube.com/@yovirtualizador
Enlace de afiliados de amazon: https://amzn.to/3gX3HmK
Enlace de referidos de la Asociación Podcast: https://www.asociacionpodcast.es/registrarse/socio/?coupon=SB6A70

© 2019 - 2026 YoVirtualizador

Tu podcast y blog de confianza

Política de comentarios

En YoVirtualizador, todos los comentarios serán bienvenidos pero moderados.

Los grupos de telegram y redes sociales tienen moderación activa. Consulta con sus administradores.

Respetos guardan respetos.

El contenido irrelevante u ofensivo será eliminado.

Acerca de YoVirtualizador

YoVirtualizador es la marca de varios proyectos

Podcast de informática profesional. Canal de Youtube sobre el blog, el podcast y de temática profesional. Blog de contenido diverso, con temática BOFH y técnica.

Gracias por la lectura.

Galletas

Política de cookies

Lo de las galletas en 2025

En YoVirtualizador no usamos cookies para nada, pero los servicios de discus y analytics recopilan datos en servidores ajenos a YoVirtualizador sin que yo pueda hacer nada. Si no quieres galletas, usa un navegador que no ejecute javascript.

Este aviso es sólo porque algún político tenía que justificar su existencia, y ahora además hay que redactar.

Legislación aplicable:

  • Reglamento (UE) 2016/679 del Parlamento Europeo y del Consejo, de 27 de abril de 2016, General de Protección de Datos (RGPD) (Aplicable desde mayo de 2018),“Establece la definición y los requisitos del consentimiento (libre, informado, específico e inequívoco) y los derechos del interesado. Es la norma principal sobre datos personales.”
  • Artículo 22 de la Ley 34/2002, de 11 de julio, de servicios de la sociedad de la información y de comercio electrónico (LSSI). Es la norma específica española sobre cookies. Establece la obligación de informar y obtener el consentimiento para el uso de dispositivos de almacenamiento y recuperación de datos (cookies) que no sean estrictamente necesarios.
  • Ley Orgánica 3/2018, de 5 de diciembre, de Protección de Datos y garantía de los derechos digitales (LOPDGDD) (Aplicable desde diciembre de 2018),Es la ley española que desarrolla y adapta el RGPD al ordenamiento jurídico español. Complementa la LSSI en lo relativo a la protección de datos personales.

Definición y función de las cookies

¿Qué son las cookies? Una cookie es un fichero que se descarga en su ordenador al acceder a determinadas páginas web. Las cookies permiten a una página web, entre otras cosas, almacenar y recuperar información sobre los hábitos de navegación de un usuario o de su equipo y, dependiendo de la información que contengan y de la forma en que utilice su equipo, pueden utilizarse para reconocer al usuario.
¿Qué tipos de cookies utiliza esta página web? Cookies propias: Son aquéllas que se envían al equipo terminal del usuario desde un equipo o dominio gestionado por el propio editor y desde el que se presta el servicio solicitado por el usuario. Cookies de terceros Son aquéllas que se envían al equipo terminal del usuario desde un equipo o dominio que no es gestionado por el editor, sino por otra entidad que trata los datos obtenidos través de las cookies. Cookies persistentes Son un tipo de cookies en el que los datos siguen almacenados en el terminal y pueden ser accedidos y tratados durante un periodo definido por el responsable de la cookie, y que puede ir de unos minutos a varios años. Cookies de análisis Son aquéllas que bien tratadas por nosotros o por terceros, nos permiten cuantificar el número de usuarios y así realizar la medición y análisis estadístico de la utilización que hacen los usuarios del servicio ofertado. Para ello se analiza su navegación en nuestra página web con el fin de mejorar la oferta informativa, productos o servicios que le ofrecemos. Cookies publicitarias Son aquéllas que permiten la gestión, de la forma más eficaz posible, de los espacios publicitarios que, en su caso, el editor haya incluido en una página web, aplicación o plataforma desde la que presta el servicio solicitado en base a criterios como el contenido editado o la frecuencia en la que se muestran los anuncios.

Asimismo es posible que al visitar alguna pagina web o al abrir algún email donde se publique algún anuncio o alguna promoción sobre nuestros productos o servicios se instale en tu navegador alguna cookie que nos sirve para mostrarte posteriormente publicidad relacionada con la búsqueda que hayas realizado, desarrollar un control de nuestros anuncios en relación, por ejemplo, con el numero de veces que son vistos, donde aparecen, a que hora se ven, etc

Ayuda con las galletas

Como algún político tenía que justificar su existencia, yo te cuento como lo vamos a hacer.

Revocación y eliminación de cookies (IA generativa dixit)

Usted puede permitir, bloquear o eliminar las cookies instaladas en su equipo mediante la configuración de las opciones del navegador instalado en su ordenador, en caso que no permita la instalación de cookies en su navegador es posible que no pueda acceder a alguna de las secciones de nuestra web.

A continuación puede encontrar como acceder a la configuración de las cookies en los principales navegadores:

  • Internet Explorer: Menú Herramientas -> Opciones de Internet -> Privacidad -> Configuración. También puede consultar el soporte de Microsoft o la Ayuda del navegador.
  • Firefox: Menú Herramientas -> Opciones -> Privacidad -> Historial -> Configuración Personalizada. También puede consultar el soporte de Mozilla o la Ayuda del navegador.
  • Chrome: Menú Configuración -> Mostrar opciones avanzadas -> Privacidad -> Configuración de contenido. También puede consultar el soporte de Google o la Ayuda del navegador.
  • Safari: Menú Preferencias -> Seguridad. También puede consultar el soporte de Apple o la Ayuda del navegador.