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 / 313388
Accepted
simon coleman
simon coleman
Asked: 2022-06-16 04:27:47 +0800 CST2022-06-16 04:27:47 +0800 CST 2022-06-16 04:27:47 +0800 CST

Aumento substancial sustentado em Gravações Lógicas para todos os planos e bancos de dados em uma Instância Gerenciada do Azure

  • 772

Temos uma instância gerenciada com 12 ou mais dbs que suportam o mesmo aplicativo em 2x clientes. Isso está sendo executado em uma instância gerenciada por sql de 4 núcleos, mas quase exatamente à meia-noite, hora local, cerca de 2 semanas atrás, o desempenho caiu substancialmente. Isso foi visto como CPU excessiva (aumentando rapidamente para 100% quando o trabalho do usuário começou às 6h daquele dia) e a instância foi migrada para 8 núcleos por volta do meio-dia.

Em 8 núcleos, as métricas do Azure para CPU média e de pico se estabilizaram nos mesmos níveis da instância de 4 núcleos e permaneceram semelhantes (portanto, o gráfico tem a mesma forma seguindo a demanda do usuário na pré e pós-migração).

Isso sugere que o serviço agora é 1/2 tão eficiente quanto antes do pico de 100% da CPU.

A análise mostra que a espera dominante de longe é SOS_scheduler_yield. Ao mesmo tempo, notamos que quase todas as consultas que verificamos no repositório de consultas registram um grande aumento nas Gravações Lógicas no ponto da meia-noite em que vemos a CPU começando a aumentar.

Eu me perguntei se algo de Paul Randall sobre o comprometimento excessivo da VM pode ser relevante https://www.sqlskills.com/blogs/paul/increased-sos_scheduler_yield-waits-on-virtual-machines/ no entanto, não acho que isso se encaixe na assinatura para aumento de Gravação Lógica.

Então, isso pode ser de 10k gravações para 1M+, ou seja, 2 ordens de magnitude.

Não estamos vendo consultas de longa duração, sem bloqueio - o sistema atende a muitas consultas curtas.

Correspondendo ao alto número de gravações lógicas, o PLE caiu no chão - agora mede em minutos se tivermos sorte, segundos se não.

a carga de trabalho OLTP (demanda do usuário) permanece inalterada em relação a antes, assim como os volumes de dados.

Parece um pouco com planos obsoletos, mas em grande escala - ou como se o sqlserver decidisse descartar uma vez dos caminhos do otimizador da implementação da consulta.

O que é estranho é como alguns planos para a mesma consulta mostram gravações lógicas inalteradas antes/depois, mas outros planos para essa consulta mostram esse grande pico, mesmo que o ID do plano seja o mesmo. E isso não é "consulta de um problema" - esse padrão é exibido para quase todas as consultas que analisamos. Ou eles têm um único plano e ele aumentou, ou eles têm alguns planos (parametrização) e alguns aumentaram e outros não. Ainda não encontramos um padrão para eles.

Uma revisão de DBA externa realmente não revelou nada além de estatísticas um pouco obsoletas (ainda quando consultamos estatísticas obsoletas, as com alta taxa de alteração são todas atualizadas nos últimos dias e eu ficaria um pouco surpreso se essa fosse a causa subjacente através de uma ampla gama de consultas.

Ele foi escalado para o MS, mas pensei em postar caso alguém tivesse experimentado algo semelhante (grande aumento repentino nas gravações lógicas), principalmente no Azure. Da forma como o gráfico da CPU lê, estamos usando a mesma % de CPU avg/max antes e depois do aumento do núcleo, é quase exatamente o dobro do consumo de CPU. O que me faz pensar que é um fator que afeta o sqlserver, mas não diretamente no db.

Obrigado por ler até aqui e todas as sugestões úteis!

sql-server performance
  • 1 1 respostas
  • 28 Views

1 respostas

  • Voted
  1. Best Answer
    simon coleman
    2022-08-24T04:03:41+08:002022-08-24T04:03:41+08:00

    Isso acabou sendo um problema causado por um patch da Microsoft. No dia em questão em que nossa CPU ficou sobrecarregada, um patch foi implantado em nossa máquina do Azure que aumentou a demanda da CPU para todas as operações de disco criptografadas. Isso efetivamente dobrou a CPU, sobrecarregando nossa máquina de 4 vcpu e por que (tendo dobrado os núcleos para 8) o carregamento da CPU parecia ser aproximadamente o dobro do nível usual de antemão. Cerca de 3 semanas depois, aconteceu exatamente o inverso. Um patch foi implantado e nosso nível de CPU relatado magicamente caiu pela metade. Claro, só descobrimos o motivo subjacente um mês depois, quando outros investigaram e relataram isso. Mas as datas se alinham exatamente e certamente vimos que os patches foram instalados para recuperar a situação. Infelizmente, muito longe para poder verificar o histórico de patches para o início do problema. https://www.thereregister.com/2022/08/09/widows_data_damage/

    • 0

relate perguntas

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

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

  • Onde posso encontrar o log lento do mysql?

  • Como posso otimizar um mysqldump de um banco de dados grande?

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