Autor: Koji
Data: 16/05/2001.
Se queremos incrementar a velocidade de nosso FreeBSD (sobretudo
escrevendo e lendo em disco) podemos usar o chamado SoftUpdates.
Não vou entrar em nenhuma explicação técnica detalhada. Se estais
interessados em aprofundar sobre o tema podeis dirigir-vos à direção:
http://www.mckusick.com/softdep/index.html
(esta em virilhas por suposto). Começamos!
Bem, antes de nada comentar que este pequeno articulo foi escrito
usando FreeBSD 4.3. Não se até que ponto pode mudar
o mecanismo de activación de SoftUpdates (sobretodo em versões velhas de FreeBSD
), mas me atrevería a dizer que em toda a 4.x em
adiante o procedimento segue sendo o mesmo.
O primeiro que temos que fazer é comprovar se temos a linea "options SOFTUPDATES" em nosso kernel. Assim que o comprovaremos:
# cd /usr/src/sys/i386/conf
# grep SOFTUPDATES GENERIC
options SOFTUPDATES
#Enable FFS soft updates support
NOTA: substituir GENERIC pelo nome de vosso kernel que
esteis usando
Como se vê claramente nosso kernel se que dispõe desta opção.
Se estivesse comentada (com um # ao princípio da linea) ou não a
tuvieramos, tendriamos que a pôr no kernel e compilá-lo.
Para isso editaríamos o arquivo de nosso kernel (em nosso caso GENERIC)
e pondriamos options SOFTUPDATES ao final do arquivo e o
compilariamos:
# cd /usr/src/sys/i386/conf
# config GENERIC
# cd ../../compile/GENERIC
# make depend;make;make install
Todo isto do final como dissemos só séria necessário se a linea options SOFTUPDATES estivesse comentada ou se não figurasse no kernel.
Após todo este rollo só fica ativar as particiones que queiramos
ter com softupdates. Para isso faremos um reboot e arrancaremos FreeBSD
em single mode. Para fazer isto ultimo só temos que pulsar uma tecla
diferente de enter na conta atrás que sai em FreeBSD antes de que
comece o arranque.
Entraremos numa espécie de prompt e teclearemos:
boot -s
Ato seguido FreeBSD arrancasse em single mode. Uma vez arrancado nos pedirá a shell que queremos usar, lhe diremos a que queremos usar e ativaremos o softupdate tecleando:
tunefs -n enable /usr
podemos fazê-lo em todas as particiones que queiramos (menos a swap), em nosso caso o pusemos para a partición /usr, mas podeis ativar a que queirais, uma linha por cada partición a ativar
Se quereis tambián podeis usar o device para ativá-lo, por exemplo o comando anterior também se poderia ter indicado pondo:
tunefs -n enable /dev/ad0s1e
Após isto, teclearemos reboot e arrancaremos nosso FreeBSD como de costume.
Para comprovar que todo tem ido bem só temos que executar mount. Aqui vos ponho a diferença de um mount antes de ativar o softupdates e um mount após ativá-lo:
-Antes de ativar softupdates-
/dev/ad0s1a on / (ufs, local)
/dev/ad0s1e on /usr (ufs, local)
procfs on /proc (procfs, local)
-Despues de ativar softupdates-
/dev/ad0s1a on / (ufs, local) /dev/ad0s1e on /usr (ufs, local, soft-updates) procfs on /proc (procfs, local)
NOTA: Tambien podeis verificar se a partición foi montada com
softupdates com o parametro -p do comando tunefs. Para maior
informação conferir sua man (man tunefs)
Antes de seguir comentar-vos uma anotação.
Vos podeis estar perguntando o porque todo o rollo do single mode, boot -s
e todo isso que fizemos anteriormente.
Bem a resposta é singela, e é que para ativar o softupdates as
particiones precisam estar desmontadas, e isto é o que
consegue-se com o boot -s. Para pôr-vos um pequeno exemplo vamos ativar a partición /prova que temos em nosso
FreeBSD para que seja montada com softupdates, imaginar-vos que agora mesmo esta
montada e estamos trabalhando em nosso FreeBSD como de costume, assim que
faríamos o seguinte:
# umount /prova
# tunefs -n enable /prova
E isso séria todo. No caso de prova / o mecanismo para ativar o softupdates é mas curto, já que esta partición não é uma partición do sistema como pode ser /usr, / ou /var e não é montada automaticamente no arranque pelo sistema
Uma coisa também importante a comentar, é que na instalação de FreeBSD,
(concretamente ao criar os slices) sobretudo nas versões novas,
temos a opção de dar suporte de softupdates diretamente desde o editor,
é dizer, ao criar os slices /, /usr, /var, ou os que
queiramos, podemos ativar estes diretamente com suporte softupdates.
Esta opção figura ao menos na instalação de FreeBSD 4.3, mas não se se em anteriores
versões se dispõe dela. Se olhamos as opções das que
dispomos no menu de criação de slices deveria pôr algo assim:
S = Toggle SoftUpdates
Isto nos diz que só temos que nos pôr sobre o slice que queiramos dar suporte são softupdates e apertar a tecla S, desta maneira nos poupámos de ter que realizar todos os passos anteriores.
E já para acabar vos ponho umas comparações do tempo aproximado que FreeBSD demora em fazer segundo que operações de disco tendo o softupdates ativado e não ativado.
Desempaquetar o arquivo x.tar com softupdates: 50.628 segundos
Desempaquetar o arquivo x.tar sem softupdates: 57.204 segundos (13%
mas lento)
apagar o diretório x com softupdates: 16.640 segundos
apagar o diretório x sem softupdates: 43.282 segundos (260% mas
lento)
Isso é todo :-)
Para dúvidas/comentários e demas dirigir-vos a meu e-mail [email protected]
Uma saudação