appl_memory: Parametro di configurazione della memoria dell'applicazione
Il parametro di configurazione appl_memory specifica la dimensione della serie di memoria dell'applicazione. La dimensione della memoria dell'applicazione viene contata rispetto a qualsiasi limite instance_memory attivo.
- Il pool di memoria heap condiviso del gruppo di applicazioni. Questo pool di memoria è un'area di lavoro globale per tutte le applicazioni e non è configurabile.
- Il pool di memoria heap dell'applicazione. Questo pool di memoria è configurato per applicazione e può essere configurato utilizzando il parametro di configurazione applheapsz .
- Il pool di memoria heap dell'istruzione. Questo pool di memoria è configurato per compilazione di istruzioni e può essere configurato utilizzando il parametro di configurazione stmtheap .
- Il pool di memoria heap statistiche. Questo pool di memoria è configurato per l'operazione RUNSTATS e può essere configurato utilizzando il parametro di configurazione stat_heap_sz .
- Tipo di configurazione
- Database
- Si applica a
- Server database con client locali e remoti
- Server database con client locali
- Server database a partizione con client locali e remoti
- Tipo di parametro
- Configurabile online (richiede una connessione al database)
- Configurabile in base al membro in un ambiente Db2® pureScale® e in ambienti di database con partizioni
- Valore predefinito [ intervallo]
- Automatico [128 - 4 294 967 295]
- Su architetture a 32 bit, il valore predefinito è AUTOMATIC con un valore sottostante di 10000
- Nelle architetture a 64 bit, il valore predefinito è AUTOMATIC con un valore sottostante di 40000
- Unità di misura
- pagine (4 KB)
- Quando assegnato o sottoposto a commit
- Su sistemi operativi Linux e UNIX
- La dimensione iniziale viene assegnata all'attivazione del database. Viene allocata più memoria come richiesto.
- Su sistemi operativi Windows
- La memoria è assegnata come richiesto. Viene eseguito il commit di una quantità minima di memoria dell'applicazione all'attivazione del database. Viene eseguito il commit di più memoria come richiesto.
- Quando liberato
- Tutta la memoria dell'applicazione viene liberata quando un database viene disattivato. Tuttavia, parti di memoria assegnata o di cui è stato eseguito il commit vengono regolarmente rilasciate al sistema operativo quando queste parti di memoria non sono più in uso.
Sui sistemi operativi UNIX, dopo l'assegnazione della dimensione della memoria dell'applicazione iniziale durante l'attivazione del database, Db2 assegna ulteriore memoria in base alle esigenze per supportare i requisiti di memoria dinamica. L'assegnazione di memoria aggiuntiva è soggetta a qualsiasi limite di dimensione fissa specificato. Tutta la memoria dell'applicazione viene assegnata come memoria condivisa e viene conservata fino alla disattivazione del database. La memoria condivisa totale assegnata conta solo l'utilizzo della memoria virtuale. Mentre questa memoria virtuale non richiede il supporto della memoria reale, la memoria virtuale richiede il supporto dello spazio di swap o di paging su alcuni sistemi operativi. Per i dettagli sul supporto del sistema operativo, consultare la sezione Supporto del sistema operativo .
Sui sistemi operativi Windows, la memoria dell'applicazione viene assegnata come memoria privata. L'assegnazione della memoria dell'applicazione è soggetta a qualsiasi limite di dimensione fissa specificato. Le assegnazioni di memoria non più in uso potrebbero essere liberate dinamicamente o conservate per il riutilizzo. Tutte le assegnazioni di memoria in sospeso vengono liberate quando il database viene disattivato.
La memoria di cui è stato eseguito il commit è la memoria di cui il sistema operativo esegue il backup. La memoria assegnata viene sottoposta a commit come richiesto dai pool di memoria. La memoria sottoposta a commit non più richiesta dai lotti di memoria viene memorizzata nella cache per migliorare le prestazioni o rilasciata al sistema operativo. Se la dimensione della memoria dell'applicazione viene ridotta in modo dinamico, la memoria viene rilasciata o annullata. Tutta la memoria sottoposta a commit viene rilasciata quando il database viene disattivato.
Si consiglia di lasciare appl_memory impostato sul valore predefinito AUTOMATIC. Un'impostazione di memoria dell'applicazione fissa insufficiente determina vari errori di memoria esaurita restituiti alle applicazioni. L'impostazione di un valore di memoria fisso deve essere eseguita solo dopo un test approfondito per determinare i requisiti di picco. La memoria dell'applicazione non è ottimizzata da STMM (Self Tuning Memory Manager), ma STMM ottimizza database_memory, se database_memory è abilitata per l'ottimizzazione automatica, per compensare i requisiti di memoria dell'applicazione fluttuanti.
al Sistema Operativo SCE
| Sistema Operativo | Supporto disponibile |
|---|---|
| AIX | Utilizza pagine medie (64K) per impostazione predefinita, che possono migliorare le prestazioni. Le pagine grandi (16MB) sono consentite anche su AIX .1 |
| HP-UX | La memoria condivisa assegnata richiede il supporto dallo swap virtuale. |
| Linux | La memoria condivisa assegnata conta rispetto al limite di memoria condivisa virtuale (shmall). |
| < | La memoria condivisa assegnata richiede il supporto dallo swap virtuale e viene contata rispetto ai limiti di memoria virtuale. |
| Windows | Nessuna considerazione aggiuntiva per la piattaforma Windows. |
Nota:
|
|
Monitoraggio
db2 "select member, substr(db_name,1,10)as db_name, substr(memory_set_type,1,10) as set_type,
memory_set_size, memory_set_committed, memory_set_used, memory_set_used_hwm
from table(mon_get_memory_set('APPLICATION')"Restituisce le seguenti informazioni:MEMBER DB_NAME SET_TYPE MEMORY_SET_SIZE MEMORY_SET_COMMITTED MEMORY_SET_USED MEMORY_SET_USED_HWM
------ ---------- ---------- -------------------- -------------------- -------------------- --------------------
0 SAMPLE APPLICATION 154927 68616 67829 68616
0 TEST APPLICATION 238092 123404 123404 123404
2 record(s) selected. In questo caso, la serie di memoria dell'applicazione utilizza 154927KB di instance_memory(MEMORY_SET_SIZE) e 68616KB di system memory (MEMORY_SET_COMMITTED), di cui 67829KB (MEMORY_SET_USED) è assegnato ai pool di memoria.
db2pd -db <database_name> -memsets -mempools, db2pd -dbptnmem