Melhorando a performance do Firefox “aspirando” o sqlite

Faz uns dias que deixei marcado um artigo para ler e finalmente o li. Era sobre como melhorar a performance do Firefox fazendo um “Vacuum” no sqlite.

Segundo o post, a partir da versão 3, o Firefox guarda os favoritos, histórico e mais um punhado de coisas em sqlite. Por isso, manter essa base otimizada pode ser muito saudável ao seu Firefox.

E o processo é muito simples. No Ubuntu (testei no 9.04), instale o sqlite3. Abra o terminal e digite:

sudo aptitude install sqlite3

Depois, ainda no terminal, acesse a pasta de seu perfil (profile) do Firefox:

cd ~/.mozilla/firefox/alguma_coisa_estranha.default

Varia de acordo com o computador. No meu, esse alguma_coisa_estranha.default é 73cm0ffy.default.

Você vai ver que essa pasta possui vários arquivos com a extensão .sqlite, que é o que queremos otimizar. Para isso, feche o Firefox (não antes de terminar de ler esse post ou copiá-lo :P ), depois simplesmente digite, para cada arquivo:

sqlite3 nome_do_arquivo.sqlite vacuum

Tem como fazer em todos os arquivos de uma vez? Claro. Você está mexendo em um terminal Linux! Para fazer todos de uma vez, digite:

for i in *.sqlite; do sqlite3 $i vacuum; done

Não sei dizer qual a diferença de performance que isso proporciona, mas o que puder fazer pra melhorar acho que vale a pena.

Créditos a Andre Noel.

Instalação do Kernel 2.6.30-DiamondMax4

Inicialmente, faça uma rápida leitura deste link do Guia do Hardware.

1. Realize o download das bibliotecas de compilação:

sudo apt-get install build-essential bin86 kernel-package libqt3-headers libqt3-mt-dev wget libncurses5 libncurses5-dev

2. Faça o download do Kernel 2.6.30 e do 2.6.30-DiamondMax4:

Kernel 2.6.30.tar.bz2

2.6.30-DiamondMax4

Download Alternativo: 2.6.30-DiamondMax4

DiamondMax anterior: 2.6.28.9-DiamondMax3

Devido a alguns problemas no servidor em que mantenho o DiamondMax, resolvi colocar mais um link para evitar futuros problemas.

3. Salve o kernel 2.6.30 e o 2.6.30-DiamondMax4 em sua pasta pessoal, abra um terminal e verifique a integridade dos arquivos:

$ md5sum linux-2.6.30.tar.bz2

Verique se o valor gerado é idêntico a este valor:

7a80058a6382e5108cdb5554d1609615

$ md5sum 2.6.30-diamondmax4.tar.bz2

Verique se o valor gerado é idêntico a este valor:

f7ac4e88e0d6a15b89a1e874d5adb661

4. Torne-se root:

$ sudo su

5. Descompactar e renomear a pasta

# tar -xvf linux-2.6.30.tar.bz2

# mv linux-2.6.30 linux-2.6.30-diamondmax4

6. Copiar o 2.6.30-DiamondMax4 para dentro da pasta linux-2.6.30-diamondmax4 e movê-la para /usr/src/

# cp 2.6.30-diamondmax4.tar.bz2 /home/~/linux-2.6.30-diamondmax4/

Observação: substitua o “~” pelo nome da sua pasta pessoal.

# mv linux-2.6.30-diamondmax4 /usr/src/ && cd /usr/src/linux-2.6.30-diamondmax4/

7. Descompactar e instalar o 2.6.30-DiamondMax4.

# tar -xvf 2.6.30-diamondmax4.tar.bz2

# patch -p1 < /usr/src/linux-2.6.30-diamondmax4/2.6.30-diamondmax4.patch

8. Criação do link simbólico

# cd ..  && rm -rf linux && ln -s /usr/src/linux-2.6.30-diamondmax4 linux && cd /usr/src/linux

