[PATCH 0/8] Throttled background buffered writeback v7
Since the dawn of time, our background buffered writeback has sucked. When we do background buffered writeback, it should have little impact on foreground activity. That's the definition of background activity... But for as long as I can remember, heavy buffered writers have not behaved like that. For instance, if I do something like this:
$ dd if=/dev/zero of=foo bs=1M count=10k
on my laptop, and then try and start chrome, it basically won't start before the buffered writeback is done.
E agora temos os patches para isso aplicados ao Linux, e disponíveis no Fedora Workstation e em outros lugares. Yay.
Mas esse "throttling writeback" (WBT) não tem efeito por padrão, pelo menos em HDDs e SSDs SATA. O agendador de IO padrão CFQ não é compatível com o WBT. E também não é o BFQ (o sucessor do CFQ, para a camada de bloco multi-queue). Você precisa alternar para um agendador de E / S que não tente estrangular o writeback de plano de fundo. Então você tem que fazer algum trade-off: - (.
O CFQ foi provavelmente anunciado no passado com descrições que pareceriam igualmente atraentes. BFQ certamente é também ... mas da documentação, parece usar uma classe similar de heurística para CFQ. Eu não vejo isso medindo a latência IO e limitando writeback de fundo se a latência é muito alta.
Eu tenho um laptop de dois anos com um disco rígido giratório. Tem suporte total para SATA NCQ, isto é, fila de E / S de 32-profundidade no dispositivo. Eu certamente notei alguma tendência para o sistema se tornar inutilizável ao copiar arquivos grandes (arquivos de 20G VM. Eu tenho 8GB de RAM). Com base na carta de apresentação da v3 dos patches , espero que um sistema como o meu possa de fato sofrer com o problema, com esse writeback de fundo pode enviar muito IO de cada vez.
Tags cache io linux linux-kernel