Em 4 de abril de 2011 11:15, Fábio Gibon - Comex System
<gi...@comexsystem.com.br> escreveu:
> Pessoal,
>         por favor, vejam se o conceito que tenho de work_mem está correto:
>
> work_mem: é um limite de memória (apenas um limite, não é prealocada) para
> operações de sort (order by, distinct, ...) antes de ter que utilizar disco
> para isto. É um valor total para o cluster, não por
> client/session/transaction...

Não está correto. O valor é um limite por conexão, não é global para o cluster.
>
> A minha dúvida é como consigo mensurar o uso da work_mem para saber se está
> super/sub dimensionada? Tem alguma view para isto?

Uma forma simples de saber isso é criar uma tablespace temporário numa
partição específica e monitorar o uso da partição. Sempre que uma
operação for utilizar mais que o disponível em work_men, a sessão irá
utilizar o disco, na partição especificada. Se você tiver muito I/O
nesta partição, então poderá se beneficiar do aumento do WORK_MEM.

Você também pode setar este parâmetro por sessão/usuário/base. Então,
se você tem operações muito específicas que vão fazer um SORT muito
grande, pode ajustar este parâmetro apenas neste momento e deixar o
restante com o valor padrão.

Uma forma de fazer um ajuste grosso neste parâmetro é verificar a
quantidade de memória disponível logo após a inicialização do Postgres
(após a alocação dos SHARED_BUFFERs) mas sem conexões ativas. Pegue o
total de memória disponível e divida pelo número máximo de conexões em
MAX_CONNECTIONS. Deste valor, pegue apenas uma fração, como 1/3 disso.

EX: Memória total = 16GB. Após subir o PostgreSQL a memória livre é de
4GB. Se o seu MAX_CONNECTIONS estiver em 100, teremos: 4G/100 = 40MB.
Você poderia utilizar com segurança algo entre 10MB e 20MB.


>
> abraços
>
> Fábio Henrique Gibon
> _______________________________________________
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>



-- 
Atenciosamente,
Fábio Telles Rodriguez
blog: http://www.midstorm.org/~telles/
e-mail / gtalk / MSN: fabio.tel...@gmail.com
Skype: fabio_telles
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a