Shared Memory(10.1B and Higher) – 5

Escrito por Nilson Nestor Wolfgramm em 1 de junho de 2009, 08:38h

O impacto em seu banco

As estruturas do banco de dados colocadas em memória compartilhada das releases 10.1B e superiores, são maiores que nas releases anteriores. Em particular, apontadores compartilhados agora são 64bits tanto para a versão 32bits quanto para a versão 64bits.  Como resultado, algumas estruturas de dados bastante numerosas, tais como cabeçalhos do buffer do banco de dados e entradas da tabela de lock, consomem consideravelmente mais memória agora.

Mesmo que as alterações na releas 10.1B e superiores tragam vantagens indiscutíveis, alguma atenção deve ser dada a: se você tem um sistema 32bits e atualiza a release do OpeEdge, você pode encontrar alguns erros quando inicia o processo server do banco, ou quando processos client conectam no modo self-service, porque segmentos compartilhados maiores não podem ser alocados dentro do espaço de endereçamento disponível. A tabela a seguir identifica problemas em potencial que podem ocorrer e suas soluções:

 

Problema

Solução

O banco não inicia o server porque as estruturas do banco não cabem mais na memória compartilhada

No log do banco as mensagens apresentadas na saída padrão:

The data space of the process is not enough for the shm segment (1176)

Reduza o valor do parâmetro –B em 10% caso você esteja próximo ao limite máximo de memória compartilhada para o sistema oepracional e o valor do –B é grande. Continue reduzindo os valores dos parâmetros que utilizam a memória compartilhada até que o banco inicie. 

 

O servidor inicia, mas os clients não conseguem conectar em modo self-service. Isto pode ser causado por falta de espaço de endereçamento contíguo livre, combinado com um tamanho de segmento padrão maior. 

Ou

Um cliente que conecta a vários bancos no modo self-service pode não mais conseguir. Isto pode ocorrer em virtude de segmentos maiores.

No log do banco as mensagens apresentadas na saída padrão:

Unable to attach shared memory “segment name” error ##. (1720)

Reduza o valor do parâmetro –shmsegsize. Quando o espaço de endereçamento possui vários pequenos buracos, o sistema operacional pode ser capaz de encontrar os buracos existentes. Isto é caracaterístico do Windows, onde são mapeados .dll´s num modo tal que não existe grandes quantidades de espaço de endereçamento. O problema é parecido a preencher uma caixa  com blocos de madeira de tamanhos variáveis. Blocos de tamanho menor são mais fáceis de encaixar.

 

Pode ocorrer um conflito entre grandes bibliotecas de procedures compartilhadas(que são mapeadas em um único segmento de memória contíguo), e grandes segmentos de memória compartilhados pelo server.

 

Reduza o valor do parâmetro –shmsegsize.

 

Com este post encerramos a série referenciando a configuração de tamanho de segmentos de memória compartilhada.

Categorias: Banco de dados | Progress

Comentários (1) -

em 11 de julho de 2009, 00:21h

ÓTIMO POST

Ranieri Marinho de Souza
Segurança da Informação

http://www.segr.com.br/
http://blog.segr.com.br/

Ranieri Marinho de Souza

Comentar




biuquote
  • Comentário
  • Pré-visualização
Loading


Acesso LogMeIn

Informe o código PIN: