De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Marcelo de Gomensoro Malheiros
Data de Publicação: 30 de Abril de 2001
O Marcelo me deu uma dica valiosissima para otimizar o tempo de acesso a disco em meu computador com Conectiva GNU/Linux.
Antes da dica porém cumpre lembrar que o comando hdparm deve ser usado com MUITO cuidado, pois algumas opções, se ativadas, podem corromper os dados em seu disco. Na descrição a seguir inclui apenas aqueles parâmetros que podem ser alterados com segurança e ainda assim garantir um ganho de performance substancial, como vocês poderão constatar. Para mais informações sobre o significado dos parâmetros listados, consulte a manpage do comando hdparm com o comando "man hdparm".
Segue abaixo a transcrição do que fiz em minha máquina com algumas observações minhas.
O comando hdparm invocado tendo como parâmetro apenas a unidade de disco que se deseja otimizar fornece os parâmetros de configuração adotados:
[root@paris /root]# hdparm /dev/hda /dev/hda: multcount = 0 (off) I/O support = 0 (default 16-bit) unmaskirq = 0 (off) using_dma = 0 (off) keepsettings = 0 (off) nowerr = 0 (off) readonly = 0 (off) readahead = 8 (on) geometry = 1245/255/63, sectors = 20005650, start = 0
Como se pode ver acima, a maioria das opções de otimização estão desativadas (off).
O comando a seguir realiza testes de leitura no disco e nos oferece ao final a taxa de transferência obtida:
[root@paris /root]# hdparm -t /dev/hda /dev/hda: Timing buffered disk reads: 64 MB in 16.02 seconds = 4.00 MB/sec
A taxa de transferência foi de 4MB/s, correspondente ao default do sistema.
Vamos então ativar o parâmetro "I/O support":
[root@paris /root]# hdparm -c 1 /dev/hda /dev/hda: setting 32-bit I/O support flag to 1 I/O support = 1 (32-bit)
Vejamos então que melhoria a alteração deste parâmetro trouxe ao sistema:
[root@paris /root]# hdparm -t /dev/hda /dev/hda: Timing buffered disk reads: 64 MB in 9.50 seconds = 6.74 MB/sec
Já obtivemos uma boa melhora, o tempo de acesso a disco caiu quase que pela metade.
Alteremos agora o parâmetro "using_dma":]
[root@paris /root]# hdparm -d 1 /dev/hda /dev/hda: setting using_dma to 1 (on) using_dma = 1 (on)
A nossa configuração fica então como:
[root@paris /root]# hdparm /dev/hda /dev/hda: multcount = 0 (off) I/O support = 1 (32-bit) unmaskirq = 0 (off) using_dma = 1 (on) keepsettings = 0 (off) nowerr = 0 (off) readonly = 0 (off) readahead = 8 (on) geometry = 1245/255/63, sectors = 20005650, start = 0
Façamos outro teste para vermos o ganho obtido:
[root@paris /root]# hdparm -t /dev/hda /dev/hda: Timing buffered disk reads: 64 MB in 5.19 seconds = 12.33 MB/sec
O tempo de acesso a disco passou de 4MB/s para 12.33MB/s, uma melhora substancial.
Para ativar o comando hdparm permanentemente, utilize, em sistemas Conectiva Linux e outros derivados do RedHat, o comando ntsysv. Altere antes os parâmetros que se deseja ativar no arquivo /etc/sysconfig/hdparm.
Este arquivo, no meu computador, tem a seguinte forma:
### IDE devices ### # /dev/hda - primary master # /dev/hdb - primary slave # /dev/hdc - secondary master # /dev/hdd - secondary slave DEVICE="/dev/hda /dev/hdb /dev/hdc /dev/hdd" ### Status ### # 0 - disable # 1 - enable STATUS="1 0 0 0" ### Multiple sector mode (aka IDE Block Mode) ### # Common values: 0, 2, 4, 8, 16 (fast) MULTCOUNT="-1 -1 -1 -1" ### IDE 32-bit I/O support ### # 0 - 16-bit (default) # 1 - 32-bit (fast) # 2 - 16-bit # 3 - 32-bit w/ special sync (fast/safe) IO_SUPPORT="1 1 1 1" ### Interrupt-unmask ### # -1 - disable # 0 - safe # 1 - fast UNMASKIRQ="-1 -1 -1 -1" ### Using DMA ### # NOTE: only works with a few combinations of drives and interfaces # which support DMA and which are known to the IDE driver # -1 - disable # 0 - safe # 1 - fast USING_DMA="1 1 1 1"
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários