Demasiada E / S gerada pelo processo de colecionador de estatísticas postgres

9

Estou usando o XenServer com várias máquinas virtuais com bancos de dados postgres locais. Mesmo quando todos os aplicativos não são usados e os bancos de dados estão ociosos, cada vm causa tráfego de rede de armazenamento constante, o que degrada o desempenho do dispositivo de armazenamento iscsi.

Depois de executar iotop , observei que o processo do processo coletor de estatísticas do postgres está constantemente gravando no disco a uma taxa de aproximadamente 2 MByte / s.

Em seguida, desativei a coleta de estatísticas editando /etc/postgresql/8.4/main/postgresql.conf :

#------------------------------------------------------------------------------
# RUNTIME STATISTICS
#------------------------------------------------------------------------------

# - Query/Index Statistics Collector -

track_activities = off
track_counts = off
...

como sugerido no link .

Isso eliminou a escrita contínua, mas há alguma desvantagem em desligar o monitoramento de estatísticas?

Ou eu deveria colocar o diretório pg_stat_tmp em um ramdisk para evitar o tráfego de disco / rede?

O sistema é um Debian 6.0.7 atualizado (squeeze) com postgres 8.4 e cerca de 20 bancos de dados com cerca de 50 tabelas, o tamanho total do arquivo de dump é inferior a 100 MByte.

    
por nn4l 01.04.2013 / 11:09

2 respostas

6

Como a atualização do PostgreSQL não é uma opção, tentei colocar o diretório pg_stat_tmp em um sistema de arquivos tmpfs, que forneceu uma melhora significativa no desempenho. Agora estou executando isso em algumas dezenas de sistemas por um par de meses sem quaisquer inconvenientes perceptíveis.

Para fazer isso, basta montar o pg_stat_tmp com tmpfs no seu arquivo / etc / fstab:

# <file system> <mount point>                                <type>  <options>  <dump>  <pass>
tmpfs           /var/lib/postgresql/8.4/main/pg_stat_tmp     tmpfs   defaults,noatime,mode=1777,uid=postgres,gid=postgres,nosuid,nodev 0 0
    
por 17.07.2013 / 16:04
0

Atualize o PostgreSQL. No mínimo, certifique-se de estar na última versão 8.4; Se isso não resolver o problema e for prático, provavelmente você deve atualizar para o 9.2. Pelo menos alguns problemas em torno do coletor de estatísticas foram abordados desde a versão 8.4, e chegará ao fim de vida em cerca de um ano . Você pode encontrar mais informações pesquisando os arquivos da lista de discussão geral pgsql .

Você não deve ter muitos problemas atualizando de 8.4 para 9.2, mas como de costume você deve ler a seção de atualização das notas de lançamento para cada versão .0 entre (9.0, 9.1 e 9.2) . Preste especial atenção a standard_conforming_strings e bytea_output .

    
por 01.04.2013 / 13:09