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