Agrupación de almacenamiento intermedio de DB2
Puede utilizar las agrupaciones de almacenamiento intermedio de DB2® para almacenar en memoria caché las entradas y sus atributos. Si las entradas están en la memoria caché, el tiempo de búsqueda se reduce al consultar los datos almacenados en la memoria caché.
El ajuste de la agrupación de almacenamiento intermedio de DB2 es uno de los tipos más significativos de ajuste de rendimiento de DB2 . Una agrupación de almacenamiento intermedio es una memoria caché de datos entre LDAP y los archivos físicos de base de datos DB2 para tablas e índices. Si las entradas y sus atributos no se encuentran en la memoria caché de entrada, el servidor busca los valores en las agrupaciones de almacenamiento intermedio de DB2 . Debe ajustar la agrupación de almacenamiento intermedio cuando la base de datos se carga inicialmente y cuando el tamaño de la base de datos cambia significativamente. La inhabilitación del almacenamiento en memoria caché del sistema de archivos es aconsejable cuando se utilizan agrupaciones de almacenamiento intermedio. Mejora el rendimiento de programas de utilidad como bulkload, eliminando un nivel redundante de almacenamiento en memoria caché.
Directory Server utiliza dos agrupaciones de almacenamiento intermedio, una para el espacio de tabla USERSPACE1 y la otra para el espacio de tabla LDAPSPACE . La agrupación de almacenamiento intermedio para USERSPACE1 se denomina IBMDEFAULTBP y la agrupación de almacenamiento intermedio para el espacio de tabla LDAPSPACE se denomina LDAPBP. Para obtener más información sobre USERSPACE1 y LDAPSPACE, consulte Espacios de tablas.
Hay varios puntos que debe tener en cuenta que están relacionados con las agrupaciones de almacenamiento intermedio de DB2 . Por ejemplo:
- Si no hay agrupaciones de almacenamiento intermedio, toda la actividad de la base de datos da como resultado el acceso al disco.
- Si el tamaño de cada agrupación de almacenamiento intermedio es demasiado pequeño, LDAP debe esperar a que la actividad de disco de DB2 satisfaga las solicitudes SQL de DB2 .
- Si una o más agrupaciones de almacenamiento intermedio son demasiado grandes, es posible que se desperdicie la memoria del servidor LDAP.
- Si el espacio utilizado por las memorias caché LDAP y las agrupaciones de almacenamiento intermedio es mayor que la memoria disponible en un servidor, es posible que se produzca la paginación del sistema operativo. La paginación del sistema operativo puede dar como resultado un aumento de la actividad de disco.
- El ajuste de las agrupaciones de almacenamiento intermedio no mejora el rendimiento de un servidor de directorios de forma significativa, ya que el servidor contiene decenas de millones de usuarios. No es posible o práctico almacenar en memoria caché un porcentaje suficientemente grande de la base de datos para mejorar mucho el rendimiento. Con directorios de hasta millones de usuarios, es posible almacenar en memoria caché un porcentaje suficiente de la base de datos para mejorar el rendimiento.
- Los tamaños de las agrupaciones de almacenamiento intermedio de DB2 deben ser lo suficientemente bajos para evitar la paginación del sistema operativo, pero lo suficientemente altos para proporcionar el máximo beneficio.
- Lo más importante es que las versiones actuales de DB2 dan soporte al ajuste automático de las agrupaciones de almacenamiento intermedio.
La herramienta de ajuste de rendimiento de idsperftune establece las opciones de configuración de DB2 para que las agrupaciones de almacenamiento intermedio se ajusten automáticamente.
sdsva.example.com> tools db2cmd
Se abre el procesador de línea de mandatos de DB2 .db2 =>
Para recuperar los tamaños actuales de agrupación de almacenamiento intermedio de DB2 , ejecute los mandatos siguientes en el indicador de mandatos de DB2 :
!db2 connect to sdsinst1
!db2 select varchar(bpname,20) as bpname,npages,pagesize fromsyscat.bufferpools
La salida de ejemplo siguiente muestra los valores predeterminados:
BPNAME NPAGES PAGESIZE
------------------ ----------- -----------
IBMDEFAULTBP 29500 4096
LDAPBP 1230 32768
2 record(s) selected.
Para determinar la opción de almacenamiento en memoria caché del sistema de archivos actual para cada uno de los espacios de tablas, ejecute los mandatos siguientes:
!db2 get snapshot for tablespaces on sdsinst1 | egrep ’tablespace name|File system caching’
Para desactivar el almacenamiento en memoria caché del sistema de archivos con DB2, Versión 10.5.0.3 en sistemas operativos y entornos de sistema de archivos que lo soportan, ejecute el mandato siguiente:
!db2 connect to sdsinst1
!db2 altertablespace USERSPACE1no file systemcaching
!db2 altertablespace LDAPSPACEno file systemcaching
!db2 terminate
!db2stop
!db2start
Para establecer los tamaños de agrupación de almacenamiento intermedio, utilice los mandatos siguientes:
!db2 alter bufferpool ibmdefaultbp size new size in 4096 byte pages
!db2 alterbufferpool ldapbpsize new size in 32768 byte pages
!db2 terminate
!db2stop
!db2start
Si estos mandatos se ejecutan mientras Directory Server está en ejecución, el mandato db2stop falla. Se genera un mensaje de error que indica que hay aplicaciones que están conectadas a la base de datos. Si se genera un error, detenga Directory Server y, a continuación, ejecute los mandatos siguientes:
!db2stop
!db2start
Para asignar un tamaño de memoria óptimo para las agrupaciones de almacenamiento intermedio de DB2 , debe determinar los valores. Para obtener más información, consulte Análisis del rendimiento de la agrupación de almacenamiento intermedio de DB2.
Si alguno de los tamaños de agrupación de almacenamiento intermedio se establece en un valor demasiado alto, DB2 no se puede iniciar debido a que no hay suficiente memoria. Si DB2 falla, el DB2 puede generar un archivo de volcado del núcleo, normalmente no hay mensajes de error.
Si DB2 no se puede iniciar debido a un tamaño de agrupación de almacenamiento intermedio grande, establezca el tamaño de agrupación de almacenamiento intermedio en valores más bajos y reinicie DB2. Si restaura una base de datos en un sistema de destino desde un sistema de origen con tamaños de agrupación de almacenamiento intermedio grandes, la operación de restauración podría fallar.
También debe considerar la actualización de DB2 al nivel de fixpack más reciente para obtener mejoras de estabilidad y rendimiento.
En DB2, Versión 10.5.0.3 , el parámetro de configuración de base de datos self_tuning_mem se establece automáticamente en ON cuando se crea una base de datos de partición única. El valor del parámetro se establece en AUTOMATIC. Los siguientes consumidores de memoria están habilitados para ajustar automáticamente si establece el valor en AUTOMATIC:
- Agrupaciones de almacenamiento intermedio (controladas por las sentencias
ALTER BUFFERPOOLyCREATE BUFFERPOOL) - Memoria caché de paquetes (controlada por el parámetro de configuración pckcachesz )
- Memoria de bloqueo (controlada por los parámetros de configuración locklist y maxlocks )
- Memoria de ordenación (controlada por sheapthres_shr y el parámetro de configuración sortheap )
- Memoria compartida de base de datos (controlada por el parámetro de configuración database_memory )
Debe asegurarse de que la memoria de base de datos se utiliza de forma óptima cuando se establece el Gestor de memoria de autoajuste (STMM). Puede determinar el valor óptimo para el parámetro DATABASE_MEMORY . Para obtener más información, consulte Determinación del valor del parámetro DATABASE_MEMORY.
Puede limitar las agrupaciones de almacenamiento intermedio de DB2 para que no utilicen toda la memoria disponible. Para limitar el uso de memoria, tenga en cuenta los valores siguientes antes de habilitar STMM:
- Para utilizar los valores automáticos predeterminados, establezca el parámetro de configuración de tamaño de memoria compartida de base de datos, DATABASE_MEMORY:
!db2 ALTER BUFFERPOOL LDAPBP SIZE AUTOMATIC !db2 ALTER BUFFERPOOL IBMDEFAULTBP SIZE AUTOMATIC - Ejecute la instancia bajo carga normal y supervise el valor de DATABASE_MEMORY para determinar un tamaño óptimo para el valor.
- Establezca DATABASE_MEMORY en el tamaño determinado en lugar de automático.
El valor Determined_Value optimiza el rendimiento de la base de datos.!db2 ALTER BUFFERPOOL LDAPBP SIZE Determined_Value !db2 ALTER BUFFERPOOL IBMDEFAULTBP SIZE Determined_Value