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