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 / 126826
Accepted
Michael Hooreman
Michael Hooreman
Asked: 2016-01-21 23:52:50 +0800 CST2016-01-21 23:52:50 +0800 CST 2016-01-21 23:52:50 +0800 CST

“usando estatísticas obsoletas em vez das atuais porque o coletor de estatísticas não está respondendo”

  • 772

Meus logs do postgresql 9.5 mostram a cada minuto a mensagem:

usando estatísticas desatualizadas em vez das atuais porque o coletor de estatísticas não está respondendo

Exceto um post sobre serverfault que não é útil e parece relacionado à configuração de bancos de dados em espera (que não é o meu caso), não encontro nada para resolver isso.

Qual é o significado disto? Como posso resolver isso?


Informações adicionais com base na resposta de Greda:

  • Eu tenho 4 CPUs e na rotina menos de 5% de 1 CPU é usado
  • Tenho 32Gb de RAM, e na rotina ~ 500Mb são usados
  • Isso não é uma VM
  • Isso executa o Ubuntu 14.04.3 LTS/Linux 3.13.0 SMB x86/64

Eu também tentei ajustar os parâmetros postgresql.conf da seguinte forma

  • buffer_compartilhado: 1024 MB
  • work_mem: 10 MB
  • Maintenance_work_mem: 1024 MB
  • Effective_cache_size: 4 GB

A mensagem de erro ainda está lá.

PS: Entendo perfeitamente que não é um erro grave, mas inunda meus logs e tenho medo de não ver mensagens importantes...


Algumas observações adicionais:

  • VACUUM FULL VERBOSE ANALYZEnão ajuda
  • Eu tenho um processo interminável conectado ao banco de dados. Quando está em execução, o VACUUM FULL VERBOSE ANALYZEparece bloqueado.

Esse processo sem fim pode ser a causa raiz do meu problema? Nesse caso, como preciso ter esse processo em execução, preciso ajustar algo no servidor?


Editar:

Eu tive um processo interminável conectado ao banco de dados. Eu tentei pará-lo, e isso não ajuda.

Meu arquivo postgresql.conf está disponível lá

postgresql postgresql-9.5
  • 4 4 respostas
  • 15710 Views

4 respostas

  • Voted
  1. Grega Bremec
    2016-01-22T00:34:10+08:002016-01-22T00:34:10+08:00

    Isso basicamente significa que sua máquina (virtual?) está muito lenta ou sobrecarregada, porque a tarefa em segundo plano do coletor de estatísticas está morrendo de fome. Ele está sendo executado com uma prioridade mais baixa por padrão, porque você não deseja que ele interrompa as operações normais do banco de dados (muito).

    Se você puder pagar, adicione mais algumas CPUs e certifique-se de ter bastante RAM.

    Tecnicamente, porém, este não é um erro grave - suas consultas serão executadas, mas podem estar usando planos de execução abaixo do ideal porque não viram uma atualização nas estatísticas da tabela por um tempo.

    Se desejar, você sempre pode forçar uma atualização de estatísticas para as tabelas alteradas com mais frequência executando as instruções ANALYZE ou VACUUM ANALYZE nelas.

    • 4
  2. Syranolic
    2016-02-19T04:52:27+08:002016-02-19T04:52:27+08:00

    Para aliviar temporariamente o problema até encontrar uma solução, você já tentou enviar um SIGHUP para o servidor quando isso ocorre?

    Eu tenho um problema semelhante em uma situação bastante diferente: o banco de dados é executado em um PC desktop com Windows junto com o Apache e o software proprietário de controle de máquina. Meu caso se encaixa na categoria "lento ou sobrecarregado". No entanto, vejo isso acontecendo mesmo à noite, enquanto a máquina está ociosa. Tenho monitorado muitos parâmetros do sistema com o PRTG para tentar encontrar um link com uma atividade específica, mas só consigo ver as consequências, não a causa.

    Não vejo isso como um aviso simples porque, uma vez iniciado, as consultas que normalmente levam 100 ms começarão a levar 10 segundos (mas ainda não afetarão outras consultas). Além disso, fica assim até que eu envie um SIGHUP (pg_ctl.exe reload ...), o que acho estranho, pois o processo deve ser retomado assim que não estiver mais faminto.

    PS, por favor, não me fale sobre a parte da área de trabalho do Windows: eu sei e ... circunstâncias.

    • 3
  3. Best Answer
    Michael Hooreman
    2016-04-07T06:11:15+08:002016-04-07T06:11:15+08:00

    Desapareceu ao atualizar para 9.5.2.1 ( http://apt.postgresql.org/pub/repos/apt/ ), mas voltou após a reinicialização do servidor.

    Parece que foi devido ao reinício do serviço durante a instalação

    A solução é reiniciar o serviço.

    Pergunta encerrada

    • 2
  4. mivk
    2022-04-14T04:46:34+08:002022-04-14T04:46:34+08:00

    Isso aconteceu comigo quando desativei o IPv6 no servidor sem reiniciar o Postgres. Encontrei uma explicação detalhada aqui (procure por "O coletor de estatísticas" na página), mas resumindo:

    O PostgreSQL [...] irá percorrer todos os endereços retornados [para localhost], criar um soquete UDP e testá-lo até que tenha um soquete que funcione.

    Se o soquete selecionado for IPv6 e for desativado posteriormente, ele para de funcionar e você obtém essa mensagem nos logs.

    Você pode verificar a qual porta IP e UDP o serviço "postmaster" (ou "postgres") está vinculado

    netstat -n -u -p
    

    A saída é algo como isto:

    Active Internet connections (w/o servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
    udp        0      0 127.0.0.1:47780         127.0.0.1:47780         ESTABLISHED 2824/postmaster     
    

    ou em outro host onde está vinculado ao IPv6 ("udp6"):

    # netstat -n -u -p
    Active Internet connections (w/o servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
    udp6       0      0 ::1:51761               ::1:51761               ESTABLISHED 1006/postgres       
    
    

    Reiniciar o postgres conforme sugerido na resposta aceita realmente o corrige.

    • 1

relate perguntas

  • Posso ativar o PITR depois que o banco de dados foi usado

  • Práticas recomendadas para executar a replicação atrasada do deslocamento de tempo

  • Os procedimentos armazenados impedem a injeção de SQL?

  • Sequências Biológicas do UniProt no PostgreSQL

  • Qual é a diferença entre a replicação do PostgreSQL 9.0 e o Slony-I?

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