Diferencia entre revisiones de «Test-disco»
De FJWiki
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: | Uso: | ||
Línea 44: | 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.