SafeChildren Banner

Havoc Oracle Solaris Experts

lunes, 24 de septiembre de 2007

Solaris ForceDirectIO y Sistemas de Backup para Oracle - Parte I

Oracle 8i ya es una "reliquia" aunque para muchos todavía nos encontramos muy contentos con esta versión, sin embargo, ... debemos "OraclEvolucionar"

Uno de los consejos que se daban por el mundo de los DBA's sobre Solaris + Oracle8i era el uso de ForceDirectIO en el montaje de los discos para hacer que Oracle no usase los buffers del sistema de archivos.

Esto ha sido optimizado en las versiones 9i y 10g, sin embargo todavía podemos utilizar, sobre todo en la 9i, la opción ForceDirectIO para obtener un beneficio extra en el rendimiento. El problema era que si se utilizaban las herramientas del sistema para realizar las copias de seguridad el impacto era realmente elevado. Esto hacía que la copia de seguridad se alargase en el tiempo de forma alarmante.

Para ello, podemos realizar las pruebas con los parámetros genéricos (mount -F ufs, mount -F ufs -o logging) y los opcionales (mount -F ufs -o forcedirectio) ForceDirectIO. Si nos fijamos y hacemos de las configuraciones básicas nuestra líneas base tenemos los siguientes datos:


Como podemos observar al utilizar forcedirectio con archivos grandes, el rendimiento de cp es realmente pésimo (esto también se refleja en rsync), sin embargo cp8m (GNU cp con modificaciones) realiza la copia en prácticamente la mitad de tiempo.

Si esto lo extrapolamos a una copia de 70 Gb estaríamos hablando de copiar en 2h lo que antes lo hacíamos en 8h.


Qué modificaciones Tiene CP8M

cp8m incluye una pequeña modificación en el tamaño del buffer, pasando de 512 Kb a 8 Mb, de esta forma se consigue un aumento de rendimiento.

Vamos a modificar el código de GNU Core Utils.

1.- Debemos bajarnos la versión de GNU Core Utils
2.- Descomprimimos el tar y editamos el archivo
/coreutils-6.9/src/copy.c

Sobre la línea 349 debemos sustituir
size_t buf_size = ST_BLKSIZE (sb);
por
size_t buf_size = 8388608;

3.- Compilamos con SunCC (Podemos utilizar -fast -native siempre que estemos en la misma arquitectura que producción)
4.- Instalamos el paquete en /usr/local/bin
5.- Copiamos /usr/local/bin/cp a /usr/sbin/cp8m

Con esto ya hemos concluido con la primera parte viendo como el impacto de forcedirectio sobre las herramientas del sistema puede hacer que nuestras tareas de copia de seguridad se vean realmente afectadas.

En la segunda parte, veremos como podemos hacer que cp8m + nfs sean muy buenos aliados para el sistema de backup.

Un Saludo,
Urko

No hay comentarios:

Publicar un comentario