SSD e "elevator" - dica de desempenho para netbooks e virtual machines

Publicado por Andre (pinduvoz) em 19/06/2009

[ Hits: 8.075 ]

Blog: http://casadopinduvoz.wordpress.com/

 


SSD e "elevator" - dica de desempenho para netbooks e virtual machines



O que são os "elevators" (elevadores) incluídos no kernel? Pesquisei o assunto por conta de uma dica recorrente sobre o funcionamento do SSD (Solid State Disk) do Acer Aspire One e tento aqui passar a vocês o que eu aprendi sobre eles (quem quiser e souber, pode me corrigir se achar necessário).

Um elevador não entrega seus passageiros fora de ordem, ou seja, pára no primeiro andar, no segundo e assim sucessivamente, para que as pessoas embarquem e desembarquem conforme os respectivos destinos. Se há três pessoas no elevador e uma vai ao 10º andar, outra ao 1º e a última ao 5º, é óbvio que, se o elevador parasse primeiro no 10º, depois no 1º e por último no 5º, consumiria mais tempo do que seguindo a ordem natural de parada (1º, 5º e 10º).

Essa analogia vale para os discos rígidos (HD), já que a leitura/gravação ordenada por setores é muito mais rápida do que a leitura pela ordem das requisições. Podemos dizer, então, que o "elevator" do Kernel estabelece uma ordem ideal para as requisições de leitura/gravação no disco.

E o que isso tem a ver com o SSD do Acer Aspire One e de outros netbooks? Um dos quatro tipos de "elevadores" do Kernel Linux trabalha exatamente pela ordem "Primeiro a entrar, Primeiro a sair" ("First in, First out", cuja sigla é FIFO), desprezando trilhas de disco (posição dos dados no HD) e assim "casando" com a estrutura dos SSD, que, ao contrário dos discos rígidos mecânicos, não precisam de "ordenamento".

E se os SSD, assim como os discos virtuais (a dica também vale para quem tem Linux numa VM), não precisam de "ordenamento", o trabalho realizado nele é pura perda de tempo e desempenho, ou seja, em vez de ajudar, atrapalha.

E como podemos utilizar esse elevador "Primeiro a entrar, Primeiro a sair"? Simplesmente passando a escolha dele ao Grub.

No Linpus, como no Fedora, não temos o arquivo "menu.lst" e sim o arquivo "grub.conf", que deve ser editado com o comando:

sudo mousepad /boot/grub/grub.conf

E o que está assim:

default=0
timeout=0
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu

title Linpus Linux RCD
   rootnoverify (hd0,0)
   kernel /boot/bzImage ro root=LABEL=linpus vga=0x311 splash=silent loglevel=1 console=tty1 quiet nolapic_timer
   initrd /boot/initrd-splash.img

Fica assim:

default=0
timeout=0
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu

title Linpus Linux RCD
   rootnoverify (hd0,0)
   kernel /boot/bzImage ro root=LABEL=linpus vga=0x311 splash=silent loglevel=1 console=tty1 quiet nolapic_timer elevator=noop
   initrd /boot/initrd-splash.img

Em suma, acrescente "elevator=noop" à linha de boot do kernel (é uma linha só), logo após a última opção ("nolapic_timer").

É óbvio que, se a sua distro usa o arquivo "menu.lst", é ele que deve ser editado.

Encerrando, esclareço que uso a dica acima e meu Acer Aspire One não "congela" lendo e escrevendo no disco tanto quanto antes dela ser aplicada.

Agora cabe a você testar e ver se o desempenho do seu Acer Aspire One também melhora.

Outras dicas deste autor

Link para 40 wallpapers listados para integrar o Ubuntu 10.10

Unity 3D: ícones na "área de notificação"

Verificando a versão do Java em qualquer navegador

Mudar senha no modo de recuperação

Criando PDF pelo terminal

Leitura recomendada

Resetando a senha do OTRS disponível nos repositorios do Debian

Resolvendo bug do Eclipse (Galileu) + Compiz

Eix em terminal branco [Resolvido]

Roteando 2 (duas) placas de rede no Linux

Como executar seu código-fonte a partir do Vim

  

Comentários
[1] Comentário enviado por clebaosantz em 21/06/2009 - 09:10h

André, valeu pela dica. Realmente funciona, a performance ficou muito melhor, uso o Linux instalado em um pendrive e travava toda hora agora consigo usar normalmente

[2] Comentário enviado por pinduvoz em 23/06/2009 - 00:09h

Que bom, Cleber.

Eu também notei uma certa melhora e por isso resolvi postar, pesquisando para dar uma explicação, ainda que sucinta.

[3] Comentário enviado por shirulkm em 14/08/2009 - 01:47h

Ola
desculpe a ignorância...
To com o UNR e o comando eh invalido, claro trocando o grub.conf por menu.lst .
Mas o comando mousepad da invalido. Qual o comando pro UNR?

E to acompanhando os artigos para o AA1... Valeu pelas dicas.

[4] Comentário enviado por shirulkm em 14/08/2009 - 02:27h

Entrei pelo $ sudo gedit /boot/grub/menu.lst
E nao consegui encontra a linha pra modificar...
=/

[5] Comentário enviado por pinduvoz em 15/08/2009 - 19:25h

É a linha das opções do Kernel, que termina com "quiet splash".

Segue a minha:

kernel /boot/vmlinuz-2.6.28-14-generic root=UUID=4a204b19-2b7d-4f2d-a016-d79f1d230c7d ro locale=pt_BR quiet splash pciehp.pciehp_force=1 elevator=noop

Altere também em "# defoptions", para que a cada upgrade do Kernel as alterações sejam preservadas. Fica assim:

## additional options to use with the default boot option, but not with the
## alternatives
## e.g. defoptions=vga=791 resume=/dev/hda5
# defoptions=quiet splash pciehp.pciehp_force=1 elevator=noop

[6] Comentário enviado por shirulkm em 18/08/2009 - 02:00h

Valeu, troquei ja!!!
Agora eh ta sempre olhando as dicas pra deixa o bichinho melhor
Valeu =D

[7] Comentário enviado por thiagoanselmo em 01/02/2013 - 15:11h

Amigo, vamos ver se podes me ajudar.

Tenho um servidor que roda Debian 6.0.6 com KVM.
Tenho uma maquina virtual rodando windows 2003 server, só que ela trava, já olhei memória e processamento e estão OK. Percebi que está dando um gargalo no Disco, pois atualmente eu uso um HD 320GB 7200RPM, eu iria colocar um SSD para o sistema operacional e outro onde fica armazenada a VM, mais pelo oque eu li isso não ajudaria? é isso?



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts