quarta-feira, 30 de outubro de 2013

Benchmark: Raspberry Pi como cache dns

Esta é mais uma série de muitas que vão envolver testes de desempenho e agora é a vez do cache de dns.

Já faz um tempo que estou querendo usar um Raspberry Pi como cache de dns na rede local. Mas afinal quantas requisições por segundo vindas do cache ele consegue entregar? Irei usar 3 softwares de dns, o vovô bind, dnsmasq e o relativamente "novo" unbound. Vamos nos focar no desempenho do cache em sí, mas inevitavelmente existem diversas variáveis que influenciam os testes, como alguns domínios não existentes sendo requisitados novamente, tempo de resposta variável do servidor como forward ( do ISP ), recriar um cenário real é relativamente difícil e a cada execução do mesmo teste os resultados encontram variações. Iremos produzir testes básicos para ter ao menos uma noção de como a banda toca.

Os servidores foram configurados com forward para o dns do meu ISP, os testes iniciais foram feitos com 5000 requisições usando repetidamente 100 domínios variados A,AAAA,MX,PTR, antes de cada teste foi feito o carregamento do cache.

O software utilizado para o benchmark é o dnsperf.

As versões dos respectivos softwares são as seguintes:

BIND 9.8.4
Dnsmasq 2.62
Unbound 1.4.17
Dnsperf 2.0

O Raspberry Pi é a versão B de 256MB rodando Raspbian.

Observação: o máximo de uso do Dnsmasq na maioria dos testes não passou de 30% mesmo após alguns tweaks.

Vamos aos resultados, clique para ampliar:


Requisições por segundo
Requisições por segundo

terça-feira, 29 de outubro de 2013

Câmera IR(infrared) já está disponível para venda

A nova câmera oficial do Raspberry Pi já está disponível e que como foi dito anteriormente, essa é basicamente a mesma já vendida porém sem o filtro de IR(infrared).


Câmera sem filtro IR.

Você já pode encontrá-la nos seguintes locais:
Adafruit
Farnell
RS Components

Referência:
http://www.raspberrypi.org/archives/5128

segunda-feira, 28 de outubro de 2013

Case de gift card em forma de playstation 3

Garimpando por aí, encontrei um post já antigo mas que não perdeu o fator cool. Transformaram um case de gift cards(da Gamestop) baseado no playstation 3 em um case de Raspberry Pi!


case ps3 aberto
case de ps3 com raspberry pi fechado
playstation 3 ao lado do case
Playstation 3 ao lado do case





Infelizmente tal case encontra-se sem estoque na Gamestop, mas isso me atiçou a idéia de usar uma carcaça de tamanho real como essa do slim e adicionar outras coisas como HD,unidade de dvd, etc.

Atualmente estou planejando fazer algo que envolve vidro, talvez parecido com o já visto case de acrílico, mas se possível algo mais original.

Vidro fumê

Assim como case modding de PC, se aventurar a construir um case geralmente é trabalhoso, por isso tenha uma boa dose de paciência e cuidado.


Fonte: Bit Drifiting

sábado, 26 de outubro de 2013

Tela gigante led é a maior ligada à um Raspberry Pi

Divertindo-se com seu Raspberry Pi ligado na sua TV de 42"? Pois ela é minúscula perto do display usado no projeto em qual David Whale fez parte.

Ele foi contactado via email por Rob do Greenpower, esta que, é uma organização situada no Reino Unido que desenvolve, produz e promove corridas de pequenos carros elétricos. O projeto envolve centenas de escolas e outras organizações, e muitos dos carros construídos também fazem uso do Raspberry Pi.

O Raspberry Pi foi ligado a uma tela de 12,8 x 7,2 metros modelo ICONIC 100, que fica ao lado da pista em que a corrida seria realizada. Com o objetivo de mostrar informações sobre a corrida como posição dos pilotos, voltas, etc., David tinha duas semanas para preparar tudo, programar e tornar o sistema automatizado de forma que operasse sozinho.


display led
Raspberry Pi conectado ao display




Foi usado python e pygame, os códigos podem ser obtidos no seguinte link: RaceDisplayCode.zip



Referências:

http://www.raspberrypi.org/archives/5100
http://blog.whaleygeek.co.uk/building-the-worlds-biggest-raspberry-pi-display/

quinta-feira, 24 de outubro de 2013

Construindo um case stack de acrílico para o Raspberry Pi

Para construir o case stack de acrílico usado em nosso servidor, você precisará de:

- parafuso longo( eu utilizei de 0,5mm, mas não é regra )
- acrílico
- 8 porcas para o parafuso
- bastão de cola quente(do mais fino)
- antena de tv velha

O maior problema é cortar o acrílico, eu cortei riscando e destacando assim como se corta vidro, só que sem as ferramentas apropriadas para isso(usei um estilete comum). Fazer com que as plaquinhas saiam mais ou menos certas é de certo complicado para quem não lida com isso, fora o perigo de se cortar, por isso se não está confiante leve a alguém que corte por você ou use outro tipo de material. A questão de furar também é delicada, pois usei uma furadeira de bancada para que os furos não ficassem tortos e dificultassem a passagem do parafuso.

acrílico quebrado
Erros na hora de cortar o acrílico

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.


segunda-feira, 21 de outubro de 2013

Raspberry Pi terá câmera oficial sem filtro IR(infrared)

A camera oficial do Raspberry Pi contém um filtro de IR(infravermelho), que bloqueia a luz infravermelha, de modo que se torna inútil para quem pretendia usar a câmera no escuro.

raspberry pi camera
Camera oficial do Raspberry Pi

Em maio no Reading Hackspace, Gary Fletcher removeu manualmente o filtro IR da câmera oficial do Raspberry Pi de modo que pretende usá-la para monitorar um aquário, os videos da remoção podem ser vistos no seguinte link http://www.raspberrypi.org/archives/4088 .


E se você pensava em algo parecido, o melhor a se fazer é esperar, pois além da possibilidade de danificar a câmera(Eles danificaram uma na primeira tentativa), a fundação do Raspberry Pi anunciou que teremos uma versão idêntica a comum mas sem o filtro de IR. Após diálogos com o fabricante da câmera(Sunny) os convenceram e haverá uma linha separada para a fabricação das unidades sem o filtro, e elas terão cor diferenciada.

Raspberry Pi Camera IR
Nova camera sem filtro IR
O valor oficial pretendido deverá ser o mesmo já praticado na versão normal: 25 doláres.

Referências:
http://www.raspberrypi.org/archives/5089
http://www.raspberrypi.org/archives/5093


sábado, 19 de outubro de 2013

Raspberry Pi como servidor 24x7

Como devem ter notado, muito do que iremos falar por aqui é relacionado à experiência que estamos tendo em usar um Raspberry Pi como servidor ininterrupto, inclusive os problemas que surgiram pelo fato de ser um hardware de baixo desempenho. A idéia de se usar o Raspberry Pi como servidor por aqui veio principalmente pelo baixo consumo.

Inicialmente nosso servidor usava um simples case feito de lego.

Raspberry Pi lego server

Raspberry Pi Lego Server 2


Agora nosso server está montado sobre um case stack de acrílico que, futuramente, poderá acomodar mais placas.

Raspberry Pi Stack Server

Ele dispõe de um sistema de UPS/Nobreak que o mantém ligado por cerca de 6 horas em iddle caso haja queda de energia, algo que demonstrarei como foi construído em outro post.
Apesar de já ter atingido uptimes de 70 dias, hoje está com uptime de:
17:51:20 up 24 days, 11:34,  1 user,  load average: 0,37, 0,12, 0,08

Isso se deve ao fato de updates e outros fatores, mas podemos dizer que está rodando de forma estável em todos esses meses e nos servindo muito bem.

Como fonte usamos uma de PSP 5v 2A e contém um display LCD TFT de 3.5" que já foi demonstrado em um post anteriormente, mas que infelizmente é ligado via RCA.

O cartão é um microsd de 2GB com adaptador. (update: trocamos para um microsd de 8GB)








Arduino Intruso(rsrs)


 LCD 3.5"




 Raspberry Pi

 Circuito UPS

 Bateria




