Requisitos de memória para os dados do monitor
A memória necessária para os dados do monitor é alocada a partir do heap do monitor. O tamanho do heap do monitor é controlado pelo parâmetro de configuração do banco de dados mon_heap_sz. Esse parâmetro tem um valor padrão de AUTOMATIC, o que significa que o heap do monitor pode aumentar conforme necessário até que o limite de instance_memory seja atingido.
Se você configurar o parâmetro mon_heap_sz manualmente, considere os seguintes fatores:
- O número de aplicativos de monitoramento
- O número e a natureza dos monitores de eventos
- Os interruptores do monitor definem
- O nível de atividade do banco de dados
A quantidade de heap do monitor que está sendo usada pode ser vista usando a função de tabela MON_GET_MEMORY_POOL :
SELECT *
FROM TABLE(MON_GET_MEMORY_POOL('DBMS',NULL,-1))MEM
WHERE MEMORY_POOL_TYPE = 'MONITOR'Há muitas situações em que o monitor heap é usado:
- Todos os monitores de eventos ativos consomem o heap do monitor. Cada thread de gravação rápida db2fw ) e de monitor de eventos db2evm ) usa o heap do monitor.
- Os monitores ativos de eventos ACTIVITIES, LOCKING, PACKAGE CACHE, UNIT OF WORK, STATISTICS, THRESHOLD VIOLATIONS e CHANGE HISTORY alocam event records do heap do monitor. O número de registros alocados está incluído na parte Queue Manager Info da saída de
db2pd -gfw. Em sistemas ocupados em que se espera que um grande volume seja registrado por esses monitores de eventos, o Current Number of Records aumenta rapidamente. Em sistemas menos ocupados, ele aumenta mais lentamente, dependendo da quantidade esperada de trabalho. - As atividades anteriores de cada aplicativo (aquelas concluídas na unidade de trabalho atual) são alocadas da pilha do monitor. Isso ocorre nas
seguintes situações:
- Quando um monitor de evento LOCKING estiver ativo e a coleta de HISTÓRICO estiver ativada
- Quando um monitor de eventos DEADLOCKS COM HISTÓRICO DE DETALHES estiver ativo
- Os dados de rotina são armazenados no heap do monitor quando MON_RTN_DATA está ativado.
- Os dados da lista executável são armazenados no heap do monitor quando MON_UOW_EXECLIST está ativado.
- Os dados da lista de uso do monitor são armazenados no heap do monitor.
- Qualquer chave de monitor que esteja ligada consome o heap do monitor.
- Cada aplicativo de monitor que usa as interfaces SNAPSHOT, SWITCH e RESET consome o heap do monitor. Nessas situações, o heap do monitor é usado para manter a chave e os dados reinicializáveis até que o aplicativo do monitor seja desconectado da instância.
- Cada conexão de banco de dados consome o heap do monitor quando a chave STATEMENT é ativada. Nessas situações, o heap do monitor é usado para manter os dados de monitoramento das instruções em execução no momento.
- As informações do cliente de um aplicativo, definidas por meio da API
sqleseti()ou do procedimentoWLM_SET_CLIENT_INFO, são armazenadas usando o heap do monitor. - Em um gateway Db2 Connect, as informações do banco de dados e do aplicativo são armazenadas no heap do monitor. Se a chave de instrução estiver ativada, as instruções em execução no momento armazenam informações no heap do monitor.