Agendadores de I / O para discos rígidos normais

2

Para mim, descobrir qual é a melhor escolha para o agendador de E / S no kernel foi um desafio. Primeiro eu aprendi que é subjetivo, então depende do sistema de arquivos que você usa.

Eu sei que você deve usar No-op para Solid Sate Drives (SSDs), com certeza.

O que eu quero saber é a melhor escolha para HDDs normais (rotativos) contendo sistemas de arquivos Ext4 e NTFS (estilo MBR).

E o GPT ou MBR tem algum efeito na escolha que eu faço?

    
por r004 28.06.2014 / 09:09

1 resposta

4

I know you should use No-op for Solid Sate Drives or SSD s for sure.

Não necessariamente. Não sei por que as pessoas continuam tratando os SSDs como algum tipo de caso especial em que você não precisa dos benefícios de outros agendadores. Ter discos rotativos significa apenas que é mais importante ter solicitações mescladas. Mesclar solicitações é apenas uma coisa que o planejador faz.

CFQ, Prazo, etc, todos fazem mais do que isso. Por exemplo, CFQ permite que você dê prioridade a determinados processos em relação a outros (via ionice ), enquanto Prazo fornece garantias de latência. Qualquer um desses ainda pode ser relevante para SSDs.

Livrar-se de discos rotativos significa apenas que a decisão do seu agendador provavelmente será mais sobre como você deseja dividir a largura de banda de e para o disco, em vez de apenas mesclar solicitações.

EDITAR: Também indicarei que em minhas fusões de sistema pode ser desativado (independentemente do agendador) usando o /sys/block/sdXX/queue/nomerges sintonizável. O prazo final também fornece um ajuste para desabilitar as mesclagens frontais.

What I want to know is the best choice for normal (rotating) HDD containing ext4 and NTFS File systems. (MBR style).

A escolha do agendador provavelmente não é super dependente do sistema de arquivos que você está usando. Dentries e arquivos usados freqüentemente acabam no cache do sistema de arquivos de qualquer maneira. De qualquer forma, nenhum dos agendadores parece ter algum recurso que beneficie um sistema de arquivos (XFS, ext3, ext4 + extents, reiserfs, etc) sobre outro.

O NTFS tende a ficar muito fragmentado, então um read_ahead_kb menor provavelmente é benéfico (você precisa brincar com ele para ver o que funciona para você). Basicamente, se for um volume muito fragmentado, puxar os dados vizinhos provavelmente vai sufocar a largura de banda que poderia ter sido solicitada legitimamente.

E o GPT / MBR não afeta em nada essa decisão.

    
por 28.06.2014 / 14:34