Diferencia entre revisiones de «Test-disco»

De FJWiki
Saltar a: navegación, buscar
(Página nueva: Script simple para hacer un test de lectura y escritura secuencial. Falta mejorar el tiempo "mejor" estimado. == Código fuente == <source lang=bash> #!/bin/bash # Test de performan...)
 
 
(No se muestra una edición intermedia del mismo usuario)
Línea 1: Línea 1:
 
Script simple para hacer un test de lectura y escritura secuencial. Falta mejorar el tiempo "mejor" estimado.
 
Script simple para hacer un test de lectura y escritura secuencial. Falta mejorar el tiempo "mejor" estimado.
 +
 +
Uso:
 +
 +
# test-disco /directorio
 +
 +
Donde <tt>/directorio</tt> es el directorio donde se harán las pruebas. De esa forma se está probando la partición donde está el directorio. Si no se especifica, usa <tt>/tmp</tt>.
  
 
== Código fuente ==
 
== Código fuente ==
Línea 38: Línea 44:
 
         echo
 
         echo
 
         echo Test de escritura de $((t/2000)) megas, el real time deberia ser menor a ${realtimemax[t]}
 
         echo Test de escritura de $((t/2000)) megas, el real time deberia ser menor a ${realtimemax[t]}
         time dd if=/dev/zero of="$archivo" count=$t bs=512
+
         (time dd if=/dev/zero of="$archivo" count=$t bs=512 >&2)2>&1
 
         echo
 
         echo
 
         echo Test de lectura de $((t/2000)) megas, el real time deberia ser menor a ${realtimemax2[t]}
 
         echo Test de lectura de $((t/2000)) megas, el real time deberia ser menor a ${realtimemax2[t]}
         time dd if="$archivo" of=/dev/null count=$t bs=512
+
         (time dd if="$archivo" of=/dev/null count=$t bs=512 >&2)2>&1
 
done
 
done
  
 
#Fin.
 
#Fin.
 
</source>
 
</source>
 +
Código mejorado gracias al aporte de [http://blog.pucp.edu.pe/ghiga Gustavo].
  
  
 
[[Category:Bash Scripts]]
 
[[Category:Bash Scripts]]

Revisión actual del 16:58 28 abr 2009

Script simple para hacer un test de lectura y escritura secuencial. Falta mejorar el tiempo "mejor" estimado.

Uso:

# test-disco /directorio

Donde /directorio es el directorio donde se harán las pruebas. De esa forma se está probando la partición donde está el directorio. Si no se especifica, usa /tmp.

Código fuente

#!/bin/bash
# Test de performance de disco.
# Primer parametro debe ser la ruta al archivo temporal de testing

ruta=${1:-/tmp}

archivo=$ruta/testfile.$$

[[ -f $archivo ]] && echo El archivo $archivo ya existe, usar otro nombre. Saliendo && exit 1

touch $archivo

trap 'rm -rf "$archivo"' 0

# test para cada tamano... hacemos una tabla de los valroers a usar

# 1M 10M 100M 1G 2G
tamanos=(2000 20000 200000 2000000 4000000)
realtimemax[2000]=.1s
realtimemax[20000]=1s
realtimemax[200000]=2s
realtimemax[2000000]=25s
realtimemax[4000000]=1m
realtimemax2[2000]=.1s
realtimemax2[20000]=1s
realtimemax2[200000]=2s
realtimemax2[2000000]=25s
realtimemax2[4000000]=1m

echo "Iniciando test"
for t in ${tamanos[@]}; do
        echo
        echo
        echo Test de escritura de $((t/2000)) megas, el real time deberia ser menor a ${realtimemax[t]}
        (time dd if=/dev/zero of="$archivo" count=$t bs=512 >&2)2>&1
        echo
        echo Test de lectura de $((t/2000)) megas, el real time deberia ser menor a ${realtimemax2[t]}
        (time dd if="$archivo" of=/dev/null count=$t bs=512 >&2)2>&1
done

#Fin.

Código mejorado gracias al aporte de Gustavo.