FANTÁSTICO Fabrízio! Executei seu select, ele me retornou mais de 400MB FREE, ou seja.. não utilizados.. Caracas! Vou tomar providências...
Muito obrigado a todos que contribuíram com essa thread! Valeu! Renato Em 9 de novembro de 2012 13:03, Fabrízio de Royes Mello < [email protected]> escreveu: > > Em 9 de novembro de 2012 12:54, Renato Ricci > <[email protected]>escreveu: > >> Após eu carregar a contrib pg_buffercache em meu banco, executei um >> select que está na página oficial do PostgreSQL ( >> http://www.postgresql.org/docs/9.1/static/pgbuffercache.html ): >> >> select sum ( buffers) >> from (SELECT c.relname, count(*) AS buffers >> FROM pg_buffercache b INNER JOIN pg_class c >> ON b.relfilenode = pg_relation_filenode(c.oid) AND >> b.reldatabase IN (0, (SELECT oid FROM pg_database >> WHERE datname = current_database())) >> GROUP BY c.relname >> ORDER BY 2 DESC)a; >> >> o resultado foi: 9834 >> ou seja... há 9.834 buffer carregados na memória.. multiplicando por 8k >> (que é o tamanho de cada buffer), tenho 78.672k ou seja.. +- 78 megas.. >> Seria esses 78 MB o tamanho do banco em memória? ou seja.. se tenho >> shared_buffers setado para 512MB, podemos dizer que no momento atual estou >> dedicando muito mais memória do que realmente preciso? >> >> > Exatamente... e provavelmente o seu PostgreSQL está sendo penalizado por > causa disso, pois cada operação que ele realiza ele varre *toda* a shared > memory (shared_buffers), e se vc está alocando apenas 78Mb dos 512Mb que > reservou, então ele está disperdiçando recursos nessa varredua que é, no > mínimo, inútil. > > O select abaixo eu uso para ver a quantidade de shared memory alocada e > não alocada: > > SELECT datname, > CASE > WHEN relfilenode IS NOT NULL THEN > 'ALLOCATED' > ELSE > 'FREE' > END, > pg_size_pretty(count(*) * current_setting('block_size')::integer) > AS size > FROM pg_buffercache b > LEFT JOIN pg_database d on d.oid = b.reldatabase > GROUP BY 1, 2; > > Um ponto importante, um select na "pg_buffercache" é uma operação muito > *cara* porque ele precisa bloquear todas as páginas para poder inspecionar > e devolver o resultado, e isso quer dizer que todas as operações que estão > sendo executadas irão ficar esperando esse select, então *use com > moderação*. > > Att, > > -- > Fabrízio de Royes Mello > Consultoria/Coaching PostgreSQL > >> Blog sobre TI: http://fabriziomello.blogspot.com > >> Perfil Linkedin: http://br.linkedin.com/in/fabriziomello > >> Twitter: http://twitter.com/fabriziomello > > > _______________________________________________ > pgbr-geral mailing list > [email protected] > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > >
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
