Agendador de kernel do Linux para um pen drive - noop ou prazo?

4

Eu executo o Debian Live como um sistema persistente em um pen drive de 16 GB. Este é o meu sistema de todos os dias. Eu fui atormentado com atrasos contínuos e congela devido à baixa velocidade de gravação. Eu particionei a unidade novamente e alinhei as partições, resultando no que parece ser um aumento significativo na velocidade, mas também estou me perguntando se alterar o agendador de E / S ajudaria.

Parece haver dois candidatos: prazo e noop. Esta página recomenda o prazo, e eu apenas mudei para isso. Parece ter ajudado, mas a impressão é puramente subjetiva. No entanto, o consenso sobre o estouro de pilha parece ser que noop é melhor para dispositivos flash (consulte aqui e aqui ). Mas não consigo entender como um agendador que não faz nada - ou seja, noop - pode ser mais eficiente.

Como espero que eu tenha que experimentar por uma semana ou mais para ver se realmente ajuda, pensei em perguntar se alguém tem alguma ideia de qual seria melhor.

    
por ShankarG 28.01.2013 / 06:29

1 resposta

9

Os dispositivos Flash devem ser melhor manipulados por um agendador de E / S sem operação. Embora isso não seja uma resposta definitiva. Continue lendo.

Um dispositivo mecânico (como o HDD) gasta muito tempo na busca de operações, encontrando a posição correta em uma placa de disco para realizar leitura ou gravação. Isso é feito movendo uma cabeça mecânica com velocidade limitada. Embora essa velocidade pareça bastante alta, os dispositivos flash não exigem isso e, portanto, são mais rápidos por design.

A tarefa de um agendador de E / S é principalmente agrupar, reordenar e, quando possível, mesclar operações de E / S. Uma das principais intenções é diminuir a penalidade de busca diminuindo a quantidade de operações de busca necessárias.

É por isso que um agendador NOOP é superior à maioria dos agendadores de dispositivos flash. Tendo em mente que não há penalidade de busca incorrida em qualquer operação de E / S, o planejador não precisa fazer muito. Quanto menos, melhor. Com muito poucos ciclos de CPU necessários para cada operação de E / S, também é muito amigável para a bateria.

Por outro lado, DEADLINE pode ser uma boa opção se você estiver preocupado com a falta de E / S, enquanto seu sistema raramente ficará sobrecarregado. O escalonador impõe um prazo para cada operação de E / S, o que impacta positivamente na latência. Ele usa várias filas para armazenar operações e classifica-as de acordo com seu prazo. Ao se comprometer com esses prazos, ele pode garantir que não haja falta de E / S durante as cargas normais da CPU.

Para concluir, não há nenhum tamanho único . Cada agendador tem seus prós e contras. A melhor coisa que você pode fazer IMHO é ler sobre Noop, Prazo e SIO, e descobrir qual deles se encaixa melhor para o seu cenário. Você também pode testá-los por um período e ver como eles reagem ao seu uso diário.

Por fim, encontrei uma boa postagem no fórum que parece preciso e abrange as principais vantagens / desvantagens de cada programador de E / S.

    
por 28.01.2013 / 06:45