# chmod -R a-s /usr/src/ ( use este comando apenas se você usa alguma distribuição baseada no debian )

9. Caso queira habilitar/desabilitar opções no kernel, digite:

# make xconfig

# make menuconfig

(É opcional. Oferece as mesmas opções do make xconfig, mas numa interface de modo texto)

Observações: Para se informar com maiores detalhes, acesse o Guia do Hardware ou o Vivaolinux. Veja as opções abaixo para obter um melhor desempenho:

Compcache

Para ativá-lo, clique aqui.

Fast boot support

Reduz o tempo de boot inicializando os processos de forma assíncrona.

General setup
[*]Fast boot support

Obs.: o compcache e o fast boot suport ainda não estão disponíveis na versão 2.6.30.

Arquitetura do processador

Antes de compilar, acesse:

Processor type and features >  Processor family

Especifique a arquitetura do seu processador para melhorar o desempenho.

Suporte a mais de 1 GB de memória RAM

Observação: A desvantagem de ativar o suporte a 4 GB é que o sistema ficará um pouco mais lento em micros com menos de 1 GB de memória (justamente por isso existe a primeira opção). Para mais informações, acesse o link do Guia do Hardware.

Para acessar a opção:

Processor type and features> High Memory Support

CFLAGS

Faz com que o GCC, enquanto compila o kernel, use as melhores CFLAGS para o seu processador o que otimiza o sistema. As CFLAGS são bastante usadas em distribuições como o gentoo. Para ativá-la:

Processor type and features
[*]Use -march=native cflag

Use esta opção apenas se seu sistema usa a versão do GCC igual ou superior a 4.2.0. Use o comando para saber a versão do gcc:

$ gcc -v

Timer Frequency

O Timer Frequency especifica o valor adequado para respostas mais rápidas dos programas, por isso, é interessante configurá-lo de acordo com o seu processador.Vá em:

Processor type and features >  Timer frequency

Processador Quad-core:
Configure para 216 HZ.

Processador Dual Core:
Configure para 432 HZ.

Para os demais processadores há duas opções, uma é a mais utilizada, 1000 HZ. A outra é a 864 HZ que é a melhor opção para desktop, porém pode quebrar alguns drives. Por isso, é recomendável escolher 1000 HZ.

Iniciar compilação

# make-kpkg clean

# INSTALL_MOD_STRIP=1 make-kpkg –initrd –revision=i686 kernel_image kernel_headers kernel_source

Observação: antes de initrd e revision devem ser colocados dois traços ( ) e não apenas um. Por questões de formatação, o wordpress coloca apenas um traço.

Se você possui um processador Dual Core ou Quad Core, use o comando abaixo para reduzir o tempo de compilação:

# INSTALL_MOD_STRIP=1 CONCURRENCY_LEVEL=2 make-kpkg –initrd –revision=i686 kernel_image kernel_headers kernel_source

Serão gerados 3 arquivos .deb na pasta /usr/src/, instale-os:

# cd /usr/src/

# dpkg -i linux*2.6.30-diamondmax4*.deb

Faça um backup dos arquivos.

Caso haja algum problema em instalar os arquivos .deb, reinicie o sistema usando o kernel padrão do sistema e desinstale o kernel DiamondMax antigo e, depois, instale os arquivos .deb.

10. Reinicie o sistema.

7a80058a6382e5108cdb5554d1609615

Sobre o Kernel DiamondMax

O DiamondMax é um kernel mais atualizado do que o da sua distribuição que deixa o sistema mais otimizado, tunado e rápido oferecendo suporte atualizado aos mais novos hardwares, correções de segurança, otimizações, novas configurações etc que não estão no kernel vanilla, tais como:

Compcache

O Compcache utiliza parte da memória RAM para fazer a swap compactando e armazenando os dados, logo podem caber mais dados nesta swap. Desse modo, o sistema fica muito mais rápido já que dispensa o HD e economiza energia sobretudo nos laptop  uma vez que evita a intensa utilização do HD. Quando a memória virtual na RAM for totalmente preenchida, o sistema passa a utilizar a memória virtual do HD. Isso é muito útil para quem gosta de jogos.

Patchs do Zen

As otimizações proporcionadas pelo Zen são bastante conhecidas entre os usuários do Gentoo trazendo, dentre outras, novas configurações como o Zen Tune para tunar o sistema com a possibilidade de aumentar a prioridades do Xorg melhorando o poder desse aplicativo e a opção march=native que faz o GGC checar as características da CPU para utilizar as melhores  CFLAGS para o seu computador.

Ext3 Barrier

O ext3 barrier dá mais segurança a partição ext3 evitando corrupção de dados e protege o sistema de arquivos durante uma falta de fornecimento de energia. Esta opção não está habilitada por padrão em quase todas as populares distribuições Linux, e a maioria das distribuições, portanto, estão em risco.

Layer7

É responsável por realizar o bloqueio de programas direto na camada de aplicação sem a necessidade de bloqueio por portas. O Layer7 bloqueia também P2P, MSN e outros programas.

TuxOnIce

O TuxOnIce salva o conteúdo da memória para o disco quando o computador for desligado. Quando o computador for iniciado novamente, ele recarrega o conteúdo e o usuário pode continuar de onde parou. Nenhum documento precisa ser recarregado ou aplicações reabertas tornando o processo muito mais rápido que um desligamento normal ou uma inicialização do sistema. O vídeo abaixo mostra o tuxonice em ação.

Outros patchs

Além dos supracitados, há a inclusão de um novo agendador chamado BFQ ( Budget Fair Queueing ), otimizações para processadores x86 e x86_64, sistemas de arquivos com suporte ao reiser4 e melhorias no ext4, gerenciador de memória, powernow e melhorias para placas wireless.

Esta obra pode ser copiada, distribuída, exibida, executada e modificada por qualquer pessoa segundo a licença Creative Commons. O vídeo abaixo aborda mais sobre esta licença.

Agradecimentos à comunidade Linux!

Ativação do Compcache

Antes de compilar, certifique-se de que o compcache está habilitado nas opções do kernel:

Device Drivers
[*] Block devices
<M> Compressed RAM based swap device

Nas distribuições baseada no debian como o Ubuntu, digite num terminal:

sudo gedit /etc/init.d/bootmisc.sh

Adicione ao final do arquivo:

modprobe compcache disksize_kb=5120

Isso fará com que o Compcache seja carregado durante o boot. O comando “disksize_kb=5120” é para especificar o tamanho máximo da memória virtual que será alocada na memória RAM. Altere o valor “5120” (que corresponde a aproximadamente 5120 MB) para um valor de sua escolha. Vale ressaltar que não é necessário aumentar muito o tamanho da memória virtual. Use o computador normalmente e observe qual o tamanho máximo de memória virtual que você utiliza.

Salve e depois digite:

sudo gedit /etc/rc.local

Adicione a seguinte linha antes de “exit 0“:

swapon /dev/ramzswap0 -p 1

Isso ativará a swap criada na RAM.

Reinicie o sistema.

Verifique se a ramzswap está ativada:

cat /proc/swaps

Filename                Type        Size    Used    Priority
/dev/sda5             partition       570268       0        -1
/dev/ramzswap0 partition         5116        0         1

Agora quando o sistema começar a usar a swap, o compcache irá comprimir e armazenar os dados na própria RAM! Observe que a ramzswap0 tem o nível de prioridade maior do que a swap do HD. Isso significa que a primeira memória virtual utilizada será a da RAM e assim que ela estiver totalmente preenchida, o sistema passará a utilizar a memória virtual do HD.

Para mais informações, acesse o site do compcache.

Compilando programas facilmente com o apt-build

Apesar de um software compilado localmente ser mais rápido e bem mais personalizável devido ao processo de compilação que “arredonda” o programa e as bibliotecas para o hardware utilizado, muita gente ainda foge da compilação devido as dificuldades em resolver problemas de dependência e outros problemas típicos como a falta de gerenciamento de pacotes, além da dificuldade natural dos iniciantes. Agora imagine uma ferramenta com a facilidade e a versatilidade que o apt-get tem para instalar programas, mas que fosse feita para compilar e gerenciar programas compilados no computador? Parece sonho, mas não é! Apresento o apt-build.

A ferramenta

O apt-build é uma ferramenta que foi me apresentada pelo meu amigo Max, da cidade de Ibiúna. O propósito da ferramenta é facilitar o processo de instalação de softwares a partir da compilação. Quando você tem o código fonte de um programa em mãos, a instalação do mesmo geralmente é feita através do processo de compilação, para isso, é necessário pegar o código fonte do programa em questão, descompactar, entrar na pasta com os arquivos descompactados e, geralmente usar os famosos comandos:

./configure && make && make install

O legal da compilação é que o GCC (O compilador de programas do mundo GNU/Linux) compila os programas adaptando-se ao hardware do seu computador, processador, memória, etc.. tornando o programa muito mais leve e otimizado do que se ele tivesse apenas sido copiado para o seu HD. Isso realmente é uma grande vantagem, tanto que em servidores, ferramentas de missão crítica como um Web Server, ou um DNS ou um servidor de arquivos ou proxy DEVEM ser compiladas, garantindo melhor performance e evitando travamentos indesejados além do alto consumo de memória. Mas, como nem tudo nesse mundo são rosas, o processo de compilação é demorado (claro) além de ser chato por que nem todas as distribuições para usuários finais trazem as libs necessárias para uma compilação sem traumas e o resultado é que sempre acabamos nos afundando internet abaixo para resolvermos problemas de dependência, versão de libs e outros problemas, o que nos faz perder um tempo bem grande para instalarmos o programa.

Por causa desses inconvenientes, cada distribuição bola a sua forma de gerenciar pacotes e programas, sem a necessidade de compilação e com passos simples para o usuário. O Debian e seus derivados, por exemplo contam com o poderoso apt-get, uma ferramenta de instalação tão simples e tão estável que até mesmo o mais perdidos de todos os usuários consegue usá-lo através das suas várias interfaces gráficas.

O propósito do apt-buid é compilar programas a partir do código fonte, porém com a mesma facilidade que o apt-get faz para instalar e gerenciar programas. Quando executado, o apt-build checa pelo programa e levanta todas as dependências que esse aplicativo vai precisar. Então ele baixa tudo, compila as dependências, compila o programa solicitado, limpa o lixo que por ventura sobrar e, com tudo compiladinho, ele cria os arquivos .deb, joga tudo no diretório de pacotes do computador e instala pelo dpkg, fazendo então uma instalação simples e controlada de pacotes, mas que foram compilados para o seu nível de hardware. Tudo muito simples e fácil, com todas as vantagens do apt-get.

Instalando o apt-build

Para instalar o apt-buid, basta usar o bom e velho apt-get com o comando:

apt-get install apt-build

Após instalado, algumas perguntas serão feitas. Primeiro, ele vai instalar o courier e vai pedir informações sobre e-mail para enviar mensagens ao administrador em alguns momentos. Nessa fase, você pode responder tudo bonitinho ou aceitar o padrão para tudo, não é obrigatório que esse passo funcione certinho.

Depois de mais alguns pacotinhos configurados então vem a vez do apt-build para valer. Na primeira tela da configuração, ele vai simplesmente perguntar onde os pacotes baixados devem ficar armazenados, você pode escolher o padrão: /var/cache/apt-build/build.

A pergunta seguinte é onde os pacotes vão ficar guardados depois que eles forem compilados. Também pode-se escolher o padrão: /var/cache/apt-build/repository.

