Para um melhor desempenho, os dados que são solicitados constantemente deverão ser armazenados em uma partição no inicio do disco rígido. Esta área é a mais rápida e checa a ser 60% mais rápida que o final do HD (em alguns modelos). Em especial, a partição de boot, swap e binários do sistema poderão ser armazenados nesta partição para aumentar a velocidade da carga de programas e não prejudicar a performance do sistema quando o uso da partição de troca (swap) for necessária.
Em discos rígidos grandes (6GB ou maiores) é recomendável criar no mínimo uma
partição pequena para /boot
, outra para
/
, outra para swap
e outra para
/usr
. Ficando distribuídas da seguinte maneira no disco
rígido:
BBRRRRRRRRRRRRRRRRRRRRR RRRRRRRRRRRRRRRRRRRRRRR SSSSSSSSSSUUUUUUUUUUUUU UUUUUUUUUUUUUUUUUUUUUUU UUUUUUUUUUUUUUUUUUUUUUU UUUUUUUUUUUUUUUUUUUUUUU UUUUUUUUUUUUUUUUUUUUUUU UUUUUUUUUUUUUUUUUUUUUUU UUUUUUUUUUUUUUUUUUUUUUU B - /boot R - Raíz / S - Swap U - /usr
Mas a swap não ficaria ainda mais rápida sendo a primeira partição no disco?
Sim e não: Realmente fica rápida (na teoria conforme explicado acima), mas
levando em consideração que o deslocamento das cabeças de leitura/gravação do
disco rígido leva certo tempo, é mais vantajoso mantê-la entre as 2 partições
mais acessadas, isto diminui o tempo de acesso caso um programa esteja fazendo
uso constante de /
ou /usr
e precisar
trocar dados na partição swap
.
Além do mais, a partição /
geralmente é pequena (no máximo
800M) deixando a swap em uma área muito próxima do inicio do disco rígido. Com
base nisto, você poderá ter uma melhor visão técnica para a construção de suas
partições dependendo da função do sistema.
Em sistemas que utilizam um disco rígido dedicado para fazer
swap
, a ligação deste em uma placa controladora independente
aumentará bastante a performance do sistema, pois enquanto o disco principal
ligado em sua controladora estiver fazendo uma operação de leitura, o outro
poderá estar fazendo sua operação de swap simultaneamente. O mesmo não
acontece quando dois discos rígidos IDE estão ligados no mesmo cabo (isto não
acontece no SCSI).
O hdparm é um programa que permite modificar características diversas da unidade de disco rígido e de CD como modo de transferência de dados, leitura adiante, dma, cache, leitura simultânea de setores, hibernação, etc.
Por padrão as transferências de dados entre a controladora do HD (a plaquinha
que fica embaixo dele) e a controladora de periféricos é feita em 16 bits.
Para exibir a configuração atual do disco rígido /dev/hda
(por exemplo), digite o seguinte comando: hdparm /dev/hda
/dev/hdb: multcount = 0 (off) I/O support = 0 (16-bit) unmaskirq = 0 (off) using_dma = 1 (off) keepsettings = 0 (off) nowerr = 0 (off) readonly = 0 (off) readahead = 8 (on)
Imediatamente podemos modificar os seguintes campos para melhorar sensivelmente o desempenho do disco rígido:
Pode ser modificada com -m[num] e especifica o número
máximo de setores que serão acessados de uma só vez na operação de leitura da
unidade. O valor máximo recomendado é igual a capacidade máxima suportada pelo
seu disco rígido, que pode ser obtida com o comando: hdparm -i
/dev/hda
Model=TS6324A2, FwRev=.340 , SerialNo=A99B99JA Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5% } RawCHS=13228/15/63, TrkSize=0, SectSize=0, ECCbytes=0 BuffType=unknown, BuffSize=256kB, MaxMultSect=16, MultSect=16 CurCHS=13228/15/63, CurSects=12500460, LBA=yes, LBAsects=12500460 IORDY=on/off, tPIO={min:240,w/IORDY:120}, tDMA={min:120,rec:120} PIO modes: pio0 pio1 pio2 pio3 pio4 DMA modes: mdma0 mdma1 mdma2 udma0 udma1 *udma2 udma3 udma4 udma5
O campo MaxMultSect=16 indica o valor de 16 como máximo
suportado em uma única operação pela unidade. Valores maiores poderão ser
especificados mas não trarão ganho de performance. Para discos rígidos
Western Digital é recomendável deixar este valor como
0
, porque eles possuem um mecanismo embutido para leitura de
setores. Para experimentar valores fora dos padrões, coloque seu sistema de
arquivos como somente leitura para não perder dados caso algo saia errado.
Note que o comando hdparm -i
mostra alguns detalhes
interessantes sobre a configuração do disco rígido e modos de operação
suportados.
Modificado com -c[num]. O número especificado pode ser
0
para transferência de dados em 16 bits,
1
para 32 bits e 3
para 32 bits com uma
seqüencia especial de sincronismo (alguns chips requerem esta ao invés da
1
).
Modificado com -d[num]. Habilita ou não o uso de DMA para
a transferência de dados do HD, ativando o controle de algumas operações pelo
chipset livrando a CPU para processamento. 0
desativa DMA e
1
ativa. Note que nem todos os chipsets aceitam esta
operação. Esta usada em conjunto com a opção -X
oferece um
excelente ganho de performance pelo uso correto de sua controladora.
A ativação de dma também pode ser feita automaticamente na recompilação do
kernel ou especificando o parâmetro ideX=dma
(X
é o número da controladora IDE) na linha de comando de
boot:
ou no arquivo /etc/lilo.conf
.
Modificado pela opção -X[num]. Permite selecionar o melhor modo de transferência de dados do seu disco rígido, é nesta parte onde você seleciona o modo UltraDMA para transferência de dados, caso seu HD/CD-ROM suporte. Os seguintes valores são válidos:
32 - PIO Mode 0 33 - PIO Mode 1 34 - PIO Mode 2 35 - PIO Mode 3 36 - PIO Mode 4 64 - Ultra DMA Mode 0 65 - Ultra DMA Mode 1 66 - Ultra DMA Mode 2 67 - Ultra DMA Mode 3 68 - Ultra DMA Mode 4 69 - Ultra DMA Mode 5 70 - Ultra DMA Mode 6
Para descobrir os modos PIO e UltraDMA do seu HD, utilize o comando
hdparm -I /dev/hd?
. NÃO UTILIZE UM MODO PIO/ULTRA DMA NÃO
SUPORTADO PELA SUA CONTROLADORA. CASO SUA PLACA CONTROLADORA DO HD SUPORTE UM
MODO ALTO PIO/ULTRADMA MAS SUA CONTROLADORA IDE NÃO SUPORTA, VOCÊ DEVERÁ
UTILIZAR O VALOR MAIS ADEQUADO PARA AMBAS. FAÇA TESTES SEMPRE QUE ALTERAR O
MODO DE FUNCIONAMENTO E ESTEJA ATENTO A MENSAGENS DE ERROS PARA QUE NÃO TENHA
PERDA DE DADOS!!!
Modificado com -u[num]. Habilita ou não o controlador de
disco mascarar as interrupções de processador durante o processamento das
interrupções de disco. 0
desativa esta função e
1
ativa. Use esta opção com cuidado e sob seu próprio
risco: algumas placas controladores de HD e controladoras de periféricos não
trabalham bem com a taxa de transferência aumentada, podem ocorrer perda de
dados. Coloque o sistema de arquivos como somente leitura antes de testar esta
característica.
Modificado com -r[num]. Coloca o disco em modo somente
leitura. A montagem da partição com a opção ro no
/etc/fstab
é preferida.
Modificado com -a[num]. Configura o número de blocos que serão lidos antecipadamente no sistema de arquivos (por padrão é usado 8 blocos - 4 Kb). Este número poderá ser modificado para se adequar a utilização do computador. Em sistemas com muita procura de arquivos pequenos (servidores web), um valor pequeno (como o padrão) é recomendável. Se a máquina é um servidor de arquivos dedicado, um valor maior trará maiores benefícios.
Veja mais detalhes sobre o comando hdparm em sua página de
manual. Depois de selecionado o melhor valor de performance, você deverá
salvar em um arquivo que será lido na inicialização para ativação destes
valores. Para fazer teste de performance de leitura bruta utilize o comando
hdparm -t /dev/hd?
, para fazer testes com o uso de cache,
use o comando hdparm -T /dev/hd?
.
OBS: Se o Linux resetar o disco rígido, a maioria das configurações retornarão ao seu valor padrão. Isto ocorre devido a opções mau utilizadas no hdparm, não suportadas pelo disco rígido ou por problemas no HD/controladora.
Exemplos: # Ajusta o número de setores simultâneos para 16 e o modo de transferência para # 32 bits no disco rígido /dev/hda hdparm -c1 -m16 /dev/hda # Programa a leitura adiante do HD para 64 blocos (32Kb), o modo de transferência # para 32 bits, usar DMA, e 16 setores simultâneos. hdparm -c1 -d1 -m16 -a64 /dev/hda #Mostra os valores de configuração atuais do disco rígido hdparm /dev/hda
Toda vez que acessamos um arquivo ou diretório da máquina
Linux a data/hora é atualizada. Em máquinas normais isto é
OK mas em servidores onde o acesso a arquivos é constante (como no diretório
/var/spool
em servidores de e-mail ou
/usr/
em servidores diskless) é recomendável desativar
esta característica. Isto reduzirá a quantidade de buscas das cabeças do disco
rígido para a atualização deste atributo e conseqüentemente aumentará a
performance na gravação de arquivos (o disco rígido usa o sistema mecânico para
ler/gravar dados, muito mais lento que a memória RAM eletrônica).
chattr -R +A /var/spool
O atributo +A
desativa a gravação da "data de acesso" dos
arquivos e sub-diretórios dentro de /var/spool
. Para
desativar a atualização da "data de acesso" para toda a partição, você pode
incluir a opção de montagem noatime
no seu
/etc/fstab
:
/dev/hda1 /var/spool ext2 defaults,noatime 0 1
OBS: O Linux utiliza três atributos de data para controle de arquivos:
atime
- Data/Hora de acesso: é atualizado toda vez que o
arquivo é lido ou executado.
mtime
- Data/Hora da modificação, atualizado sempre que
alguma modificação ocorre no arquivo ou no conteúdo do diretório. Esta é mais
interessante que a ctime
principalmente quando temos
hardlinks.
ctime
- Data/Hora da última modificação do inodo do arquivo.
Em partições onde a gravação é freqüente (como na própria
/var/spool
) a desativação do atributo
atime
além de melhorar o desempenho do disco, não fará muita
falta.
Copyright © 1999-2020 - Gleydson Mazioli da Silva