Otimizando o seu Ubuntu

Alguns dias atrás foi divulgada uma nota a respeito de um patch milagroso de aproximadamente 200 linhas que otimizava o kernel Linux e m até 60x. Não demorou muito e um outro especialista, desta vez da Redhat, afirmou que obtinha o mesmo resultado com apenas uma alteração em um arquivo do sistema e mais alguns comandos. Passados mais alguns dias e desta vez tivemos uma adaptação das instruções para que funcione no Ubuntu.

Como  muita gente não gosta de digitar muitos comandos no terminal eu criei um simples script que executa toda aquela tarefa sem que você tenha que digitar mais do que o nome dele e depois a sua senha.

Caso você queira baixar o código completo clique neste link para pegar um arquivo compactado como “.gz”. Ao descompactá-lo você terá um arquivo chamado turbo.sh que deverá ser executado como root.

considerando que você tenha baixado e descompactado em /tmp simplesmente abra um terminal (Menu Principal > Acessórios > Terminal) e digite o seguinte comando:

sudo /tmp/turbo.sh

Após informar a sua senha, você verá três mensagens na tela e uma última informando para reiniciar o computador.

O script já se encarrega de fazer um backup dos arquivos modificados para que você possa retornar o sistema ao original, caso precise. Nos links passados você poderá ver as alterações que este script realiza no seu sistema.

No teste que fiz a diferença de performance não foi lá grandes coisas, mas se é pra melhorar então é tudo válido.

Se ao invés de baixar o arquivo, você prefere, copiar o código e colar no seu próprio arquivo com outras personalizações sinta a vontade para fazê-lo copiando abaixo.

Código do script

#!/bin/bash
#Turbina o Ubuntu com base nas instruções de http://lkml.org/lkml/2010/11/16/392
# e de http://blog.coderepository.net/2010/11/19/otimizando-o-kernel-de-seu-desktop-linux/

#Welrbraga - http://www.welrbraga.eti.br - 2010-11-21

#Instruções sed foram baseadas em: http://www.grymoire.com/Unix/Sed.html#uh-44

change_rclocal() {
echo "Adicionando linhas no rc.local"
cp /etc/rc.local /etc/rc.local.back
sed '
/exit 0/ i\
mkdir -p /dev/cgroup/cpu\
mount -t cgroup cgroup /dev/cgroup/cpu -o cpu\
mkdir -m 0777 /dev/cgroup/cpu/user\
echo "1" > /dev/cgroup/cpu/user/notify_on_release\
echo "/usr/local/sbin/cgroup_clean" > /dev/cgroup/cpu/release_agent\
\
' /etc/rc.local.back >/etc/rc.local
chmod +x /etc/rc.local
}

create_cgroupclean() {
echo "Criando arquivo cgroup_clean"
cat << EOF >/usr/local/sbin/cgroup_clean
#!/bin/sh
#Instruções para otimização do sistema - vide https://blog.welrbraga.eti.br/?p=1155
if [ "$1" != "/user" -a "$1" != "/user/" ]; then
  rmdir /dev/cgroup/cpu$1
fi
EOF
chmod +x /usr/local/sbin/cgroup_clean
}

adding_bashrc() {
echo "Incluindo instruções no bash.bashrc"
cp /etc/bash.bashrc /etc/bash.bashrc.back
cat >>/tmp/script
#Instruções para otimização do sistema - vide https://blog.welrbraga.eti.br/?p=1155
if [ "$PS1" ] ; then
mkdir -m 0700 /dev/cgroup/cpu/user/$
echo $ > /dev/cgroup/cpu/user/$/tasks
fi
EOF
cat /tmp/script /etc/bash.bashrc.back >/etc/bash.bashrc
}

if [ "${UID}" == "0" ]; then
    change_rclocal
    create_cgroupclean
    adding_bashrc
    echo "Reinicie o computador para que as modificações façam efeito"
else
    echo "Este script só pode ser executado com privilégios administrativos"
    echo "Use: sudo $0"
    echo "Ou logue no sistema como usuário root"
fi

Esteja atento entretanto que o WP modifica alguns caracteres, especialmente as aspas e sinais de > e <, e ao executar o script desta forma você terá erros.

Também não se esqueça que para o script funcionar você deverá dar permissões de execução à ele.

Um comentário em “Otimizando o seu Ubuntu”

  1. Conferi primeiro o sudo cpufreq-set -g ondemand e Utilizei seu script obrigado,

    conforme script de # FileSystem benchmark by Wagner Amaral

    #
    # 20041229
    # Tradução (pt_BR) por Hiram Castelo
    #

    Sem o patch

    Iniciando testes de Sistema de Arquivo
    ===============================================================================
    Teste 1: Criando um arquivo de 100MB
    print FILE ‘1’ x 100000000
    Tempo final: 0.688976049423218 segundos
    ===============================================================================
    Teste 2: Multiplicando o bigfile 10 vezes
    copy(‘bigfile’, ‘bigfile1-10’)
    Tempo final: 23.212965965271 segundos
    ===============================================================================
    Teste 3: Removendo todos os bigfile
    unlink
    Tempo final: 3.05551981925964 segundos
    ===============================================================================
    Teste 4: Multiplicando 10000 arquivos (4MB cada)
    copy(‘smallfile’, ‘smallfile1-10000’)
    Tempo final: 4.85949993133545 segundos
    ===============================================================================
    Teste 5: Abrindo, lendo, escrevendo e fechando cada smallfile
    open(), read, close(), open(), write & close()
    Tempo final: 4.24316692352295 segundos
    ===============================================================================
    Teste 6: Removendo todos os smallfile
    unlink
    Tempo final: 0.93433403968811 segundos
    ===============================================================================
    Todos os testes realizados com sucesso!

    Com o patch

    Iniciando testes de Sistema de Arquivo
    ===============================================================================
    Teste 1: Criando um arquivo de 100MB
    print FILE ‘1’ x 100000000
    Tempo final: 0.671223163604736 segundos
    ===============================================================================
    Teste 2: Multiplicando o bigfile 10 vezes
    copy(‘bigfile’, ‘bigfile1-10’)
    Tempo final: 20.9221098423004 segundos
    ===============================================================================
    Teste 3: Removendo todos os bigfile
    unlink
    Tempo final: 3.273362159729 segundos
    ===============================================================================
    Teste 4: Multiplicando 10000 arquivos (4MB cada)
    copy(‘smallfile’, ‘smallfile1-10000’)
    Tempo final: 3.30168700218201 segundos
    ===============================================================================
    Teste 5: Abrindo, lendo, escrevendo e fechando cada smallfile
    open(), read, close(), open(), write & close()
    Tempo final: 1.93996596336365 segundos
    ===============================================================================
    Teste 6: Removendo todos os smallfile
    unlink
    Tempo final: 0.21605396270752 segundos
    ===============================================================================
    Todos os testes realizados com sucesso!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.