AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 159212
Accepted
SQL_Deadwood
SQL_Deadwood
Asked: 2016-12-27 11:46:44 +0800 CST2016-12-27 11:46:44 +0800 CST 2016-12-27 11:46:44 +0800 CST

4 CPUs de 20 (Nó NUMA 0) Atrelado a 100%

  • 772

O DBA Sênior anterior deixou a empresa e eu fui informado de um servidor que sofre de vários problemas, em grande parte lentidão (desde SSMS demorando muito para abrir, consultas demoradas e trabalhos SSIS com falha (Data Warehouse), até dificuldades de conexão com servidores vinculados (mais de 150 deles)).

Provavelmente há muita coisa acontecendo neste servidor que contém 5 instâncias empilhadas. Um novo DBA Sênior se juntará à equipe em breve, mas seria bom ter tudo resolvido para ele ou ela quando eles se juntarem.

Então, o âmago da questão:

Quando tomei conhecimento do problema, descobri que 94% da memória do servidor estava alocada para o SQL Server. Fui em frente e reduzi para 85% desalocando a memória de duas instâncias que foram superprovisionadas.

Percebi então que MAXDOP em nossa instância padrão foi definido como 4 (possivelmente 6, não me lembro) junto com uma configuração de CPU Affinity. Essas CPUs foram rastreadas enquanto havia atividade mínima nas outras. Eu fui em frente e removi a configuração Affinity (uma vez que essas configurações estavam em vigor antes de CPUs adicionais serem adicionadas). Defino MAXDOP como 20 em todas as 5 instâncias.

Atualmente, ainda estou vendo 4 das CPUs atreladas, mas com uma média geral. uso (em todas as CPUs) de aproximadamente apenas 25%.

Eu usei o ProcExp da SysInternal, o Monitor de recursos e o Windows Performance Toolkit para observar o problema, mas não sei como isolar qual(is) processo(s), especificamente, é(são) a causa raiz. Alguma recomendação/orientação sobre como realmente isolar o que está acontecendo aqui? (ou seja, contadores / rastreamentos / outros programas específicos.)

UPDATE , por solicitações:

Informações do sistema:
Windows Server 2012 R2 Standard
64 GB de memória total
20 CPUs

Configuração:
24 GB de memória alocada para esta instância
26,5 GB de memória alocada para outras instâncias (total de 50,5 GB - 78,9%)
Limite de custo para paralelismo = 50 (em todas as instâncias)

Desativei um processo SSAS não utilizado.

sql-server vmware
  • 2 2 respostas
  • 1025 Views

2 respostas

  • Voted
  1. John Alan
    2016-12-27T23:07:47+08:002016-12-27T23:07:47+08:00

    Então você tem 5 instâncias 'empilhadas' em um único servidor Windows. Você não disse exatamente quantos soquetes/CPUs estão disponíveis e quanta memória. Gosto de definir afinidade para cada instância nesses casos, mesmo que decida ter CPUs sobrepostas na luta para equilibrar a carga geral da CPU (depende da carga de cada instância).

    Qualquer instância com mais de 4 CPUs pode usar uma configuração DOP explícita em minha experiência - raramente acima de '4' em casos empilhados como o seu. Não se esqueça de definir 'Limite de custo do paralelismo' para cada instância para algo razoável (50?) Para evitar paralelismo excessivo - no seu caso, isso é ainda mais importante.

    Lembre-se que a memória deixada "para o SO" deve ser maior agora, já que você tem que contabilizar o footprint de cada instância (em cima do SSIS etc). Verifique no SQL Config Mgr se o SSAS também está em execução e ajuste sua 'memória máxima' de acordo, por padrão, ele ocupa 80% de toda a memória do servidor (!)

    Também talvez valha a pena remover e 'Bloquear páginas na memória' da(s) conta(s) do Serviço SQL para que o sistema operacional possa respirar e fazer seu trabalho melhor (se paginar, todo mundo sofre!). Também é uma boa prática definir uma 'memória mínima' razoável para cada instância.

    Acho que executar sp_blitz e sp_blitz_first em cada instância forneceria algumas dicas rápidas sobre questões mais urgentes.

    Você também pode querer monitorar alguns contadores do windows permon como 'memória disponível' e 'conjunto de trabalho' para cada um dos processos em execução lá, caso encontre horários específicos do dia/noite em que o servidor está sofrendo.

    • 3
  2. Best Answer
    SQL_Deadwood
    2017-01-11T07:11:25+08:002017-01-11T07:11:25+08:00

    A causa desse problema quase certamente estava no nível da VM. A equipe de operações configurou o servidor não apenas para ter 20 CPUs, mas também 20 soquetes.

    Li online que os servidores virtuais não diferenciam entre soquetes, núcleos ou CPUs, mas o problema desapareceu desde que solicitei a alteração da configuração. Além disso, as ferramentas VMware não relataram nenhum problema. As ferramentas de solução de problemas do VMware nem estavam disponíveis (supostamente), pois um problema não foi reconhecido.

    • 1

relate perguntas

  • SQL Server - Como as páginas de dados são armazenadas ao usar um índice clusterizado

  • Preciso de índices separados para cada tipo de consulta ou um índice de várias colunas funcionará?

  • Quando devo usar uma restrição exclusiva em vez de um índice exclusivo?

  • Quais são as principais causas de deadlocks e podem ser evitadas?

  • Como determinar se um Índice é necessário ou necessário

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve