Use el comando dd para probar la velocidad de lectura y escritura del disco en Linux

prefacio

Recientemente, la actualización del paquete siempre es muy lenta. Hay un paso de usar md5sumel comando para calcular el valor MD5, que a veces toma una hora. Aunque el cálculo de MD5 lleva mucho tiempo, generalmente toma más de 1 minuto calcular el valor md5 de datos de 5 G. Más de una hora es un poco irrazonable, así que usé topel comando y descubrí que el proceso md5sum siempre estaba en Del estado en que estaba atascado. vez que lo encontré, así que verifiqué cierta información y la registré.

proceso de estado D

Proceso en estado D (TASK_UNINTERRUPTIBLE), en estado de suspensión ininterrumpida, significa que el proceso no responde a señales asíncronas.
En la mayoría de los casos, un proceso siempre debería poder responder a señales asíncronas mientras está inactivo. La importancia de la existencia del estado D es que ciertos procedimientos de procesamiento del núcleo no se pueden interrumpir. Por ejemplo, un proceso llama al sistema de lectura para leer un determinado archivo del dispositivo. El proceso de interacción del dispositivo se interrumpe, lo que provoca que el dispositivo caer en un estado incontrolable. El estado D en este caso es siempre muy efímero y básicamente imposible de capturar con el comando ps.

Pero lo atrapé, y a menudo lo atrapé al ejecutar el comando md5sum. El estado D a menudo es causado por la espera porque los recursos de E/S no están satisfechos~

Este es un punto clave. Dado que el IO no está satisfecho, verifique el IO y calcule md5 leyendo algunos archivos del disco, por lo que se sospecha que el problema está en la lectura y escritura del disco, y luego quiero medir la velocidad de lectura y escritura de algunos discos Este es ddel comando .

comando dd

La velocidad de lectura y escritura del disco debe probarse leyendo y escribiendo archivos, y ddel comando puede completar esta prueba. Con timeel comando se puede contar el tiempo de ejecución del comando.

  • Solo velocidad de lectura

    # time dd if=/tmp/test of=/dev/null bs=16k
    1000000+0 records in
    1000000+0 records out
    16384000000 bytes (16 GB) copied, 42.7044 s, 384 MB/s
    
    real    0m42.718s
    user    0m0.387s
    sys     0m8.951s
    
  • velocidad de escritura solamente

    # time dd if=/dev/zero of=/tmp/test bs=16k count=1000000
    1000000+0 records in
    1000000+0 records out
    16384000000 bytes (16 GB) copied, 35.7006 s, 459 MB/s
    
    real    0m38.428s
    user    0m0.356s
    sys     0m12.608s
    
  • Probar la velocidad de lectura y escritura

    # time dd if=/tmp/test of=/tmp/test2 bs=16k  
    1000000+0 records in
    1000000+0 records out
    16384000000 bytes (16 GB) copied, 87.3214 s, 188 MB/s
    
    real    1m27.331s
    user    0m0.430s
    sys     0m15.799s
    

causas del problema

Finalmente, la prueba encontró que la velocidad de lectura y escritura del disco duro no era muy estable.Después de consultar con el equipo de operación y mantenimiento, se encontró que el disco duro de red que utiliza este servidor tiene un ancho de banda de almacenamiento limitado. afecta los pasos de operación de cálculo de MD5 mencionados anteriormente, simplemente cambie un disco duro local.

Resumir

  • Cuando el proceso muestra el estado D, está en un estado de suspensión ininterrumpida, que a menudo se debe a la espera debido a recursos de E/S no satisfechos.
  • Solo prueba la velocidad de escrituratime dd if=/dev/zero of=/tmp/test bs=16k count=1000000
  • Solo prueba la velocidad de lecturatime dd if=/tmp/test of=/dev/null bs=16k
  • Probar la velocidad de lectura y escrituratime dd if=/tmp/test of=/tmp/test2 bs=16k
  • /dev/zeroEs un archivo especial, cuando lo lea, obtendrá infinitos caracteres nulos, que se pueden usar para inicializar el archivo sin IO
  • /dev/nullTambién es un archivo especial que descarta todos los datos escritos en él, llamado agujero negro, y no genera IO
  • El disco duro de la red se ve afectado por el ancho de banda de almacenamiento. Una vez que el ancho de banda está lleno, la velocidad de lectura y escritura del disco duro será lenta.
==>> Enlace anti-escalada, no haga clic, explotará en el lugar y no seremos responsables de ello. <<==

Parece estar fuera de alcance, pero de repente se siente al alcance por un momento, y parece que no hay salida, solo correr hacia adelante.

Supongo que te gusta

Origin blog.csdn.net/shihengzhen101/article/details/130395473
Recomendado
Clasificación