Mostrando postagens com marcador gitweb. Mostrar todas as postagens
Mostrando postagens com marcador gitweb. Mostrar todas as postagens

quarta-feira, 2 de abril de 2014

Benchmark: Migrando do gitweb para cgit no Raspberry Pi

A muito tempo venho rodando git+webgit em um Raspberry Pi como servidor, inclusive publiquei aqui mesmo como melhorar o horrível desempenho do webgit no Raspberry Pi rodando ele com fastcgi: Raspberry Pi entrando em colapso com gitweb via lighttpd+mod_cgi. Então finalmente migrei para o cgit, a instalação é bem simples, lembrando que o cgit precisa de uma versão alterada do git, que pode ser instalada facilmente também.

Caso não tenha o lighttpd instalado, instale com:
sudo apt-get install lighttpd

Iremos baixar e descompactar a última versão do cgit:
wget http://git.zx2c4.com/cgit/snapshot/cgit-0.10.1.tar.xz
tar -xf  cgit-0.10.1.tar.xz

Entre no diretório:
cd cgit-0.10.1

E rodaremos o seguinte comando para baixar a versão apropriada do git:
make get-git

Iremos compilar tudo e instalar com:
make
sudo make install

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.