
Eu tenho um disco de 500 Gb e estou tentando decidir se dividi-los em três partições faz diferença no desempenho no Linux. ou seja, se houver vários threads gravando em partições diferentes no mesmo disco, - se o primeiro thread estiver gravando na partição 1 do disco 1, o segundo thread terá que esperar para gravar na partição 2 no mesmo disco?
Responder1
Um disco é um dispositivo físico com um cabeçote de gravação físico (ignorando os SSDs por um momento). Ele só pode gravar em um local por vez. Múltiplos threads tentando escrever ao mesmo tempo competirão entre si e, de fato, tornarão a velocidade geral mais lenta, pois o cabeçote precisa fazer mais para buscar a posição correta. A gravação mais rápida é uma longa direita contínua em setores adjacentes.
Os SSDs não possuem o aspecto físico, mas possuem limites na velocidade de E/S. Adicionar threads não altera o gargalo subjacente, portanto não aumentará a velocidade.
Tudo isso assumindo que um determinado thread está pronto para escrever na velocidade máxima. Se um aplicativo depender de algum outro recurso (entrada do usuário, rede), a adição de threads poderá fazer com que pareça gravar mais rápido, pois esses threads estão trabalhando mais para 'enfileirar' os dados a serem gravados no disco.
Responder2
Não. Ao contrário.Os discos rígidos magnéticos comuns têm melhor desempenho ao gravar em áreas do disco próximas umas das outras. Considere o caso simples em que dois arquivos grandes são gravados, uma vez quase na mesma região do disco, outra vez em partes muito distantes. No primeiro caso, a cabeça de escrita pode mover-se praticamente continuamente, no último caso é gasto um tempo considerável movendo a cabeça entre dois pontos distantes.
Drivers comuns de sistemas de arquivos já são altamente otimizados para tomar decisões razoáveis sobre quando e onde continuar escrevendo. Muitas dessas otimizações serão perdidas se você estiver gravando simultaneamente em regiões completamente diferentes do disco, empregando duas instâncias do driver do sistema de arquivos, cada uma com sua própria visão limitada sobre gravações pendentes.
Mesmo os SSDs (que não gastam mais tempo lidando com a distância física) têm melhor desempenho ao gravar grandes áreas de uma só vez (abrangendo apenas blocos completos em vez de fazer pequenas gravações aqui e depois pequenas gravações ali). Portanto, você pode esperar que um único sistema de arquivos ainda tenha um desempenho melhor do que vários sistemas de arquivos em partições separadas, mesmo no caso de SSD.
Se a sua ideia para a partição também vem do desejo de garantir que um sistema de arquivos cheio não bloqueie as gravações nos outros (reservando espaço máximo diferente para cada pasta) - também existem soluções para sistemas de arquivos únicos. A palavra-chave que você está procurando nesse caso écontingente.