Boa tarde Marco, tudo bem?<br>
<br>
Eu consegui amostragens muito boas usando o Apache::Scoreboard , ele consegue pegar esses parametros<br>
todos do mod-status.<br>
<br>
Um outro parametro que acho interessante é o <br>
<br>
kill -USR1 `cat path/httpd.pid` , não sei se no caso seria util.<br>
<br>
<a href="http://httpd.apache.org/docs/1.3/stopping.html">http://httpd.apache.org/docs/1.3/stopping.html</a><br>
<br>
<br>
<br>
Os calculos sobre os parametros do apache eu estudei com muito cuidado, por isso fiquei indignado<br>
do pessoal ter falado que o problema era do web service.<br>
<br>
Uma documentacao que achei bem bacana foi essa, indicada pelo amigo Hamilton ( que por<br>
algum&nbsp; motivo sombrio apenas lê a lista, mas me deu uma forca danada no quesito apache e linux).<br>
<br>
<a href="http://modperlbook.org/html/ch11_01.html">http://modperlbook.org/html/ch11_01.html</a><br>
<br>
Continuarei na luta, obrigado mais uma vez Marco<br><br><div><span class="gmail_quote">2007/1/23, Marco A P D&#39;Andrade &lt;<a href="mailto:mdacwb@gmail.com">mdacwb@gmail.com</a>&gt;:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Cristiano,<br><br>Eu tenho uma situação similar em um ambiente de webmail, onde alguns<br>processos do apache perdem o sincronismo, e somente com um kill direto<br>para liberar os recursos...<br><br>Iniciei alguns testes verificando informações no ExtendedStatus, e
<br>decidindo quais seriam os processos a ser derrubados, ainda nada<br>conclusivo, mas tomei a pratica de:<br><br>&nbsp;&nbsp;Status =~ /KRW/<br>&nbsp;&nbsp;SS &gt; 10000 (Seconds Since Last Request)<br><br>Já pensei em utilizar Acc, e eliminar a partir de determinado numero,
<br>equivalente a MaxRequests, mas nem tive tempo de avaliar isto...<br><br>Se julgar relevante esta abordagem, posso lhe enviar a parte que<br>esbocei para o parser do html gerado.<br><br>Caso não tenha o server-status ativo, segue um exemplo do resultado:
<br><br>&nbsp;&nbsp;<a href="http://httpd.apache.org/server-status">http://httpd.apache.org/server-status</a><br><br><br>Claro, que vc também deve considerar se o numero de processos<br>indicados no MaxClient &quot;cabe&quot; em memória...
<br><br><br><br>Sds,<br>Marco Antonio<br><br>2007/1/22, Cristiano Torres &lt;<a href="mailto:listas.perl@gmail.com">listas.perl@gmail.com</a>&gt;:<br>&gt; Boa tarde Lorn... omiti algumas coisas no primeiro e-mail e mesmo assim
<br>&gt; ficou grande.<br>&gt;<br>&gt; Além dos fatos que apresentei, em<br>&gt; <a href="http://mail.pm.org/pipermail/cascavel-pm/2007-January/007952.html">http://mail.pm.org/pipermail/cascavel-pm/2007-January/007952.html
</a><br>&gt;<br>&gt; Um agravante é que, devido a má gerencia de processos da aplicação o<br>&gt; &quot;Apache&quot; fica com muitos processos filhos presos<br>&gt; que não conseguem ser gerenciados pelo processo pai. Portanto as diretivas
<br>&gt; MaxSpareServer, MaxRequest,MaxClients etc<br>&gt; não tinham efeito para os processos de conexão com o banco, entao depois que<br>&gt; o modulo desenvolvido conectava com o<br>&gt; banco, o servidor web &quot;perdia&quot; controle sobre o processo ( porém continuavam
<br>&gt; no scoreboard do apache).<br>&gt;<br>&gt; Entao acontecia a situacao N processos do apache na porta 80 e N+X conexoes<br>&gt; com o banco oracle, onde X crescia a medida<br>&gt; que os processos do apache eram reciclados. Isso gerou uma situacao em que
<br>&gt; varios processos concorriam com conexoes ao<br>&gt; banco e ficavam disputando memoria e cpu timing, então para eles era normal<br>&gt; dar um &quot;top&quot; e ver o &quot;load avarage&quot; em 150,<br>&gt; coisas do tipo. Depois que vi esse estupro no servidor, escandalizei.
<br>&gt;<br>&gt;&nbsp;&nbsp;Passei para o pessoal quais as chamadas de sistema que o apache mandava<br>&gt; para o processos filhos, mostrei como ele fazia forks,<br>&gt; etc etc ( gracas a documentacao do apache e do proprio codigo), mostrei o
<br>&gt; porque estava gerando tantos locks no banco, as<br>&gt; concorrencias de conexao com o banco etc...<br>&gt;<br>&gt; Tudo bem, analisar o problema e falar para o pessoal que está errado foi a<br>&gt; parte facil, porém fiquei meio
<br>&gt; infeliz com minha incapacidade de resolver o problema por completo. Entao<br>&gt; resolvi aprofundar meus conhecimentos<br>&gt; em perl ( ou melhor, tentar desenvolver alguma coisa de qualiade) ... e acá<br>&gt; estou :)
<br>&gt;<br>&gt; E ja aprendi muito .<br>&gt;<br>&gt;<br>&gt; Desculpe a demora e a possivel falta de coerencia, faltam algumas horas de<br>&gt; sono no meu Portugues.<br>&gt;<br>&gt; Obrigado.<br>&gt;<br>&gt;<br>&gt; Em 21/01/07, Lorn &lt;
<a href="mailto:lorn.br@gmail.com">lorn.br@gmail.com</a>&gt; escreveu:<br>&gt; &gt; Explique melhor seu problema para que possamos ajuda-lo :)<br>&gt; &gt;<br>&gt; &gt; On 1/20/07, Cristiano Torres &lt; <a href="mailto:listas.perl@gmail.com">
listas.perl@gmail.com</a>&gt; wrote:<br>&gt; &gt;<br>&gt; &gt;<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; Caros mestres, bom dia.<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; Uma breve introdução desse humilde aprendiz, e claro uma solicitação de
<br>&gt; ajuda ou referência.<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; Onde trabalho sou um dos responsáveis pela área de TI e configuração de<br>&gt; servidores WEB. Basicamente configuro e<br>&gt; &gt; &gt; monitoro servicos WEB para que a aplicacao desenvolvida pela empresa
<br>&gt; rode sem problemas. Porém recentemente<br>&gt; &gt; &gt; começaram a desenvolver um modulo para apache ( desenvolveram em Kylix<br>&gt; para versao 1.3.37 do Apache) que<br>&gt; &gt; &gt; recebe as conexoes via http, processa a requisicao, abre conexao com
<br>&gt; oracle e retorna o resultado para o cliente.<br>&gt; &gt; &gt;<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; O que acontece é que esse modulo esta abrindo mais conexoes com o banco<br>&gt; do que devia, e os malditos<br>&gt; &gt; &gt; desenvolvedores em delphi disseram que a culpa é do servico web.
<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; Já mostrei para o pessoal que o apache só gerencia as requisicoes com a<br>&gt; porta na qual o processo &quot;escuta&quot; (80),<br>&gt; &gt; &gt; e que as outras conexoes deveriam ser gerenciadas pelo modulo/driver que
<br>&gt; eles utilizam. Fiz isso usando<br>&gt; &gt; &gt; um modulo do CPAN &quot;Apache::Scoreboard&quot; (entao tive uma breve nocao do<br>&gt; poder do perl)<br>&gt; &gt; Bom, podem ficar tranquilos que não vim pedir ajuda em kylix ou em delphi,
<br>&gt; meu intuito é elaborar um programa<br>&gt; &gt; &gt;<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; que faça o seguinte, pegue o PID do processo do apache, se esse PID não<br>&gt; tiver simultaneamente conexoes abertas<br>&gt; &gt; &gt; na porta 80 e 1521 (porta do banco), que gere uma lista.
<br>&gt; &gt; &gt;<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; Nao pretendo corrigir a falha do modulo do desenvolvimento, queria<br>&gt; aprender como linguagens de<br>&gt; &gt; &gt; programacao mais apropriadas lidam com isso, por isso peço uma
<br>&gt; referencia. Acho que<br>&gt; &gt; &gt; para corrigir isso o ideal seria que trocassem o pessoal do<br>&gt; desenvolvimento<br>&gt; &gt; &gt;<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; Comprei o Learning Perl, mas ainda estou apanhando um pouco.
<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; Se alguem poder dar uam dica para esse pequeno gafanhoto, agradeço.<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; E desculpem pelo tamanho do e-mail<br>&gt; &gt; &gt;<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; Cristiano Torres
<br>&gt; &gt; &gt; _______________________________________________<br>&gt; &gt; &gt; Cascavel-pm mailing list<br>&gt; &gt; &gt; <a href="mailto:Cascavel-pm@pm.org">Cascavel-pm@pm.org</a><br>&gt; &gt; &gt; <a href="http://mail.pm.org/mailman/listinfo/cascavel-pm">
http://mail.pm.org/mailman/listinfo/cascavel-pm</a><br>&gt; &gt; &gt;<br>&gt; &gt; &gt;<br>&gt; &gt;<br>&gt; &gt;<br>&gt; &gt;<br>&gt; &gt; --<br>&gt; &gt; Lindolfo &quot;Lorn&quot; Rodrigues<br>&gt; &gt; - <a href="http://www.slackwarezine.com.br">
www.slackwarezine.com.br</a><br>&gt; &gt; - <a href="http://lornlab.org">http://lornlab.org</a><br>&gt; &gt; - <a href="http://sao-paulo.pm.org">http://sao-paulo.pm.org</a><br>&gt; &gt; use Catalyst;<br>&gt; &gt; _______________________________________________
<br>&gt; &gt; Cascavel-pm mailing list<br>&gt; &gt; <a href="mailto:Cascavel-pm@pm.org">Cascavel-pm@pm.org</a><br>&gt; &gt; <a href="http://mail.pm.org/mailman/listinfo/cascavel-pm">http://mail.pm.org/mailman/listinfo/cascavel-pm
</a><br>&gt; &gt;<br>&gt; &gt;<br>&gt;<br>&gt;<br>&gt; _______________________________________________<br>&gt; Cascavel-pm mailing list<br>&gt; <a href="mailto:Cascavel-pm@pm.org">Cascavel-pm@pm.org</a><br>&gt; <a href="http://mail.pm.org/mailman/listinfo/cascavel-pm">
http://mail.pm.org/mailman/listinfo/cascavel-pm</a><br>&gt;<br>&gt;<br>_______________________________________________<br>Cascavel-pm mailing list<br><a href="mailto:Cascavel-pm@pm.org">Cascavel-pm@pm.org</a><br><a href="http://mail.pm.org/mailman/listinfo/cascavel-pm">
http://mail.pm.org/mailman/listinfo/cascavel-pm</a><br></blockquote></div><br>