quarta-feira, 23 de outubro de 2013

Raspberry Pi entrando em colapso com gitweb via lighttpd+mod_cgi

Um dos principais serviços que rodamos em nosso servidor é o Git, e meses atrás quando resolvi subir o gitweb via lighttpd+mod_cgi, ao acessar a página, o servidor demorava cerca de 3 segundos para responder, o Raspberry Pi não aguentou a alta carga que era gerada a cada request para chamar o perl, o script, interpretar e responder, mas a culpa não era só dele, CGIs de modo normal já consomem recursos, e o gitweb não é lá o que podemos chamar de rápido.

Uma solução é usá-lo com o mod_fastcgi, comentando e adicionando as seguintes linhas no lighttpd.conf:




Adicionar caso precise o mod_fastcgi ao server.modules do lighttpd.conf.

E informar ao gitweb o ip/porta via FCGI_SOCKET_PATH, o script abaixo já faz todo trabalho sujo, executar lighttpd, exportar, gitweb em background, só ajuste os caminhos do seu sistema.




Após mudar para mod_fastcgi o desempenho claramente melhorou, mas ao fazer benchmarks com http_load vimos que o server poderia responder em média somente 2,4 requisições/s.



Para nosso uso, que consiste em 3 usuários no máximo o mesmo dá conta do recado, mas outras opções existem, uma delas em que estamos pensando em migrar é o cgit que é desenvolvido em C.

A título de curiosidade, o git.kernel.org utilizava um fork do gitweb com cache que o tornava bem mais rápido, entretanto no começo do ano eles mudaram para o cgit. O gitweb com cache também nos seria uma opção se não fosse o fato de estarmos lidando com um cartão SD.



Nenhum comentário:

Postar um comentário