Este vídeo ofrece una visión general del modelo de memoria de DB2. El modelo de memoria de DB2 se compone de diferentes áreas, como se muestra en el gráfico. Entre paréntesis están los parámetros de configuración dbm cfg o db cfg que controlan cada área de memoria. Por ejemplo, “Monitor heap” en la parte superior tiene el parámetro de configuración "mon_heap_sz”. Por otro lado, hay otras áreas tales como buffers FCM y “Application Shared Heap” que no tiene un parámetro de configuración porque normalmente DB2 lo establecerá por ti. Así que empecemos con la memoria compartida del DBM (Administrador de Base de datos) en la parte superior de la figura. La memoria compartida del DBM es la utilizada por la instancia DB2. Así que cuando se ejecuta db2start, comienza a utilizarse. Recibirás una de estas áreas por cada instancia que inicies. Normalmente, al iniciar una instancia se consumen menos de 100 Mbs. Por ejemplo, vamos a ilustrar esto con el Administrador de tareas de Windows y el procesador de línea de comandos (CLP). Desde el CLP ejecuto el comando db2start y vemos cómo la memoria cambia en el Administrador de tareas. Por lo que va de 1,62 GB en esta área que muestra la memoria virtual a cerca de 1,82 GB después de ejecutado el db2start. Ahora vamos a ejecutar db2stop, y vemos como la memoria utilizada baja. Como puedes ver retorna a 1,62 GB. La memoria compartida del DBM contiene diferentes pilas (heaps): La pila de monitor es utilizada cuando se activa el monitoreo y se toman instantáneas. ¿Cómo activar el monitoreo? Te voy a enseñar usando nuevamente el procesador de línea de comandos. Si voy al dbm cfg mediante la emisión del comando: db2 get dbm cfg Voy a usar grep (comando de linux) ya que tengo instalado simulador de grep para windows, voy a buscar, con grep, palabras en mayúscula que contengan MON Esto me muestra todos los parámetros que puedo habilitar y la mayoría de ellos están inhabilitados. Cuando algunas de estas características están activadas puedes obtener distinta información sobre lo que está ocurriendo en tu sistema DB2 y esto puede ayudarte a resolver problemas de bloqueo, de rendimiento, y otros. ¿Cómo ves tu la información recolectada? Utilizando el comando “get snapshot” como te mostraré en este ejemplo, primero me conecto a la base de datos SAMPLE y luego emitir el mandato “db2 get snapshot for all buffer pools” ya que para este ejemplo en particular Quiero ver diferente información sobre mis bufferpools. Esta es la información que puedes obtener con el comando. Como puedes ver, la mayoría de los campos dice “no colectado” y la razón de ello es que los parámetros relacionados con los bufferpools no han sido habilitados. Pero de todos modos, todos estos datos del monitor se almacenan en la pila del monitor. Volviendo a la figura, el siguiente cuadro en la memoria es el de “Buffers FCM” FMC es por 'Fast Communication Manager' y estos son buffers que se utilizan para las conexiones o comunicaciones entre diferentes particiones en DB2, cuando se utiliza el DPF (Data Partitioning Feature “Funcionalidad de particionamiento de datos”). También se utiliza para la comunicación entre los diferentes agentes cuando está habilitado el intra-paralelismo en la parte derecha tenemos otro sector que es el buffer de Auditoría. Y esta es la zona que se utiliza cuando se emite un comando de 'auditoría'. Ahora, permítanme presentarles una herramienta muy útil para controlar el consumo de memoria de DB2. Se llama “DB2 Memory Tracker” y se puede invocar con el comando 'db2mtrk' Si escribo "db2mtrk -i” y presiono enter, se listará la información relacionada con mi instancia. En este caso, me muestra las diferentes áreas en el Administrador de memoria compartida de DB2 Pero si tu no sabes exactamente que significan siglas como MONH o FCMBP Puede escribir: db2mtrk -i -v (la opción -v para detallar) y pulsar enter, te mostrará la información con un texto explicativo. Así, por ejemplo, MONH sería la pila de memoria para el monitor de bases de datos. A continuación, se proporciona el tamaño que se utiliza en bytes o si lo prefieres en KB puedes echar un vistazo a los resultados anteriores. Si no sabes cómo utilizar la herramienta MTRK basta con utilizar la opción -h y se le dará ayuda acerca de la utilización de la herramienta. A continuación, vamos a echar un vistazo a la memoria global de base de datos esta es el área de memoria usada para bases de datos. Cada base de datos tendrá su propia memoria global así que si hay 5 bases de datos activas habrá cinco áreas de base de datos de memoria global.