Eu tenho alguns SSDs montado em cima /dev/sda1
e /dev/sdb1
em um servidor SLES 11 SP2, e eu era capaz de ajustar a ler adiante ajuste com blockdev --setra
:
sudo blockdev --setra 4096 /dev/sda
sudo blockdev --setra 4096 /dev/sdb
sudo blockdev --getra /dev/sda
4096
sudo blockdev --getra /dev/sdb
4096
Como persisto essa configuração na inicialização? Especificamente, existe uma configuração correspondente sysctl.conf
ou terei de me contentar com um script rc para que isso aconteça?
block-device
ssd
sles
Banjer
fonte
fonte
Respostas:
Eu sugiro que você use o udev para definir parâmetros para os discos SSD. Dessa forma, você pode configurar um agendador de filas específico que seja mais apropriado para SSD, etc. Você também pode aplicar parâmetros apenas a alguns dos dispositivos, com base em muitos parâmetros.
Você pode obter os atributos específicos necessários para corresponder aos seus dispositivos (por exemplo, modelo e fabricante do disco) executando:
e verificando todos os pares ATTR para o seu dispositivo de bloco.
Outro benefício é a capacidade de definir os parâmetros para discos conectáveis (por exemplo, em gabinetes ou baias de hotswap) e a configuração será aplicada a todos os novos dispositivos, desde que os parâmetros do dispositivo correspondam.
Aqui está um exemplo para aplicar um agendador específico para SSDs Intel, o valor desejado de leitura (4096 blocos = 2048 kb) e também aplicar um agendador diferente para todos os outros SSDs:
Após salvar o arquivo, você pode testar se sua regra corresponderá ao dispositivo e o que o udev fará usando o udevadm:
Isso imprime todas as regras que o udev carrega, o que corresponde, o que não corresponde e quais decisões o udev tomará quando o dispositivo estiver conectado.
Espero que isto ajude.
fonte
OCZ vertex 3
's, mas não acho que suas regras sugeridas sejam específicas da Intel, exceto no campo do modelo, correto?udevadm info
para encontrar os parâmetros específicos para o seu hardware.Observe que a leitura antecipada pode ser definida pelo menos via
/sys
(/sys/class/block/sda/queue/read_ahead_kb
)blockdev
ehdparm
(hdparm -a
).hdparm
O Debian e seus derivados vêm com umhdparm.conf
que especifica os atributos por dispositivo a serem configurados na inicialização e no hot-plug (viaudev
regras).Então você pode ter:
(é melhor usar IDs do
sda
que mudar de uma inicialização para a seguinte).fonte
hdparm
no SLES 11, mas não consigo localizarhdparm.conf
. O Google parece me dizer que é necessário um script rc para que ashdparm
configurações persistam, pelo menos no SuSE.hdparm
acordo. Eu atualizei a resposta./sys
caminho, embora audev
regra @zorlem seja bastante agradável para a configuração de inicialização.Não há nada correspondente
sysctl
, portanto, sim,/etc/rc.local
é um caminho ou algo parecido. E cuidado - notei pessoalmente que no Ubuntu - essas mudanças ainda são definidas uma vez após a inicialização, portanto, pode até fazer sentido usácrontab
-lo para mantê-lo.fonte