(M)  s i s t e m a   o p e r a c i o n a l   m a g n u x   l i n u x ~/ · documentação · suporte · sobre

  Página seguinte Página anterior Índice

54. Mudando algumas configurações gerais do sistema

Depois de ter o Linux configurado e funcionando em meu laptop, achei ele acessando o disco rígido a cada instante, mesmo quando não havia nenhum usuário no sistema. O disco rígido nunca podia entrar no seu modo de economia de energia. Reduzindo a atividade do disco pode aumentar-se muito o tempo de funcionamento da bateria, e esta é a razão pela qual coletei as seguintes receitas.

Testei todas com o RedHat 4.1, a localização de alguns aspectos da configuração pode ser diferente para a sua distribuição ( se for assim, mande-me uma mensagem me dizendo como foi ).

54.1 O daemon crond e o atrun

Verifique se o seu arquivo /etc/crontab inicia um processo a cada minuto. Você irá frequentemente achar atrun lá.

Com o comando at, você pode armazenar comandos que precisam ser chamados no futuro. Alguns sistemas Linux usam um servidor atd dedicado para tomar conta disso, outros ( ex: RedHat ) deixam o daemon crond executar atrun a cada minuto.

Isto não é realmente necessário na maioria dos sistemas, uma vez que comandos at raramente dependem de serem chamados num tempo exato. Então, se você achar uma linha como esta no seu arquivo /etc/crontab:

# Execute qualquer em trabalhos todo minuto
* * * * * root [ -x /usr/sbin/atrun ] && /usr/sbin/atrun

Então você pode mudar isto seguramente para:

# Execute qualquer em trabalhos toda hora
00 * * * * root [ -x /usr/sbin/atrun ] && /usr/sbin/atrun

Leia o man 5 crontab para mais detalhes. Algumas pessoas podem trabalhar bem mesmo sem um daemon crond, então se é sabido o que está sendo feito, pode-se querer considerar a desabilitação disto completamente.

54.2 O update / daemon bdflush

O Linux lida com um monte de buffers de arquivos abertos a qualquer momento, então o sistema deve ter certeza que mudanças de arquivos são salvas em disco o mais cedo possível. De outra maneira, estas mudanças seriam perdidas a cada travamento do sistema.

O update / daemon bdflush toma conta disto ( estes são dois nomes para o mesmo programa, então, pode-se usar qualquer um dos nomes para se inicializar o daemon ). As configurações padrões irão fazer este daemon chamar flush a cada 5 minutos e sync a cada 30 segundos.

Com o meu disco Fujitsu isto causou um acesso sem parada ( parece que o disco rígido acessa sua cache mesmo quando não há nenhuma mudança. Mas isto depende do modo com que o seu disco rígido faz a confirmação de mudança: outras pessoas me disseram que seus discos entram no modo de economia de energia mesmo sem as seguintes modificações ).

Uma vez que o Linux não trava com freqüência, mudei ambos os valores para 3600 segundos ( = uma hora ). Isto não causou nenhum problema e o acesso a disco constante parou ( mas se o sistema travasse agora, haveriam arquivos corrompidos ).

RedHat 4.1: No arquivo /etc/inittab, mude a chamada do update para:

ud::once:/sbin/update -s 3600 -f 3600

Suse 4.4.1: o update é chamado em /sbin/init.d/boot.

Slackware: o update é chamado em /etc/rc.d/rc.S.

Veja man update para mais detalhes.

54.3 O daemon syslogd

O daemon syslogd é responsável por vários arquivos de registro de sistema do Linux que são achados no diretório /var/log/. Por padrão o syslogd irá sincronizar o arquivo de registro a cada vez, depois que for registrada uma mensagem de sistema.

Pode-se desligar isso, colocando antes um caractere de comentário ( # ) no arquivo /etc/syslog.conf. Eis aqui um exemplo achado no syslog.conf do meu sistema:

# Registre qualquer coisa (exceto mensagens ) 
# de informação de nível ou superior. Não registre a 
# autenticação de mensagens privadas!
*.info;mail.none;authpriv.none                  -/var/log/messages

Isto significa mais uma vez que se o sistema travar, a mensagem que relata o problema pode não ser armazenada em disco. Dilema...

54.4 O comando init

Durante a inicialização, os processos iniciais e daemons serão iniciados usando o comando init. Este comando (mais uma vez) chama o sync antes de cada processo que ele cria.

Pode-se mudar isto removendo a chamada sync() no código fonte e recompilando o comando.

Para evitar problemas com buffers de arquivos perdidos, você deve acrescentar uma chamada para sync no roteiro /etc/rc.d/init.d/halt do seu sistema, bem antes do roteiro desmontar os sistemas de arquivos.

54.5 A partição de troca ou swap

A partição de troca do Linux é usada para aumentar o espaço de memória RAM física com memória virtual. Isto mais uma vez é a possível razão para acesso a disco. Se o seu laptop já tem muita memória RAM ou se os aplicativos que você usa são bem modestos ( tipo o vi ), considere a desativação da partição de troca.

É evidente que isso depende do que se planeja fazer. 4 a 8 Mb não é suficiente, nesse caso a partição de troca é necessária. Com 8 a 16 Mb, aplicativos de console de texto irão funcionar bem e se puder evitar o uso de recursos multitarefa, pode-se seguramente desativar a partição de troca. O ambiente do X-Windows requer muita memória RAM e você não deve usá-lo sem a partição, a não ser que você realmente tenha muita memória.

( Nota: Meu laptop com 16 Mb de RAM e partição de troca desativada pode executar o emacs, quatro bashs e compilar um kernel sem sair da memória. Isto é suficiente para mim. )

Se você já instalou uma partição de troca, você pode disabilitá-la colocando uma cerquilha (#) antes do comando swapon que é chamado no /etc/rc.d/rc.sysinit. Se você não quiser fazer isto de modo permanente, deixe o sistema perguntar durante a inicialização. No /etc/rc.d/rc.sysinit (RedHat 4.1) ou /sbin/init.d/boot (Suse 4.4.1):

echo "O sistema deve usar a partição de troca?"
echo "  0: Não."
echo "  1: Sim."
/bin/echo "Sua escolha: \c"
read SWAPCHOICE

case "$SWAPCHOICE" in
    0)
        # Não faz nada.
        echo "( Partição de troca desativada )"
        ;;
    *)
        # Inicializa a partição.
        echo "Ativando as partições de troca"
        swapon -a
esac

Assim pode-se usar a partição de troca quando conectado a uma fonte de energia e ignorá-la quando se estiver usando a bateria.

54.6 O servidor web httpd apache

Estou usando o meu laptop para desenvolver roteiros cgi para sites web, é por isso que estou executando um servidor web local. A configuração padrão é um pouco complicada se você quer apenas testar um roteiro ou verificar uma página de tempos em tempos.

No arquivo httpd.conf, mude apenas os valores de MinSpareServers e StartServers para 1. Isto será suficiente para o um site de teste local.

Se quiser desligar o registro de entrada do servidor web, deve-se recompilar o servidor httpd. Leia a documentação para mais detalhes.

Grant Taylor recompilou o registro de entrada do apache e descobriu que isso não fazia com que o disco parasse de mexer. Então, usou outro, o melhor IMHO, solução: configurou o apache para funcionar do inetd ao invés do modo solitário (standalone).'' Leia man inetd para mais detalhes.

54.7 O pacote XFree86

Configurar o XFree86 para laptops é uma história a parte. E mais uma vez, tenho que me referir a página do Laptop com Linux onde você poderá achar muitas informações úteis.

O branqueamento do console X deixa apenas a tela preta, mas não desliga. Como mencionei na observação sobre o branqueamento do console, pode-se usar a opção dpms do xset para mudar isso. Todavia, este recursos depende da placa de vídeo do seu laptop e da bios.

Grant Taylor usa a seguinte configuração para mandar seu laptop para o modo hibernação com a ajuda do apmd e do protetor de tela:

# Executa o xscreensaver com o programa APM 
xscreensaver -timeout 5 \
             -xrm xscreensaver.programs:apm_standby \ 
             -xrm xscreensaver.colorPrograms:apm_standby &

Onde ``apm_standby é um roteiro em perl que permite apenas que certas pessoas executem apm -S.''

54.8 O editor emacs

Ok, o emacs não é um editor, e sim um estilo de vida. Eis aqui uma dica de Florent Chabaud: ``Se escolher usar o emacs, talvez tenha notado que o editor faz alguns salvamentos automáticos. Isto é claramente útil e não deve ser desativado, mas os padrões dos parâmetros podem ser ajustados para o uso em laptop.

Coloquei no arquivo /usr/share/emacs/site-lisp/site-start.el as seguintes duas linhas:

(setq auto-save-interval 2500)
(setq auto-save-timeout nil)

Isto desabilita o auto-salvamento baseado no tempo, e faz com que ele seja feito a cada 2.500 teclas digitadas. É evidente que se você está digitando um texto este último parâmetro deve ser reduzido, mas para a programação ele é suficiente. Uma vez que a cada ação (para cima, para baixo, direita, esquerda, espaço, espaço de volta, etc... ) é contada, o número de 2.500 ações é facilmente alcançado.''

54.9 Como achar outros métodos de otimização

Se o seu sistema Linux ainda parece estar acessando o disco rígido com muita freqüência, você pode achar o que está causando isto através do comando ps ax. Isto irá mostrar todos os processos em execução e seus nomes completos, algumas vezes ele também revela o argumento da linha de comando de cada processo.

Agora leia a página de manual de cada processo para achar e como mudar o seu comportamento. Com este método, você será capaz de achar os processos responsáveis pelo acesso a disco. Pode ser usado também o comando strace.

Por favor me mande uma mensagem se achar alguma coisa nova.


Página seguinte Página anterior Índice