Conforme pedido estarei descrevendo nesse artigo o funcionamento do parâmetro –Mxs.
É compreensível esse parâmetro gerar dúvidas sobre a sua utilização: Apesar de ser considerado um parâmetro de desempenho, ele não possui um indicador de desempenho; Seu valor é resultado de uma conta que por muito tempo a Progress documentou incorretamente; Sua descrição significa “Tamanho de sobrecarga de memória compartilhada”, o que não explica muita coisa. Então vamos as explicações.
A primeira informação que deve-se saber sobre o parâmetro é que provavelmente você nunca precisará alterá-lo ou mesmo definí-lo. Ele não afeta diretamente o desempenho do seu banco de dados. Se ele for declarado com um valor inferior ao necessário, seu banco ou alguns usuário poderão cair. Se for declarado com um valor muito superior ao necessário, poderá faltar memória em seu servidor.
Entendendo para que ele serve, podemos comparar o –Mxs como o motorista passando por uma lombada eletrônica. Ele será multado se passar acima de 50 km/h, por exemplo, então ele não passa a exatos 50 km/h. Existem vários fatores que poderão influenciar na velocidade do veículo e na captura da velocidade pelo radar, que podem não ser demonstrados no velocímetro. Como o motorista perderia muito tempo calculando esses fatores, é mais fácil estabelecer uma margem de segurança e passar a 45 km/h.
A shared-memory reservada pelo Progress OpenEdge também é composto da soma de vários parâmetros, porém nem todos podem ser mensurados em tempo aceitável. Até a quantidade de campos obrigatórios influencia nessa área. Para não dispender tanto tempo calculando a área necessária, o Progress OpenEdge soma os parâmetros que mais influenciam na quantidade de shared memory e aplica uma margem de segurança. O –Mxs é a margem de segurança.
Por padrão, o –Mxs tem o seguinte valor:
Para ambientes 32 bits: [16384 + (-n * 300)] / 1024
Para ambientes 64 bits: [16384 + (-n * 400)] / 1024
onde o –n é o parâmetro de carga do banco de dados que define o número de usuários
Para monitorar se o valor que está definido está de acordo com sua utilização, prevendo possíveis problemas de estouro de shared-memory, utilize o promon – R&D – 1 – 14. A coluna “Free” não pode chegar a zero.
Se for identificado um problema em potencial, o parâmetro pode ser incrementado on-the-fly através do proutil increaseto. Consulte esse artigo para detalhes.