lunes, 2 de marzo de 2009

Herramienta para Testeo de Rendimiento de I/O (Orion)

Orion es una herramienta de calibración de I/O que permite predicir el rendimiento que tendrá una base de datos Oracle sin tener creada una base de datos, incluso sin tener el software de Oracle instalado. A diferencia de otras herramientas de calibración de I/O, Orion esta diseñado para simular el acceso a disco tal cual lo hace Oracle ya que usa la misma capa de acceso.
Los tipos de carga que pueden ser simulados son los siguientes:

Small Random I/O: Los sistemas OLTP se caracterizan por tener este tipo de acceso. En este contexto las métricas que importan son I/O por segundo (IOPS) y latencia promedio por acceso

Large Sequential I/O: Simula carga típica en aplicaciones de DataWarehouse, carga masiva, backups, restore, etc. Tales aplicaciones procesan gran cantidad de datos y lo importante es medir Megabytes por segundo (MBPS).

Large Random I/O: Cuando se usa striping las lecturas secuenciales se realizan como una cantidad concurrente de lecturas secuenciales aleatorias de 1Mb, conocido como I/O secuencial multiusuario.

Mixed Workload: Se simulan dos cargas de trabajo simultaneas: Small Random I/O y Large Sequential I/O o Large Random I/O. Esto permite simular por ejemplo el comportamiento de una base OLTP (Small Random I/O) mientras se esta efectuando un backup completo de la base de datos en caliente (Large Sequential I/O).

Orion puede utilizarse para testear cualquier tipo de discos que soporte I/O asincrónica. Se pueden testear:

• DAS (direct-attached storage)
• SAN (storage-area network)
• NAS (network-attached storage)

Y se encuentra disponible para las siguientes plataformas:

• AIX
• Solaris 64_sparc
• Solaris 64_x86
• Linux 32
• Linux 64
• Windows

y recientemente se agregaron: zlinux,HP itanium y PA RISC, linux sobre sobre itanium y power.

Instalación y Configuración


Orion es una herramienta totalmente gratuita, que puede descargarse desde otn.roacle.com. La instalación solo requiere de la descompresión del archivo .gz bajado. Los siguientes pasos describen una configuración básica:

1. Una vez descomprimido, asignar permisos de ejecución al usuario desde el que se va a ejecutar el test.

2. Crear un archivo (ej: mytest.lun) con la lista de los volumen o raw devices a calibrar. El archivo debe contener un nombre del volumen o filesystem por linea, por ejemplo:
/dev/vx/dsk/sgu/vol01
/dev/vx/dsk/sgu/vol02

3. Verificar que los volúmenes sean accesibles con herramientas de copiado, tipo dd, por ejemplo:
dd if=/dev/raw/raw1 of=/dev/null bs=32k count=1

4. Verificar que la plataforma tenga instaladas y accesibles las librerias de acceso asincrónico. Orion funciona solo con I/O asincrónico.

5. Es conveniente comenzar con una prueba simple, por ejemplo, el siguiente comando:
$./orion –run simple –testname mytest –num_disks 4

Ejecuta un test simple con small random reads y large random reads con diferentes cargas que permitiran tener una primera noción de cómo se comporta la I/O para distintos tipos de accesos y de carga.


Archivos de Resultado


El resultado del Test se encuentra detallado en los siguientes archivos:

1. mytest_summary.txt: Este archivo contiene:
a. Parámetros de Entrada.
b. Throughput maximo para carga Large Random/Sequential.
c. Tasa Maxima de I/O para carga Small Random.
d. Minima Latencia para carga Small Random.

2. mytest_mbps.txt: Archivo separado por comas, que contiene detalle de la tasa de transferencia para tipo de acceso Large Sequential/Random.

3. mytest_iops.txt: Archivo separado por comas, que detalla el I/O throughput medido en IOPS para carga de trabajo tipo Small Random.

4. mytest_lat.csv: Archivo separado por comas con los resultados de latencia según distintos tipos de carga para tipo de carga Small Random.

5. mytest_trace.txt: Archivo con información “cruda” producto de la traza del test.

Parametrización de Entrada

La ejecución de Orion puede ser parametrizada por distintas opciones. Los parámetros obligatorios son:

-run: Puede ser simple, normal o advanced. Para comenzar conviene usar simple y luego utilizar advanced para tener mas control de la calibración.
-testname: Aca va el nombre del archivo definido en el paso 2 de la configuración (mytest).
-num_disks: Define la cantidad de volúmenes a evaluar, generalmente este valor es igual a la cantidad de filas que contenga el archivo mytest.
Los parámetros opcionales son:
-help: Información de ayuda. Descripción de parametros
-size_small: Tamaño de I/O (en Kb) para carga Small Random I/O (el default es 8)
-size_large: Tamaño de I/O (en kb) para carga Large Sequential/Random I/O (el default es 1Mb)
-type: Tipo de carga de trabajo Large (default rand)
-num_streamIO: Numero de I/O’s por cada stream
-simulate: Permite similar como estan los datos dispuestos en los discos (el default es concat)
-write: Porcentaje de I/O que será:n writes.
-cache_size: Tamaño de cache del storage array
-duration: Duración del test por cada punto de datos (el default es 60 segundos)
-matriz: Tipo de carga (el default de detailed)
-num_small: Máximo numero de I/O para tipo de carga Small Random.
-num_large: Máximo numero de I/O para tipo de carga Large Random o numero de Large I/O por stream.
-verbose: Muestra información de estado y progreso en la salida estándar.

Ejemplos de Uso

A continuación se detallan algunos ejemplos de uso:
Ejemplo1: Ejecución básica
$./orion –run simple –testname mytest –num_disks 1

Ejemplo 2: Ejecución avanzada de tipo Large Sequential con nivel de carga Small fijado en 2
$ ./orion -run advanced -testname mytest -num_disks 2 -type seq -num_streamIO 10 -matrix col -num_small 2

Ejemplo 3: Ejecución para generar multiples escrituras de 1mb simulado RAID0 con stripes de 1Mb
$./orion –run advanced –testname mytest –num_disks 8 –simulate raid 0 –stripe 1024 –write 100 –type seq –matrix col –num_small 0


Si bien en la documentación sigue diciendo que esta herramienta es beta y no es soportada por Oracle Corporation ya tiene varios años y se ha portado a casi todas las plataformas por lo cual daría la impresión que ya ha madurado lo suficiente. Orion permite evaluar Storage y ver como se comporta con los requerimientos de rendimiento esperado sin necesidad de instalar ni el motor ni una base de datos Oracle. Los administradores podrán comparar distintos arreglos de storage de acuerdo a la carga de trabajo esperada y poder optar por la configuración mas conveniente.

Para mayor información ver:
Oracle Orion Users Guide
Para bajar Orion (Oracle I/O Calibration Test):
Oracle Orion Downloads

No hay comentarios:

Publicar un comentario