gildot

Topo
Sobre
FAQ
Tópicos
Autores
Preferências
Artigos
Sondagens
Propor artigo


8/3
gildicas
9/30
jobs
10/9
perguntas
10/25
press

 
Performance de discos IDE no Linux
Contribuído por ajc em 18-12-99 18:25
do departamento from-the-wizards
Linux Fernando Pereira enviou-nos um editorial sobre "Performance de discos IDE no Linux". Como ele claramente sabe do que fala, trata-se de leitura muito aconselhada.
Fernando Pereira:

Recentemente reparei num pormenor muito importante que julgo ser desconhecido da grande maioria dos utilizadores de Linux.

Os kernels 2.2 raramente detectam correctamente o modo DMA dos novos discos UltraDMA/UltraDMA 66 e geralmente deixam os discos em modo PIO.

Isso significa que discos que geralmente, usando DMA, conseguem transferir cerca de 14 a 19 Mbytes/s ficam em modo PIO, que apenas lhes permirte fazer 3 a 4 Mb/s.

Mas muito pior do que isso, quando se usa um disco IDE em modo PIO o CPU fica em estado de espera activa e não faz mais nada enquanto se está a usar o disco. Por outro lado, quando o usa DMA o CPU fica livre para fazer outras tarefas enquanto o disco está activo.

Para detectar o modo em que os vossos discos estão a funcionar devem usar o comando "hdparm":

Exemplo, para o primeiro disco IDE (hda):

/sbin/hdparm /dev/hda

Para medir a performance deste disco devm usar:

/sbin/hdparm -t /dev/hda

Se estive em modo DMA devem obter cerca de 14 a 19 Mb/s (ou 10Mb/s nos discos mais lentos) Se estiver em modo PIO geralmente vamos obter entre 3 a 4 Mb/s (ou até 1 a 2 Mb nos discos mais lentos).

Para medir a carga imposta sobre o CPU ao usar o disco, podem usar os comandos "time" e "dd":

Exemplo:

time dd if=/dev/hda of=/dev/null bs=16k count=4096

Com este comando, determinamos o tempo usado pelo CPU para ler 4096 blocks de 16Kb do disco (64Mb).

Se estiver em modo PIO vai ocupar cerca de 90% do CPU (entre 80 a 95%). Se estiver em modo DMA geralmente ocupa entre 5% a 25%, dependendo do disco, controlador e do próprio sistema.

Caso o vosso sistema esteja em modo PIO, podem activar o modo DMA, com o comando:

hdparm -d1 -c1 -m16 /dev/hda

Que manda activar o modo DMA, o modo de transferencia de 32bits e ainda manda agrupar as transferencias para o disco em blocos de 16 sectores (multi block mode).

Depois disto, basta voltar a usar o "hdparm -t /dev/hda" para medir a performance e vão ver que está muito mais rápido...

De igual forma, a carga do CPU também diminui significativamente, chegando quase ao mível que se obtém com discos SCSI.

Pode ainda ser usada a opçao "-W1" para activar a cahce de escrita do disco, que aumenta a performance de escrita, mas pode ser perigoso, pois podem perder informação caso a energia seja desligada em andamento.

Para além disso, pode haver discos que não aguentam transferencias de 16 blocos em simultâneo (apenas 8, 4 ou mesmo 1), mas alguns discos podem ir até 32. Por isso podem tentar outros parâmetros.

Finalmente, existem alguns casos raros em que activar o modo DMA pode trazer problemas. Por isso devem experimentar com cuidado, antes de activar o modo DMA por defeito.

Para activar o modo DMA por defeito, basta adicionar uma linha com o comando "hdparm -d1 -c1- -m16" no ficheiro "/etc/rc.d/rc.sysinit" ou no "/etc/rc.d/rc.local".

Acreditem que a diferença de performance é brutal.

Por exemplo, num dos meus sistemas. o "staroffice" costumava demorar vários minutos a arrancar e depois de activar o modo DMA passou a demorar apenas alguns segundos (tenho um disco Maxtor DiamondMax UDMA de 7200 rpm).

Como a carga do CPU também diminui, todo o sistema fica muito mais rápido: Os próprios "gnome" e "kde" ficam muito mais rápidos e em geral tudo o que fizer acessos ao disco fica mesmo mais rápido.

Brasil Proíbe Jogos: Doom, Duke Nukem... | Empregados da NASA cliquem aqui  >

 

gildot Login
Login:

Password:

Esta discussão foi arquivada. Não se pode acrescentar nenhum comentário.

 

 

[ Topo | FAQ | Editores | Contacto ]