none
Gerenciamento do SSAS sem uso de memória RRS feed

  • Question

  • Boa tarde,

    Tenho vários bancos do SSAS criado, porém para administra-los está dificil devido à quantidade de memória que eles alocam ao abrir pela ferramenta sql managment ou por linha de comando.

    As tarefas de consolidação não demanda a quantidade de memória que é demandada quando administro os bancos do SSAS ou tento criar um banco (tenho um banco por cliente).

    Tem alguma forma de melhorar isso, algo que não faça instância todos os banco



    Guisal

    Thursday, February 6, 2020 7:41 PM

Answers

  • GuiSal,

    Sim, você esta certo, eu somente queria ter certeza se era justamente do SSAS que você estava se referindo.

    Então normalmente o valor informando nesta propriedade não deve ultrapassar o valor de 80% da memória RAM existente no Servidor, ou seja, se você tem uma máquina com 16Gbs de RAM, recomenda-se configurar 13.7Gbs para o Total Memory Limit.

    Em adicional existe o Low Memory Limit, que representa o valor mínimo de consumo de memória RAM que também deve ser configurado nos valores de porcentagem, para esta propriedade a recomendação é que o valor não seja maior que 20%, sendo assim, dos 16Gbs de RAM, o mínimo para se trabalhar seria 3.2Gbs.

    Esta é uma recomendação bem antiga, desde a versão 2005 do SSAS, que pode ser obtida através do respectivo link: https://docs.microsoft.com/en-us/previous-versions/sql/sql-server-2005/administrator/cc966526(v=technet.10)?redirectedfrom=MSDN

    Mas um detalhe é de extrema importância, se o SSAS estiver rodando no mesmo servidor que você possui o SQL Server instalado com o servidor de Database Engine, é recomendável que você analise o consumo de memória que este serviço também esta demandando.

    Para tentar evitar este cenário, algo que não é tão trivial, o primeiro passo é verificar as configurações da propriedade HardMemoryLimit.

    Importante destacar que esta propriedade trabalha tendo valor padrão zero (0), que significa o HardMemoryLimit para o SSAS, neste caso, será definido para um valor intermediário entre o TotalMemoryLimit e a memória física total do seu ambiente. Caso a memória física do sistema operacional for maior do que o espaço de endereço virtual do processo que encontra-se em execução, o SSAS solicita que este espaço de endereço virtual seja utilizado como parâmetro de cálculo do HardMemoryLimit.

    Um cálculo muito comum aplicado a partir da versão 2014 do SQL Server em conjunto com o SSAS, para definir o HardMemoryLimit, consiste em: 

    HardMemoryLimit = (Total de Memória RAM) - (Memória definida para o Sistema Operacional) - (Valor Mínimo de Memória Definida para o SQL Server)

    --- Algo matematicamente falando: (128Gbs)-(12Gbs)-(2Gbs) = 114Gbs seria o valor do HardMemoryLimit, abaixo deste valor você identifica os valores e estabelece os demais valores.

    Veja se este link te ajuda: http://byobi.com/2014/04/ssas-memory-configurations-for-common-architectures/



    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    • Marked as answer by GuiSal Saturday, February 8, 2020 3:27 PM
    Friday, February 7, 2020 5:08 PM

All replies

  • Boa tarde,

    Tenho vários bancos do SSAS criado, porém para administra-los está dificil devido à quantidade de memória que eles alocam ao abrir pela ferramenta sql managment ou por linha de comando.

    As tarefas de consolidação não demanda a quantidade de memória que é demandada quando administro os bancos do SSAS ou tento criar um banco (tenho um banco por cliente).

    Tem alguma forma de melhorar isso, algo que não faça instância todos os banco



    Guisal

    Diminui o "TotalMemoryLimit" ele consumiu menos memória, porém o processamento foi lá pra cima, é um treadoff, não tem como gerenciar os bancos ou restaurar o banco de dados sem inicializar todos?


    Guisal

    Thursday, February 6, 2020 9:18 PM
  • GuiSal,

    Sinceramente eu não entendi a sua dúvida:

    1 - Você quer limitar a quantidade de memória?

    2 - Você quer diminuir se possível o uso e consumo de memória?

    3 - Você quer reduzir a quantidade de bancos de dados?

    Em relação a este parágrafo: "Diminui o "TotalMemoryLimit" ele consumiu menos memória, porém o processamento foi lá pra cima, é um treadoff, não tem como gerenciar os bancos ou restaurar o banco de dados sem inicializar todos?"

    O Total Memory Limit você esta se referindo a limite máximo de consumo de memória da instância do SQL Server ou do Servidor?


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    Thursday, February 6, 2020 10:25 PM
  • Bom dia tudo bom?

    O "Total Memory Limit" é um parâmetro do SSAS, pode ser visto em propriedades.

    Ao abrir o SSAS, ele tenta consumir toda memória, impedindo de gerenciar o ambiente.

    Gostaria se possível evitar esse comportamento.


    Guisal

    Friday, February 7, 2020 2:19 PM
  • GuiSal,

    Sim, você esta certo, eu somente queria ter certeza se era justamente do SSAS que você estava se referindo.

    Então normalmente o valor informando nesta propriedade não deve ultrapassar o valor de 80% da memória RAM existente no Servidor, ou seja, se você tem uma máquina com 16Gbs de RAM, recomenda-se configurar 13.7Gbs para o Total Memory Limit.

    Em adicional existe o Low Memory Limit, que representa o valor mínimo de consumo de memória RAM que também deve ser configurado nos valores de porcentagem, para esta propriedade a recomendação é que o valor não seja maior que 20%, sendo assim, dos 16Gbs de RAM, o mínimo para se trabalhar seria 3.2Gbs.

    Esta é uma recomendação bem antiga, desde a versão 2005 do SSAS, que pode ser obtida através do respectivo link: https://docs.microsoft.com/en-us/previous-versions/sql/sql-server-2005/administrator/cc966526(v=technet.10)?redirectedfrom=MSDN

    Mas um detalhe é de extrema importância, se o SSAS estiver rodando no mesmo servidor que você possui o SQL Server instalado com o servidor de Database Engine, é recomendável que você analise o consumo de memória que este serviço também esta demandando.

    Para tentar evitar este cenário, algo que não é tão trivial, o primeiro passo é verificar as configurações da propriedade HardMemoryLimit.

    Importante destacar que esta propriedade trabalha tendo valor padrão zero (0), que significa o HardMemoryLimit para o SSAS, neste caso, será definido para um valor intermediário entre o TotalMemoryLimit e a memória física total do seu ambiente. Caso a memória física do sistema operacional for maior do que o espaço de endereço virtual do processo que encontra-se em execução, o SSAS solicita que este espaço de endereço virtual seja utilizado como parâmetro de cálculo do HardMemoryLimit.

    Um cálculo muito comum aplicado a partir da versão 2014 do SQL Server em conjunto com o SSAS, para definir o HardMemoryLimit, consiste em: 

    HardMemoryLimit = (Total de Memória RAM) - (Memória definida para o Sistema Operacional) - (Valor Mínimo de Memória Definida para o SQL Server)

    --- Algo matematicamente falando: (128Gbs)-(12Gbs)-(2Gbs) = 114Gbs seria o valor do HardMemoryLimit, abaixo deste valor você identifica os valores e estabelece os demais valores.

    Veja se este link te ajuda: http://byobi.com/2014/04/ssas-memory-configurations-for-common-architectures/



    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    • Marked as answer by GuiSal Saturday, February 8, 2020 3:27 PM
    Friday, February 7, 2020 5:08 PM
  • Então não tem jeito de mudar o comportamento ao criar banco de dados, tenho que lidar com o tradeoff no ambiente mesmo.

    Obrigado!


    Guisal

    Saturday, February 8, 2020 3:27 PM
  • Então não tem jeito de mudar o comportamento ao criar banco de dados, tenho que lidar com o tradeoff no ambiente mesmo.

    Obrigado!


    Guisal

    Guisal,

    Infelizmente não!


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    Saturday, February 8, 2020 7:28 PM