4.1 Database FLAIM

Il ridimensionamento della cache è probabilmente il fattore più importante ad avere conseguenze sulle prestazioni complessive del eDirectory. Maggiore è il numero di elementi (voci e blocchi) che possono essere memorizzati nella cache, migliore sarà il livello complessivo delle prestazioni. La percentuale di volte in cui i blocchi o le voci vengono trovate nella cache viene denominata frequenza di accesso. Una frequenza più elevata implica prestazioni migliori. iMonitor consente di visualizzare la frequenza di accesso.

La cache di blocchi risulta più utile per le operazioni di aggiornamento. La cache voci è più utile per quelle operazioni che elaborano ricerche basate su ambito per una voce. Tuttavia, sia le ricerche su un unico livello o quelle eseguite nel sottoalbero utilizzano la cache voci e la cache di blocchi. La cache di blocchi viene utilizzata per recuperare gli indici. Creare il tipo corretto di indici come richiesto. Per ulteriori informazioni, vedere Scelta degli indici.

Durante una lettura del disco può verificarsi un errore nella cache di blocchi. Le letture del disco richiedono sempre molte risorse, ma possono essere evitate se un blocco viene recuperato dalla cache del file system.

La quantità di memoria necessaria per memorizzare nella cache l'intero database nella cache di blocchi è quasi pari alla dimensione del database sul disco e la quantità di memoria richiesto per memorizzare nella cache l'intero database nella cache voci è pari a circa due/quattro volte la dimensione del database sul disco. Quando in un sistema si dispone di una quantità di memoria minore, provare una cache voci più ridotta e una cache di blocchi o del file system molto più grande.

Se le letture sono localizzate per un set di voci nella directory, è necessario aumentare la cache voci fino a ottenere una migliore frequenza di accesso per tale cache.

Se il modello di lettura è completamente casuale e il DIB è significativamente superiore alla quantità di RAM disponibile, è necessario disporre di una cache di blocchi o di una cache del file system maggiore rispetto alla cache voci.

Qualsiasi metodo utilizzato per ottimizzare eDirectory allo scopo di migliorarne le prestazioni deve essere provato empiricamente. Un rapporto ottimale di voci per la cache di blocchi in ambienti che sono contraddistinti da un elevato numero di ricerche è 2:1. Assicurarsi che rimanga sufficiente memoria per altri processi. Evitare lo scambio di pagina anche se ciò implica la riduzione delle dimensioni della cache FLAIM.

Poiché FLAIM fornisce una memorizzazione nella cache pre-allocata, la memoria allocata alla cache di eDirectory non viene mai frammentata dal gestore della memoria del sistema operativo nativo.

4.1.1 Scelta degli indici

Gli indici sono destinati a migliorare le prestazioni delle ricerche eseguite su un unico livello e quelle eseguite nel sottoalbero. Anche i gruppi dinamici utilizzano le ricerche eseguite su un unico livello o nel sottoalbero. Gli indici non vengono utilizzati per le ricerche basate su ambito.

Un indice di presenza viene utilizzato principalmente per scopi interni, in quanto non distingue tra valori presenti e non presenti (eliminati). Se le applicazioni eseguono un'interrogazione di ricerca del tipo di presenza, l'indice non viene utilizzato. Per questo motivo, le applicazioni non devono avere indici di presenza creati appositamente per loro.

Le applicazioni possono creare un indice di valore per un attributo, sufficiente per la maggior parte delle ricerche. FLAIM può utilizzare un indice di valore per l'esecuzione di ricerche sia di presenza che di stringa secondaria sugli attributi.

Un indice di stringa secondaria può rallentare notevolmente gli aggiornamenti eseguiti su un attributo. Il numero di blocchi dell'indice necessario per supportare un indice di stringa secondaria è piuttosto elevato rispetto all'indice di valore. Ciò significa che per memorizzarli nella cache è necessaria una cache di blocchi maggiore. Creare un indice di stringa secondaria solo se necessario. Un indice di valore dovrebbe essere sufficiente per la maggior parte delle ricerche. Tuttavia, se le ricerche delle stringhe secondarie non producono prestazioni accettabili con un indice di valore, è possibile creare un indice di stringa secondaria su tali attributi.

Se un'operazione di ricerca richiede molto tempo per il completamento, nonostante l'indice selezionato, è possibile introdurre un indice di valore più recente su uno degli attributi del filtro di ricerca. Scegliere l'attributo in grado di produrre risultati migliori quando indicizzato.

4.1.2 Ottimizzazione degli aggiornamenti

La cache di blocchi risulta più utile per le operazioni di aggiornamento. Gli indici si trovano anche nella cache di blocchi. Anche se gli indici consentono di velocizzare le ricerche, una quantità eccessiva di indici mantiene il server occupato per la loro manutenzione. Se i valori degli attributi vengono modificati, aggiunti o eliminati, anche gli indici vengono modificati. Durante operazioni di upload di grandi dimensioni, gli indici possono essere disattivati permettendo un'esecuzione degli upload più veloce.

Se la directory RFL risiede su un disco diverso rispetto alla directory DIB, ciò consente di migliorare le prestazioni.

Un limite accettabile per il tempo di risposta relativo a un'operazione di aggiornamento può essere controllato mediante la maxdirtycache. Ad esempio, se un limite accettabile per la risposta del server è di 5 secondi e la velocità di scrittura casuale del disco è di 20 MB al secondo, la maxdirtycache deve essere impostata come 20 x 5 = 100 MB. Assicurarsi che la cache di blocchi possa contenere questi blocchi modificati nella memoria. Per ulteriori informazioni, vedere Sezione 5.2.2, Modifica delle impostazioni della cache FLAIM mediante _ndsdb.ini.