4.1 Banco de dados do FLAIM

O tamanho do cache é possivelmente o fator mais importante que afeta o desempenho geral do eDirectory. Quanto maior o número de itens (blocos e entradas) que são armazenados, melhor o desempenho geral. A porcentagem de vezes que os blocos e entradas são achados no cache é chamada de razão de acerto. Uma razão maior resulta em melhor desempenho. O iMonitor também pode ser usado para ver a razão de acerto.

O cache do bloco é mais útil para operações de atualização. O cache de entrada é mais útil para operações que realizam uma pesquisa de uma entrada com escopo. Contudo, ambas as pesquisas com escopo de um nível e subárvore usam o cache de entrada e o de bloco. O cache de bloco é usado para recuperar índices. Crie o tipo correto de índices conforme necessário; para obter mais informações, consulte Escolhendo índices.

Uma falha no cache de bloco pode resultar em uma operação de leitura de disco. As leituras de disco sempre são dispendiosas, porém podem ser evitadas se um bloco for recuperado no cache do sistema de arquivos.

A quantidade de memória necessária para armazenar o banco de dados completo no cache de bloco é quase o tamanho do banco de dados no disco, e o tamanho de memória necessário para armazenar o banco de dados completo no cache de entrada é quase duas a quatro vezes o tamanho do banco de dados no disco. Se você possui pouca memória em um sistema, tente obter um cache de entrada menor e um cache de bloco ou de sistema de arquivos muito maior.

Se as leituras localizarem-se em um conjunto de entradas do diretório, você deverá aumentar o cache de entrada, desde que isto resulte em uma razão de acerto de cache de entrada melhor.

Se o padrão de leitura for totalmente aleatório e o DIB for muito maior do que a RAM disponível, você deverá possuir um cache de bloco ou de sistema de arquivos maior do que o de entrada.

Qualquer método usado para ajustar o eDirectory para obter melhor desempenho demandará testes empíricos. Uma boa razão de cache de entrada versus bloco para ambientes sensíveis a pesquisas é 2:1. Certifique-se de que deixa memória livre suficiente para outros processos. Evite passar as páginas mesmo se isso significar reduzir os tamanhos dos caches de entrada e bloco do FLAIM.

Como o FLAIM fornece armazenamento pré-alocado, a memória alocada no cache do eDirectory nunca é fragmentada pelo gerenciador de memória nativo do sistema operacional.

4.1.1 Escolhendo índices

Os índices têm por objetivo melhorar o desempenho de pesquisas com escopo de um nível ou de subárvore. Grupos dinâmicos também usam pesquisas com escopo de um nível ou de subárvore. Os índices não são usados com pesquisas com escopo de base.

Como o índice de Presença não diferencia entre os valores presente e ausente (excluído), ele é usado principalmente para fins internos. Se as aplicações executarem uma pesquisa do tipo Presença, este índice nunca será usado, por isso, os índices de Presença não deverão ser criados para as aplicações.

As aplicações podem criar um índice Valor para um atributo, o que é suficiente para a maioria das pesquisas. O FLAIM pode usar um índice Valor para realizar ambas as pesquisas de Presença e de Subcadeia nos atributos.

Um índice Subcadeia pode desacelerar significativamente as atualizações realizadas em um atributo. O número de blocos de índice necessários para suportar um índice Subcadeia é muito grande se comparado ao índice Valor. Isto significa que mais cache de blocos são necessários para armazená-los. Crie um índice de Subcadeia apenas quando necessário. Um índice Valor deverá ser suficiente para a maioria das pesquisas. Contudo, se as pesquisas de Subcadeia não gerarem resultados de desempenho aceitáveis com o índice Valor, você poderá criar um índice Subcadeia nesses atributos.

Se uma operação de busca levar muito tempo para ser concluída, independentemente do índice escolhido, você poderá introduzir um novo índice de valor em um dos atributos do filtro de pesquisa. Escolha o atributo que gera os melhores resultados quando indexado.

4.1.2 Ajustes de atualizações

O cache do bloco é mais útil para operações de atualização. Os índices também residem no cache do bloco. Embora os índices ajudem em pesquisas mais rápidas, ter muitos índices requer que o servidor fique ocupado para mantê-los. Os índices são modificados se os valores do atributo forem modificados, adicionados ou excluídos. Durante grandes operações de upload, os índices podem ser desabilitados para um upload mais rápido.

Manter o diretório RFL em um disco diferente que o diretório do DIB melhora o desempenho.

Um limite aceitável do tempo de resposta de uma operação de atualização pode ser controlado usando maxdirtycache. Por exemplo, se um limite aceitável de resposta do servidor for 5 segundos e a velocidade de gravação de disco aleatória for 20 MB por segundo, então, o maxdirtycache deverá ser definido para 20x5 = 100 MB. Certifique-se que o cache de bloco possa conter esses blocos modificados na memória. Consulte o Seção 5.2.2, Modificando as configurações de cache do FLAIM pelo _ndsdb.ini para obter mais informações.