Rodamos ircd+ssl, lighttpd+gitweb, git, ssh, etc.

Apesar do Raspberry Pi não ter sido desenvolvido com esse foco, ele tem se mostrado um ótimo hardware para um servidor básico de baixo desempenho.

Atualização: Problemas com cartão MicroSD.

quarta-feira, 16 de outubro de 2013

Conky no tty1 em background via ssh

Como nosso raspserver não utiliza teclado, tudo é feito via ssh, a segunda foto da tela de lcd do post anterior está rodando o já conhecido conky só que em modo texto, usamos como base a configuração conky_no_x11.conf que já vem com o mesmo e a modificamos:




E executamos usando o conky da seguinte maneira:

conky > /dev/tty1


LCD com RCA vs Raspberry PI

A fim de monitorar nosso raspserver visualmente além do ssh, adquiri tempos atrás um pequeno lcd, e na hora da escolha decidi por comprar algo prático e barato, o SKU: 201631 vindo da DealExtreme, custando US$ 23,10  está certo que não é de se esperar muita coisa, mas que serviu para nosso objetivo inicial.



Logo de cara vimos que a imagem não se ajustaria naturalmente, sendo preciso o ajuste via config.txt, consegui resultados bons para esse modelo com o seguinte:

overscan_left=-16
overscan_right=-16
overscan_top=-24
overscan_bottom=-20
framebuffer_width=320
framebuffer_height=240
sdtv_aspect=2



Uma questão a se verificar era que a alimentação do lcd difere da tensão usada pelo raspberry pi, sendo assim necessitando de uma segunda fonte(de 12v). Outra observação levantada pelo nosso amigo telec, é o fato de que as conexões de energia como a desse lcd nem sempre são padrões com a das fontes na questão de polaridade, portanto mesmo que tenha uma fonte em casa que encaixe perfeitamente no conector, pode ser que ele não venha a ligar caso tenha a polaridade invertida.

Assim como o rpi, questões de potência consumida também devem ser vistas com cuidado, no nosso caso as especificações marcavam <=1.1W, ou seja, sua fonte de 12v deverá suprir no mínimo 92mA , mas leve em conta 100mA para mais para se ter uma folga, usamos uma fonte antiga de telefone sem fio.

Para nosso objetivo um lcd simples com RCA foi suficiente, uma solução que muitos já praticam é o uso de lcds via gpio, mas se espera qualidade terá que abrir mais o bolso tanto para melhores resoluções como para se ter conexão hdmi.

Update: em caso de terminal, para que o mesmo não desapareça depois de um tempo use e se preciso coloque no boot:  setterm -term linux -blank 0 > /dev/tty1

terça-feira, 15 de outubro de 2013

O que é Raspberry Pi ?

Raspberry Pi é uma pequena placa que nada mais é do que um computador que tem vários dos seus componentes em uma única placa.

Versão feita para ser vendida na china
Versão feita para ser vendida na china

Seu chip principal, um SoC(System on a chip) é composto de um processador ARM de 700 MHz e uma GPU Broadcom VideoCore IV.

São duas as versões existentes, model A e B, o modelo B, o mais comum, vem com 512MB de memória sendo esses compartilhados também com a GPU.

A placa contem um conector RCA que pode ser ligado a sua tv antiga, assim como um conector HDMI para as novas.

Para a rede temos uma porta simples RJ45 10/100 e também duas portas usb que você pode ligar um mouse e teclado.

O armazenamento é feito via cartão SD e é preciso instalar uma distribuição Linux ou algum outro sistema compatível(Windows não é compatível).

Como áudio temos uma simples saída comum p2.

Se está interessado em comprar um, antes leia as dicas em meu post: Raspberry Pi Brasil .

Lembre-se que será preciso comprar também um cartão sd e uma fonte caso não tenha, a fonte usada é do mesmo conector microusb de carregadores de celulares ( que também podem ser usados geralmente ).

Leia também antes de comprar o cartão sd: MicroSD falso em 5 gramas de frustração.

Curta e siga nossa página no facebook ou twitter:
https://www.facebook.com/rpibrasil
https://twitter.com/everpi_br