O passo seguinte é um dos mais interessantes. Ele vai perguntar qual é o nível de otimização da compilação. Existem 3 níveis: O baixo, onde a compilação é rápida, porém mais genérica, quer dizer, o programa compilado tende a ficar mais lento. O Médio onde a compilação é mais específica, mais demorada, mas o programa instalado roda bem mais limpo e o Forte, onde o tempo de compilação é bem maior mas o programa roda muito leve e muito rápido, esse nível é tão extremo que em alguns casos a compilação pode encontrar problemas. Eu estou usando o nível médio em meu computador.



O passo seguinte configura o apt-get para instalar os pacotes criados pelo apt-build, basta aceitar a opção padrão que é Sim e seguir para o passo seguinte. Caso você tenha alguma opçao que queira colocar no GCC, pode-se colocar nesse passo. Caso voce não tenha nada a ser acrescentado (o padrão de quase todo mundo) basta seguir em frente sem colocar nada. De ok e siga para passo seguinte onde a mesma pergunta será feita, mas dessa vez para o make. Basta seguir em frente do mesmo jeito e ir para o próximo passo.

O passo seguinte também exige muita atenção por que ele vai perguntar qual é o seu tipo de processador. É importante que essa pergunta seja muito bem respondida por que a compilação vai ser voltada para se encaixar ao processador escolhido aí. Logo, se um processador diferente do seu computador for escolhido, você poderá ter problemas no futuro ao executar os seus programas instalados.



Depois disso, seu programa estará instalado! Agora é só usar.

Usando

Antes de sair por aí instalando tudo, certifique-se que o seu apt está configurado para baixar códigos fontes, basta ir até o arquivo /etc/apt/sources.list e adicionar um repositório com o tipo definido para deb-src, conforme o exemplo abaixo:

/etc/apt/sources.list

# Lenny futura versão estável do debian, já a ponto de atualização.
deb http://ftp.br.debian.org/debian lenny main contrib non-free
deb http://www.debian-multimedia.org lenny main
# Repositório oficial do debian lenny para baixar códigos fontes.
deb-src http://ftp.br.debian.org/debian lenny main contrib non-free
Após arrumar o seu sources.list não se esqueça do famoso:
apt-get update

Para usar o apt-build, basta rodá-lo de um terminal para instalar o programa que você quiser, como se fosse um apt-get:

apt-build install programa

Ele faz o resto. Tudo simples fácil, e compilado! Todos as demais funções do programa funcionam muito igual ao apt-get, portanto, não vai haver confusões (eu espero!!), seguem aqui algumas, mais simples:

apt-build install –reinstall programa

Reinstala um programa já instalado.

apt-build upgrade

Faz upgrade de todos os pacotes instalados.

apt-build world

Recompila todo o seu sistema (demooooooora)

apt-build source programa

Baixa o código fonte e descompacta, mas não compila nem instala.

apt-build remove programa

Desinstala o programa selecionado

apt-build clean-build

Apaga os pacotes compilados (útil para ganhar espaço no HD)

apt-build clean-sources

Apaga os pacotes fontes (útil para ganhar espaço no HD também) Todos as opções podem ser vistas com um man apt-build. Simples e fácil.

Conclusões

O apt-build é um excelente programa que além de facilitar o processo de compilação, deixa o seu sistema limpo e sem “programas perdidos” oriundos de compilações. Tudo roda com ótima performance, sem termos que nos preocupar com instalações de libs e dependências e o gerenciador de pacotes do Debian continua controlando o sistema tornando-o além de seguro e rápido, confiável. Sem dúvida, ferramenta indispesável para quem procura performance e estabilidade sem perder tempo ou conforto. Até a próxima!

Por David Dias: http://professordavid.pro.br/

Melhorando a conexão à internet

13-internet_rapida

Tornar a velocidade de conexão mais rápida é o desejo de qualquer um que tem acesso à internet. Isso é possível alterando algumas configurações do sistema Linux, porém não tornará a sua conexão tão rápida quanto um carro de F1 ;), mas vai dar uma melhorada.

Usuários do GNOME:

