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 ).
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.
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.
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...
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.
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 bash
s 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.
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.
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
.''
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.''
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.