Olá, Newton
2009/3/11 Newton Teixeira do Nascimento Júnior <[email protected]>: > > > Olá comunidade, fiz alterações no postgresql.conf > > (baseado no artigo > http://www.postgresql.org.br/Checklist_de_Performance_do_PostgreSQL_8.0) > > em alguns parâmetros (shared_buffers, work_mem, maintenance_work_mem) > > e depois reiniciei o serviço postgres pelo utilitário gráfico de serviços do > Linux, porém ele não levantou mais. > > Tive que retirar a mudança no shared_buffers para o que era (24MB) e > > reiniciar o Linux para poder subir com o postgres novamente. > O que aconteceu aqui foi que provavelmente você colocou um valor maior para o shared_buffers do que o parâmetro shmmax do kernel do Linux. O parâmetro shmmax informa o tamanho máximo de um segmento de memória compartilhada, isto é, o parâmetro shared_buffers não pode ser maior do que este parâmetro. Acredito que seja isso o problema. > > > Como posso alterar esse shared_buffers (como alterar os parametros de > inicializaçaõ via linha de comando)? > > Como deve-se alterar aqueles parâmetros em tempo de execução (arquivo ou > linha de comando)? Você quer dizer a altareção do parâmetro em uma sessão? postgres=# SHOW work_mem; work_mem ---------- 1MB (1 row) postgres=# SET work_mem TO "5MB"; SET postgres=# SHOW work_mem; work_mem ---------- 5MB (1 row) Isso que você se refere? Lembrando que esta alteração será válida apenas na sessão. Ao você finalizar a sessão ele volta ao valor default definido no postgresql.conf. > > Como faço o autovacuum via linha de comando no linux (quero adicionar essa > tarefa no cron)? O processo de autovacuum você não executa na linha de comando. Para isso você vem o utilitário vacuumdb. E lembre-se de executar o analyze em conjunto. A opção do vacuumdb para executar o analyze é o parâmetro -z ou --analyze. > > > > Preciso fazer isso porque tenho uma consulta mensal que faz cálculos > complexos no banco > > utilizando tabelas de quase um 1GB que está demorando quase 03 horas pra > rodar. > > O servidor aqui da empresa é um CentOS 4.5 e Postgresql 8.2.4 - > > Processador Xeon FC-LGA 771 dual core Cache 2 4MB e Memória RAM de 04GB. > > É um servidor dedicado de banco de dados e servidor Web. > > > > O banco com que estou trabalhando está atualmente com mais de 100GB e as > tabelas que são objeto de cálculo > > dessa minha função são da ordem superior a 800MB (quase 06 milhões de > registros). > > O banco recebe varias centenas de informações a cada 10 segundos. > > > > Com as mudanças que fiz (work_mem, maintenance_work_mem) já notei que o > tempo diminuiu. O work_mem vai te ajudar em processos de agrupamento enquanto que o maintenance_work_mem vai te ajudar em operações do vacuum, create index, alter table add foreign e etc. > > Também já fiz o analize e vacuum via pgadmim. > > > > PS: Sei quase nada de Linux. Tõ aprendendo (:>) > > > > ANTES > > shared_buffers = 24MB # min 128kB or max_connections*16kB # (change > requires restart) > > #work_mem = 1MB # min 64kB > > #maintenance_work_mem = 16MB # min 1MB > > > > ATUAIS > > shared_buffers = 24MB > > work_mem = 64MB > > maintenance_work_mem = 512MB > > > > COMO EU QUERO > > shared_buffers = 256MB > > work_mem = 64MB > > maintenance_work_mem = 512MB > > _______________________________________________ > pgbr-geral mailing list > [email protected] > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > > Qualquer coisa estamos por ai. []s -- JotaComm http://jotacomm.wordpress.com http://www.dextra.com.br/postgres _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