sudo gedit /etc/modprobe.d/aliases

Usuários do KDE:

sudo kate /etc/modprobe.d/aliases

Deixe-a exatamente como foi alterado nas linhas em negrito abaixo:

# network protocols
alias net-pf-1 unix
alias net-pf-2 ipv4
alias net-pf-3 ax25
alias net-pf-4 ipx
alias net-pf-5 appletalk
alias net-pf-6 netrom
alias net-pf-7 bridge
alias net-pf-8 atm
alias net-pf-9 x25
alias net-pf-10 ipv6 off
alias net-pf-10 off
alias ipv6 off
#alias net-pf-10 ipv6
alias net-pf-11 rose
alias net-pf-12 decnet
# 13 NETBEUI
alias net-pf-15 af_key
alias net-pf-16 af_netlink
alias net-pf-17 af_packet

Agora é só reiniciar o sistema.

Otimização da estrutura de diretório

Esta dica otimiza a estrutura de diretório tornando mais rápido encontrar e procurar arquivos. Primeiro você precisa saber as unidades do sistema que pretende otimizar, para isso digite num terminal:

df -h

Exemplo:

/dev/sda3 11G  7,3G  2,8G  73% /
/dev/sda4 25G   19G  4,3G  82% /home
/dev/sda5 14G  5,1G  61% /media/disk

Com a lista das unidades a serem montadas, utilize o LiveCD do Ubuntu para otimizar as unidades uma vez que esta otimização deve ser feita com as unidades desmontadas. Abra o terminal e digite:

sudo -s

e2fsck -fD /dev/sda3

Escolha Y para otimizar a unidade e faça o mesmo com as outras unidades. Agora reinicie o sistema.

Swiftfox: Um Firefox otimizado

swiftfox_logo

O swiftfox é um Firefox otimizado para cada tipo de processador, seja Intel ou AMD, com flags para cada família de CPU, tornando-o muito mais rápido do que o Firefox e plenamente compatível com seus plugins, extensões, favoritos etc. Notei que o swiftfox tem um consumo um pouco menor de memória do que o Firefox além de trazer um ganho de performance que é mais visível em computadores antigos.

Usuários do Debian ou distribuições derivadas como o Ubuntu, podem baixar o swiftfox por meio do link:

http://www.getswiftfox.com/deb.htm

Caso não saiba qual é o seu processador, digite o comando num terminal:

$ cat /proc/cpuinfo

O seu processador está indicado ao lado de model name. Alguns tipos de Duron não funcionarão com o pacote para Duron que está no site do projeto, então, é recomendado utilizar o pacote para Athlon (Thunderbird).

Se, depois de instalar o arquivo .deb, o swiftfox não funcionar, significa que você pegou uma versão não compatível com o seu processador. Outro método de instalação é adicionar no repositório da sua distro:

sudo gedit /etc/apt/sources.list

Adicione a seguinte linha:

deb http://getswiftfox.com/builds/debian unstable non-free

E instalar com o comando:

sudo apt-get install swiftfox-i686

Este último comando é o pacote de instalação do swiftfox otimizado para processadores i686, experimente, depois de digitar sudo apt-get install swiftfox, apertar duas vezes a tecla TAB para ver outras versões do swiftfox para cada processador.

O Swiftfox não modifica o Firefox, apenas seus favoritos, históricos, extensões, plugins etc são compartilhados pelos dois navegadores. O único problema é que o swiftfox está em inglês, porém é possível contornar isso baixando o pacote de idioma para o português do Brasil. No momento em que escrevo, a versão do swiftfox está na 3.0.4, então, o caminho é:

http://releases.mozilla.org/pub/mozilla.org/firefox/releases/3.0.4/linux-i686/xpi/pt-BR.xpi

Após instalar, digite na barra de endereço about:config do Swiftfox. Localize o parâmetro general.useragent.locale, clique duas vezes nele e altere o valor de en-US para pt-BR e reinicie o programa.