Notas del release


9.2 Capítulo 8. Rendimiento operativo

9.2.1 Agrupación de almacenamientos intermedios basada en bloques

Sólo se soporta esta característica en el Entorno operativo Sun Solaris.

Debido a la actividad general de E/S, las páginas captadas previamente de disco constituyen una operación cara. La captación previa de DB2 mejora significativamente el rendimiento cuando se puede solapar el proceso con la E/S. La mayoría de plataformas proporcionan primitivos de alto rendimiento para leer páginas contiguas de disco en porciones no contiguas de la memoria. Estos primitivos se suelen denominar "lectura dispersa" o "E/S vectorial". En algunas plataformas, el rendimiento de estos primitivos no puede competir con la realización de E/S en tamaños de bloque grandes. Por omisión, las agrupaciones de almacenamientos intermedios se basan en páginas. Es decir, que las páginas contiguas de disco se captan previamente en páginas no contiguas de la memoria. El rendimiento de la captación previa se puede mejorar más en dichas plataformas si se puede leer páginas de disco en páginas contiguas de una agrupación de almacenamientos intermedios. Existe una variable de registro, DB2_BLOCK_BASED_BP, que permite crear en la agrupación de almacenamientos intermedios una sección que contenga conjuntos de páginas contiguas. A estos conjuntos de páginas contiguas se les denomina "bloques". Estableciendo esta variable de registro, una captación previa secuencial leerá las páginas de disco directamente en estos bloques, en lugar de leer cada una de las páginas individualmente. Esto mejorará el rendimiento de E/S. Para obtener más información sobre esta variable de registro, consulte el apartado 'Registry and Environment Variables' del manual Administration Guide.

Es posible vincular varios espacios de tablas de tamaños de extensión distintos a una agrupación de almacenamientos intermedios del mismo tamaño de bloque. Existe una gran relación entre los tamaños de extensión y los tamaños de bloque, aunque se trata de conceptos distintos. Una extensión es la granularidad con que se separan los espacios de tablas en varios contenedores. Un bloque es la única granularidad con que los servidores de E/S que realizan peticiones secuenciales de captación previa considerarán el realizar E/S basada en bloques.

Las peticiones secuenciales individuales de captación previa utilizan páginas de tamaño extendido. Cuando se recibe una petición de captación previa de este tipo, el servidor de E/S determina el coste y el beneficio de realizar cada una de las peticiones como E/S basada en bloques (si existe un área basada en bloques en la agrupación de almacenamientos intermedios), en lugar de realizar la E/S basada en páginas mediante el método de lectura dispersa. El beneficio de realizar la E/S como E/S basada en bloques es el incremento de rendimiento obtenido de leer el disco contiguo en memoria contigua. El coste es la cantidad de memoria de agrupación de almacenamientos intermedios desaprovechada que puede resultar de la utilización de este método.

La memoria de agrupación de almacenamientos intermedios se puede desaprovechar por dos motivos al realizar E/S basada en bloques:

Nota:
Los bloques del área basada en bloques de una agrupación de almacenamientos intermedios no se pueden subdividir. Todas las páginas del bloque deben ser contiguas. Como consecuencia, existe la posibilidad de que se desaproveche espacio.

El servidor de E/S admite algunas páginas desaprovechadas en cada bloque, a fin de beneficiarse de realizar una E/S basada en bloques. Sin embargo, cuando se desaproveche una parte excesiva de un bloque, el servidor de E/S invertirá el proceso para utilizar una captación previa basada en páginas en el área de páginas de la agrupación de almacenamientos intermedios. Como resultado, parte de la E/S realizada durante la captación previa no estará basada en bloques. Ésta no es una condición óptima.

Para obtener un rendimiento óptimo, es conveniente que los espacios de tablas del mismo tamaño de extensión estén vinculados a una agrupación de almacenamientos intermedios que tenga el mismo tamaño de bloque. También se puede lograr un buen rendimiento si el tamaño de extensión de algunos espacios de tablas es mayor que el tamaño de bloque de la agrupación de almacenamientos intermedios a la que están vinculados. No es aconsejable vincular espacios de tablas a una agrupación de almacenamientos intermedios cuando el tamaño de extensión es menor que el tamaño de bloque.

Nota:
El área de bloques de una agrupación de almacenamientos intermedios sólo se utiliza para la captación previa secuencial. Si el sistema implica poca captación previa secuencial, o ninguna, el área de bloques será una porción desaprovechada de la agrupación de almacenamientos intermedios.

Para una agrupación de almacenamientos intermedios, no se pueden configurar a la vez AWE y el soporte basado en bloques. Si las variables de registro DB2_AWE y DB2_BLOCK_BASED_BP hacen referencia a la misma agrupación de almacenamientos intermedios, se dará prioridad a AWE. En este caso, se inhabilitará el soporte basado en bloques y sólo se rehabilitará una vez que se inhabilite AWE.

Una agrupación de almacenamientos intermedios que utiliza almacenamiento ampliado no soporta la E/S basada en bloques.

9.2.1.1 Ejemplos de agrupación de almacenamientos intermedios basada en bloques

Antes de trabajar con cualquiera de los ejemplos, deberá conocer los identificadores de las agrupaciones de almacenamientos intermedios del sistema. Puede ver el ID de una agrupación de almacenamientos intermedios en la columna BUFFERPOOLID o en la vista de catálogos del sistema SYSCAT.BUFFERPOOLS.

Escenario 1

Dispone de una agrupación de almacenamientos intermedios con un ID de 4 y que contiene 1000 páginas. Desea crear un área de bloques formada por 700 páginas, en la que cada bloque contenga 32 páginas. Debe ejecutar el mandato siguiente:

   db2set DB2_BLOCK_BASED_BP=4,700,32

Cuando se inicie la base de datos, se creará la agrupación de almacenamientos intermedios con ID 4, con un área de bloques de 672 páginas y un área de páginas de 328 páginas. En este ejemplo, 700 no se puede dividir equitativamente entre 32. Esto significa que el tamaño del área de bloques especificado se ha tenido que reducir al límite de tamaño de bloque más próximo utilizando la fórmula siguiente:

                ((tamaño del área de bloques))
   FLOOR(----------------------------) X tamaño de bloque
        ( (tamaño bloque)            )
        (       700       )
 = FLOOR(-----------------) X 32
        (       32        )
 = 21 x 32
 = 672

Escenario 2

Dispone de una agrupación de almacenamientos intermedios con un ID de 11 y que contiene 3000 páginas. Desea crear un área de bloques formada por 2700 páginas. Debe ejecutar el mandato siguiente:

   db2set DB2_BLOCK_BASED_BP=11,2700

Cuando se inicie la base de datos, se creará la agrupación de almacenamientos intermedios con ID 11, con un área de bloques de 2688 páginas y un área de páginas de 312 páginas. Si no se especifica ningún valor explícito para el tamaño de bloque, se utiliza el valor por omisión de 32. En este ejemplo, 2700 no se puede dividir equitativamente entre 32. Esto significa que el tamaño del área de bloques especificado se ha tenido que reducir al límite de tamaño de bloque más próximo utilizando la fórmula siguiente:

                ((tamaño del área de bloques))
   FLOOR(----------------------------) X tamaño de bloque
        ( (tamaño bloque)            )
        (      2700       )
 = FLOOR(-----------------) X 32
        (       32        )
 = 84 x 32
 = 2688


[ Principio de página | Página anterior | Página siguiente | Contenido | Índice ]