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 / 74292
Accepted
eddie_cat
eddie_cat
Asked: 2014-08-19 11:49:59 +0800 CST2014-08-19 11:49:59 +0800 CST 2014-08-19 11:49:59 +0800 CST

Mensagens do FlushCache que aparecem no log em horários específicos

  • 772

Temos tido muitos problemas de desempenho de banco de dados ultimamente e tenho tentado ver se consigo descobrir o motivo. Não temos um DBA (sou desenvolvedor de software), então estou meio que improvisando, e muito do que encontro online parece uma língua estrangeira para mim.

Reiniciamos o SQL Server todas as manhãs porque essa é a única maneira de funcionar durante o dia útil. Percebi que todas as manhãs, por volta das 5 da manhã, começamos a receber esta mensagem a cada dois minutos no log:

FlushCache: limpou 11848 bufs com 7432 gravações em 97168 ms (evitou 8139 novos bufs sujos) para db 9:0

última meta pendente: 4, avgWriteLatency 32

taxa de transferência média: 0,72 MB/s, saturação de E/S: 11635, alternâncias de contexto 18849

Os números diferem a cada vez, é claro, mas é a mesma mensagem repetidamente nesse padrão até que eu reinicie o servidor. Não tenho certeza de como interpretar isso, tenho tentado pesquisar no Google sobre isso e tudo o que reuni é que isso significa que pode haver algo errado com a E / S e que algo está demorando mais do que deveria. Recentemente, mudamos para o uso de SSD, então não achei que deveria ser um problema de gravação.

Alguém poderia dar uma luz sobre isso?

sql-server sql-server-2012
  • 1 1 respostas
  • 60902 Views

1 respostas

  • Voted
  1. Best Answer
    Thomas Stringer
    2014-08-20T04:31:24+08:002014-08-20T04:31:24+08:00

    A mensagem FlushCache no log de erros é causada pelo log de ponto de verificação e, neste caso, por um ponto de verificação longo (que é definido como um ponto de verificação que está demorando mais do que o intervalo de recuperação). Seja registrado ou não, o comportamento é diferente em pré-2012 e 2012+. Antes do SQL Server 2012, para obter o log de ponto de verificação, você precisava ativar um sinalizador de rastreamento (T3504). Mas, a partir do SQL Server 2012, essa mensagem é registrada por padrão quando um ponto de verificação longo é encontrado.

    Agora, quanto à questão de "isso é realmente ruim ?" , você realmente precisa começar a olhar para esses números considerando seu contexto. Você levou mais de 97 segundos para liberar apenas cerca de 93 MB de buffers sujos. Parece que isso pode ser uma mistura de muita rotatividade de dados (durante o ponto de verificação real, cerca de 64 MB de buffers também foram sujos) e potencialmente armazenamento que não está acompanhando a modificação de dados e/ou o resto da carga de trabalho de E/S.

    O que eu faria é verificar a integridade do seu subsistema de armazenamento , observar as esperas e obter uma imagem geral do desempenho da instância. Dê uma olhada nos contadores de desempenho de disco lógico e veja qual é a variação geral de E/S com taxa de transferência , latência e IOps . Isso o ajudará a pintar uma imagem mais vívida de como os discos estão funcionando. Se você tiver a capacidade de comparar seu armazenamento, se ainda não o tiver definido como linha de base, deverá ver do que esses volumes em questão são capazes ( o SQLIO é um ótimo utilitário para isso) e o que eles estão fazendo agora (é bom ter uma linha de base de referência quando os volumes foram levantados para comparar com uma referência atual).

    Aqui está um ótimo artigo explicando esta mensagem - Como funciona: Quando a mensagem FlushCache é adicionada ao log de erros do SQL Server?

    EDIT : Relendo sua pergunta, devo ter perdido este comentário:

    Percebi que todas as manhãs por volta das 5 da manhã começamos a receber esta mensagem

    Veja o que está acontecendo em seu armazenamento neste momento de acordo com as orientações acima. Isso soa como uma operação agendada de livro didático que está afetando o armazenamento, fazendo com que o desempenho do ponto de verificação sofra e seja "longo".

    • 30

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