Qual é o progresso em relação à melhoria do desempenho / capacidade de resposta do sistema durante alta E / S de disco?

9

Sempre que houver uma E / S de disco alta, o sistema tende a ser muito mais lento e menos responsivo do que o habitual. Qual é o progresso no kernel do Linux em relação a isso? Esse problema está sendo trabalhado ativamente?

tshepang
fonte
Eu juro que isso aconteceu antes ... hmm ...
xenoterracide
11
possível @tshepang duplicado , ele definitivamente contém respostas para sua pergunta.
Xenoterracide
@tshepang também esta pergunta
xenoterracide
@tshepang. Eu respondi isso usando partes do que foi dito nos outros. Estou aceitando que seja diferente o suficiente para continuar sendo sua própria pergunta, mas elas estão definitivamente relacionadas. Na verdade, acho que se você olhar para a causa real por trás de ambas as outras perguntas, descobrirá que está enfrentando os mesmos erros, acabou de fazer a pergunta de maneira diferente.
Xenoterracide
11
@tshepang, se você acompanhou as últimas 10 versões do kernel, encontrou vários patches relacionados a problemas de E / S, desde problemas de desempenho em ext3, ext4, CFQ e provavelmente alguns outros lugares, incluindo esta última rodada de patches. Pena que não consigo encontrar todos os outros links no momento.
Xenoterracide

Respostas:

11

Eu acho que na maior parte foi resolvido. Meu desempenho sob IO pesado melhorou na 2.6.36 e espero que melhore mais na 2.6.37. Veja estes artigos do phoronix .

Wu Fengguang e KOSAKI Motohiro publicaram correções nesta semana que acreditam que abordarão alguns desses problemas de capacidade de resposta, para os quais eles chamam de "o sistema fica sem resposta sob pressão de memória e muitas páginas sujas / de write-back". Andreas Mohr, um dos usuários que relatou esse problema ao LKML e testou os dois patches aplicados ao vmscan do kernel. O problema de Andreas foi o sistema ficar totalmente sem resposta (e mudar para um VT levou mais de 20 segundos) ao criar um sistema de arquivos EXT4 quando uma unidade de estado sólido foi conectada via USB 1.1. Em seu sistema, ao escrever 300 milhões a partir do arquivo / dev / zero, o problema era ainda pior.

Aqui está um link direto para o bug

Também de Phoronix

Felizmente, a partir de nossos testes e dos relatórios de outros usuários do Linux que procuram ver esse problema corrigido, os patches vmscan relativamente pequenos que foram publicados parecem resolver melhor o problema. A interface do usuário (GNOME no nosso caso) ainda não é 100% fluida se o sistema estiver sustentando uma quantidade impressionante de atividade do disco, mas certamente é muito melhor do que antes e o que é encontrado até agora no kernel Linux 2.6.35.

Há também o anúncio de lançamento do Phoronix 2.6.36

Parece que as barreiras dos blocos estão desaparecendo e isso também deve ajudar no desempenho.

Na prática, as barreiras têm uma reputação desagradável por reduzir o desempenho de E / S de blocos, a ponto de os administradores serem frequentemente tentados a desligá-los e assumir seus riscos. Embora as operações de fila com tags fornecidas pelo hardware contemporâneo devam implementar barreiras razoavelmente bem, as tentativas de fazer uso desses recursos geralmente têm dificuldades. Portanto, no mundo real, as barreiras são implementadas simplesmente drenando a fila de solicitações de E / S antes da emissão da operação de barreira, com algumas operações de liberação ativadas para que o hardware efetivamente comprometa os dados na mídia persistente. As operações de drenagem de fila paralisam o dispositivo e eliminam o paralelismo necessário para o desempenho total; não é de surpreender que o uso de barreiras possa ser doloroso.

Há também este artigo do LWN sobre programação justa de E / S

Eu diria que o IO despertou muito sobre o tempo do lançamento do ext4 na versão 2.6.28. Os links a seguir são para versões Linux Kernel Newbies Kernel, você deve revisar as seções Block e Filesystems. É claro que isso pode ser um sentimento injusto, ou apenas na época em que comecei a assistir o desenvolvimento do FS, tenho certeza de que ele vem melhorando o tempo todo, mas sinto que alguns dos problemas do ext4 'fizeram com que as pessoas olhassem bastante para a pilha de IO, ou pode ser que eles esperassem que o ext4 resolvesse todos os problemas de desempenho e, quando não perceberam, precisaram procurar em outros lugares os problemas.

2.6.28 , 2.6.29 , 2.6.30 , 2.6.31 , 2.6.32 , 2.6.33 , 2.6.34 , 2.6.35 , 2.6.36 , 2.6.37

xenoterracida
fonte