Olá

2009/12/4 Marcelo Barbosa <marcelo.barb...@sizeof.com.br>

> Prezada Comunidade PostgreSQL,
>
>    Trabalhamos com soluções em Data Center e temos um cenário de um cliente
> que este nos preocupando, logo estamos reportando a comunidade, a fim de
> buscar uma luz no final do túnel, sendo assim segue nosso cenário:
>
> * Servidor FreeBSD 8.0 64bits
> * Pacostes instalados:
> postgresql-client-8.2.13 PostgreSQL database (client)
> postgresql-contrib-8.2.13_2 The contrib utilities from the PostgreSQL
> distribution
> postgresql-server-8.2.13 The most advanced open-source database available
> anywhere
>
> * Problema: Ao executarmo a mesma query no servidor do cliente esta demora
> menos de 02:30 minutos já no cenário apresentado esta demorando mais de
> 03:30, sendo assim segue a forma que estamos executando a query:
>
> |_r...@cliente: 10:29:36 ~_| date; time psql banco tabela -f consulta.sql
> 1> /dev/null 2> /dev/null
>
>    Ao analisarmos o consumo dos recursos do servidor notamos o seguinte
> problema:
>
> |_r...@cliente: 10:29:51 ~_| top
> last pid: 37984;  load averages:  0.63,  0.18,  0.06
> up 0+05:38:26  10:30:59 46 processes:  2 running, 44 sleeping
> CPU: 49.2% user,  0.0% nice,  0.8% system,  0.4% interrupt, 49.6% idle
> Mem: 105M Active, 18M Inact, 92M Wired, 228K Cache, 81M Buf, 1783M Free
> Swap: 8192M Total, 8192M Free
>
>   PID USERNAME  THR PRI NICE   SIZE    RES STATE   C   TIME   WCPU COMMAND
> 37982 pgsql       1 118    0   115M 49708K CPU1    1   1:01 100.00%
> postgres
>   861 root        1  44    0  6676K  3768K select  0   0:10  0.00% sshd
>   823 pgsql       1  44    0 83712K  9784K select  0   0:04  0.00% postgres
>   596 root        1  44    0  3344K  1244K select  0   0:01  0.00% syslogd
>   832 www         1  44    0  6028K  3476K kqread  0   0:01  0.00% lighttpd
>   868 root        1  44    0  6072K  3548K select  0   0:00  0.00% sendmail
>   824 pgsql       1  44    0 10400K  4528K select  0   0:00  0.00% postgres
>   887 www         1  45    0 29704K 18156K accept  1   0:00  0.00% php-cgi
>   875 www         1  45    0 29704K 18160K accept  1   0:00  0.00% php-cgi
>   846 www         1  51    0 27656K 14448K wait    0   0:00  0.00% php-cgi
>   858 www         1  51    0 27656K 14676K wait    0   0:00  0.00% php-cgi
>   859 www         1  52    0 27656K 14768K wait    0   0:00  0.00% php-cgi
>   860 www         1  52    0 27656K 14852K wait    1   0:00  0.00% php-cgi
>   821 pgsql       1  44    0 83712K  9744K select  0   0:00  0.00% postgres
>   894 root        1  44    0  3372K  1372K nanslp  0   0:00  0.00% cron
> 28908 pgsql       1  46    0 84736K 12956K sbwait  1   0:00  0.00% postgres
> 37979 root        1  44    0  3680K  1928K CPU0    0   0:00  0.00% top
> 28909 pgsql       1  47    0 84736K 12972K sbwait  1   0:00  0.00% postgres
> 37973 root        1  44    0  9400K  4416K select  0   0:00  0.00% sshd
> 37976 root        1  44    0  4560K  2404K wait    0   0:00  0.00% bash
> 37981 root        1  45    0  6972K  3572K select  1   0:00  0.00% psql
> 37978 root        1  44    0  4560K  2404K wait    0   0:00  0.00% bash
>   872 smmsp       1  44    0  6072K  3464K pause   1   0:00  0.00% sendmail
>   950 root        1  76    0  3344K  1180K ttyin   0   0:00  0.00% getty
>   948 root        1  76    0  3344K  1180K ttyin   1   0:00  0.00% getty
>   954 root        1  76    0  3344K  1180K ttyin   0   0:00  0.00% getty
>   952 root        1  76    0  3344K  1180K ttyin   1   0:00  0.00% getty
>   953 root        1  76    0  3344K  1180K ttyin   1   0:00  0.00% getty
>   951 root        1  76    0  3344K  1180K ttyin   0   0:00  0.00% getty
>   949 root        1  76    0  3344K  1180K ttyin   1   0:00  0.00% getty
>   955 root        1  76    0  3344K  1180K ttyin   0   0:00  0.00% getty
>   478 root        1  44    0  1888K   540K select  1   0:00  0.00% devd
>   889 www         1  52    0 27656K 14800K accept  1   0:00  0.00% php-cgi
>   888 www         1  52    0 27656K 14800K accept  1   0:00  0.00% php-cgi
>   877 www         1  52    0 27656K 14884K accept  1   0:00  0.00% php-cgi
>   874 www         1  51    0 27656K 14480K accept  0   0:00  0.00% php-cgi
>   881 www         1  51    0 27656K 14708K accept  1   0:00  0.00% php-cgi
>   879 www         1  52    0 27656K 14884K accept  1   0:00  0.00% php-cgi
>   890 www         1  53    0 27656K 14800K accept  1   0:00  0.00% php-cgi
>   883 www         1  51    0 27656K 14708K accept  1   0:00  0.00% php-cgi
>   876 www         1  51    0 27656K 14480K accept  0   0:00  0.00% php-cgi
>   878 www         1  51    0 27656K 14480K accept  0   0:00  0.00% php-cgi
>   873 www         1  51    0 27656K 14480K accept  1   0:00  0.00% php-cgi
>   880 www         1  52    0 27656K 14884K accept  0   0:00  0.00% php-cgi
>   882 www         1  51    0 27656K 14708K accept  1   0:00  0.00% php-cgi
>   885 www         1  51    0 27656K 14708K accept  1   0:00  0.00% php-cgi
>
>    Como podem perceber acima o servidor esta com memória, hard drive e cpu
> com disponibilidade considerável, mas detectamos que somente um processo:
> "postgresql 37982" esta com 100% de uso, mesmo tendo recursos no equipamento
> disponíveis, parecendo que o PostgreSQL não esta utilizando o recurso de
> THREAD, pois outros 03 processos "postgresql" estão utilizando 0% de
> recursos, algum integrante já passou por este problema ? como podemos
> liberar para este processo um uso maior de recursos do servidor, ou mesmo
> liberar mais de um processo para a mesma query, no estilo THREAD, desde já
> obrigado pela atenção de todos.
>
>
>
Muuito estranho...mas eu consideraria

Pelo que reportou o servidor está sendo dividido com WEB,EMAIL(Sendmail).
Isso já gera concorrencia suficiente caso esse equipamento já esteja em
produção

Você precisa especificar exatamente o que está sendo execudado com esse pid
aqui:

37982 pgsql       1 118    0   115M 49708K CPU1    1   1:01 100.00% postgres

Para que possamos te dizer o que pode ser. Roda o TOP digita u e depois
postgres quando aparecer apenas os processos do PostgreSQL você digita c.
Com isso ele vai detalhar o que está sendo executado. Eu estou apostando que
pode ser um processo de vacuum mas é só uma suposição ok ?

Para ajudar ainda mais você poderia enviar os logs do postgresql ?

Parece que há recurso suficiente de hardware acho que algum ajuste no
postgrtesql.conf resolva mas precisamos ver o log do postgresql



-- 
Marcelo Costa
www.marcelocosta.net
-------------------------------------------------
“You can't always get what want”,

Doctor House in apology to Mike Jagger
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a