Durante la calibración de I/O se genera una sobrecarga hacia la base de datos, por lo que se recomienda la ejecución durante las horas de menos actividad que minimizara la sobrecarga de I/O en horarios normales.
Para ejecutar la calibración de I/O utilizamos el procedimiento propio de Oracle DBMS_RESOURCE_MANAGER.CALIBRATE_IO, cuya sintaxis es la siguiente:
DBMS_RESOURCE_MANAGER.CALIBRATE_IO (
num_physical_disks IN PLS_INTEGER DEFAULT 1,
max_latency IN PLS_INTEGER DEFAULT 20,
max_iops OUT PLS_INTEGER,
max_mbps OUT PLS_INTEGER,
actual_latency OUT PLS_INTEGER);
Existen dos parámetros de entrada:
num_physical_disks: Número de discos fiscos en el almacenamiento de la base de datos, la cantidad de discos donde se encuentran los datafiles.
max_latency: Máxima latencia tolerable en milisegundos para las solicitudes de I/O.
Existen tres parámetros de salida:
max_iops: Número máximo de peticiones de I/O por segundo que pueden ser sostenido.
max_mbps: Maximo rendimiento de I/O que puede ser sostenido, expresado en megabytes por segundo.
actual_latency: Promedio de la latencia en solicitudes de I/O.
Antes de ejecutar la calibración debemos considerar los siguientes requerimientos:
Requerimiento 1. El usuario a ejecutar debe tener el privilegio SYSDBA (SYS)
bash-3.2$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.3.0 Production on Sat May 3 13:57:41 2014 Copyright (c) 1982, 2011, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production With the Partitioning, Automatic Storage Management, OLAP, Data Mining and Real Application Testing options SQL> show user USER is "SYS"
Requerimiento 2. El parámetro timed_statistics debe estar con el valor de TRUE
SQL> show parameter timed_statistics NAME TYPE VALUE ----------------------------- --------- ------------- timed_statistics boolean TRUE
Requerimiento 3. El I/O asíncrono de filesystem debe estar habilitado.
SQL> show parameter filesystemio_options NAME TYPE VALUE ----------------------------- --------- ------------- filesystemio_options string NONE
Si no estuviera con el valor de SETALL, asignar el parámetro con la siguiente instrucción.
SQL> alter system set filesystemio_options=SETALL scope= spfile; SQL> show parameter filesystemio_options NAME TYPE VALUE ----------------------------- --------- ------------- filesystemio_options string SETALL
Requerimiento 4. En un ambiente de almacenamiento ASM se debe considerar que el parámetro de base de datos “disk_asynch_io” debe estar con el valor de “TRUE” para dar paso a la correcta calibración. Adicionalmente cuando el parámetro “disk_asynch_io” tenga asignado el valor de “true” se debe verificar que el parámetro de base de datos “DBWR_IO_SLAVES” este con el valor de 0.
SQL> show parameter disk_asynch_io NAME TYPE VALUE ----------------------------- --------- ------------- disk_asynch_io boolean FALSE
Si no estuviera con el valor de TRUE asignar el parámetro ejecutando la siguiente instrucción:
SQL> alter system set disk_asynch_io =TRUE scope= spfile; SQL> show parameter disk_asynch_io NAME TYPE VALUE ----------------------------- --------- ------------- disk_asynch_io boolean TRUE
Nota. Para que se guarden los parámetros modificados “filesystemio_options”, “disk_asynch_io” y “dbwr_io_slaves” es necesario realizar el reinicio de la instancia de la base de datos.
Requerimiento 5. Asegurar que el I/O Asíncrono se encuentra habilitado para los datafiles, verificamos ejecutando el siguiente query:
SQL> COL NAME FORMAT A50 SQL> SELECT NAME,ASYNCH_IO FROM V$DATAFILE F,V$IOSTAT_FILE I WHERE F.FILE#=I.FILE_NO AND FILETYPE_NAME='Data File'; NAME ASYNCH_IO --------------------------------------------- -------- +DATA/orcl/datafile/system.256.833512537 ASYNC_OFF +DATA/orcl/datafile/sysaux.257.833512537 ASYNC_OFF +DATA/orcl/datafile/undotbs1.258.833512539 ASYNC_OFF +DATA/orcl/datafile/users.259.833512539 ASYNC_OFF +DATA/orcl/datafile/example.265.833512695 ASYNC_OFF +DATA/orcl/datafile/high_dat.267.833566889 ASYNC_OFF +DATA/orcl/datafile/high_dat.268.833569565 ASYNC_OFF
Después de haber modificado el parámetro "disk_asynch_io" al valor de "TRUE" nuestra configuración queda lista para su calibración.
NAME ASYNCH_IO --------------------------------------------- -------- +DATA/orcl/datafile/system.256.833512537 ASYNC_ON +DATA/orcl/datafile/sysaux.257.833512537 ASYNC_ON +DATA/orcl/datafile/undotbs1.258.833512539 ASYNC_ON +DATA/orcl/datafile/users.259.833512539 ASYNC_ON +DATA/orcl/datafile/example.265.833512695 ASYNC_ON +DATA/orcl/datafile/high_dat.267.833566889 ASYNC_ON +DATA/orcl/datafile/high_dat.268.833569565 ASYNC_ON
Una ves revisado los requisitos mencionados anteriormente se puede proceder a ejecutar la configuración de calibrado de I/O.
Ya ejecutado el procedimiento se dispone de vistas que nos ayudan a revisar la configuración de calibración realizada, estas vistas son V$IO_CALIBRATION_STATUS y DBA_RSRC_IO_CALIBRATE.
V$IO_CALIBRATION_STATUS.- Nos permite visualizar el estado de la calibración.
Estado antes de la calibración:
SQL> SELECT * FROM v$io_calibration_status; STATUS CALIBRATION_TIME ------------- ----------------------------- NOT AVAILABLE
Estado durante la calibración:
SQL> SELECT * FROM v$io_calibration_status; STATUS CALIBRATION_TIME ------------- ----------------------------- IN PROGRESS
Estado despues de la calibracion:
SQL> SELECT * FROM v$io_calibration_status; STATUS CALIBRATION_TIME ------------- ----------------------------- READY 03-MAY-2014 13:34:45.410 1 row selected.
DBA_RSRC_IO_CALIBRATE.- Nos permite visualizar la configuración de la calibración realizada.
SQL> SELECT * FROM DBA_RSRC_IO_CALIBRATE; START_TIME END_TIME MAX_IOPS MAX_MBPS MAX_PMBPS LATENCY NUM_PHYSICAL_DISKS ------------------ ------------------- -------- -------- ---------- --------- ---------------- 03-MAY-14 01.47 PM 03-MAY-14 01.53 PM 56 28 26 17 2 1 row selected.
En el siguiente post Análisis y evaluación de resultados de la calibración de I/O se realizará el análisis minucioso antes, durante y después de la calibración, como también sus resultados.
Paulo Ticona.
Fuentes.
Oracle Database "Performance Tuning Guide" 11g Release 2 (11.2), E16638-05.
http://www.oracle-base.com/articles/11g/resource-manager-enhancements-11gr1.php
http://arup.blogspot.com/2008/08/resource-manager-io-calibration-in-11g.html
http://dbmstuning.wordpress.com/tag/io-calibration/
Mucha gracias Ingeniero. Claro y conciso y sobre todo preciso
ResponderEliminar