Por que a latência de disco cai durante períodos de gravações pesadas?

1

Olhando para a saída do plugin diskstats de Munin ( que está lendo de /proc/diskstats ) Estou percebendo o que me parece peculiar. O disco é um SSD, e eu diria, estado magnético ou sólido, que a latência aumentaria durante períodos de gravações pesadas. Por que, ao contrário, ele decai?

    
por user476819 06.07.2018 / 04:59

4 respostas

2

As gravações são aleatórias ou de streaming?

Suponho que sejam escritas "sequenciais" de fluxo contínuo, porque a latência de E / S é sempre menor com E / S seqüencial. A latência é mais alta para a E / S aleatória porque os SSDs ainda têm alguma latência para rajadas de E / S, os caches não são tão eficazes e pode haver coleta de lixo em segundo plano no SSD que precisa ser interrompida, etc.

Leia mais: link

    
por 06.07.2018 / 05:29
1

that latency would increase during periods of heavy writes. Why does it instead decease?

Porque você não tem escritas heacy. Parece que suas gravações pesadas são grandes. Enquanto nos outros períodos você faz muitas coisas pequenas.

Veja, o que está faltando aqui é um contador de IOPS. O IOS geralmente é mais limitado por IOPS. Se você tiver poucos grandes IOPS (copiando arquivos grandes), então isso é mais eficiente, mesmo para SSD (substituir o conteúdo de uma célula é mais rápido do que ler a célula, alterar alguns bytes, gravar toda a célula).

Precisamos analisar o que você fez, mas parece que uma grande operação de IO foi excessiva para o resto do mundo. Você possivelmente tem VMs no servidor que você desligou? Ninguém pode realmente saber sem saber o que aconteceu lá neste momento.

Btw., para hardware e SSD, a latência é HORRIFIC normalmente. Com essa taxa de transferência e SSD, eu esperaria que o WAY fosse menor que a latência de 1 ms.

Estou apenas olhando para uma unidade de armazenamento menor fazendo cerca de 1000 IOPS no momento - menos de 1 megabyte, a tonelada de pequeno io que você obtém quando executa 40 ou mais VMs ociosas .... a gravação está em 1.85ms. NETWORK (!), Leia em 5.25us (not ms, us). Mesmo seus valores mínimos são extremamente altos. Suas gravações geralmente estão na área em que eu acessei o SSD em uma rede de 1 gigabit.

    
por 06.07.2018 / 05:16
1

Os SSDs têm um comportamento estranho em relação às gravações que podem causar a queda na latência. Eles manterão os dados em um cache de gravação interno para os primeiros MBs e depois os escreverão. Isso significa que as primeiras gravações verão uma latência muito curta, já que a gravação é reconhecida quando os dados atingem a SRAM interna, mas ainda não chegaram à mídia flash. Os dados são então gravados na mídia rapidamente (geralmente escritos em paralelo a vários flashes em vários canais) e, em seguida, o SSD está pronto para obter outro lote como esse. Se você tiver gravações que geram uma fila grande no SSD, você verá o aumento de latência, se suas gravações estiverem em rajadas curtas, você terá uma redução muito grande da latência, já que cada burst é tratado pela SRAM.

    
por 02.08.2018 / 11:04
0

A média foi movida para o seu gráfico. Mas cuidado O que significa realmente significa . A distribuição de latência quase certamente tem outliers, não é normal e tem múltiplos modos .

Tente obter tempos de resposta brutos e represente-os como um mapa de calor . Provavelmente haverá um pequeno número de outliers e um cluster em torno de 2 ms onde a média se estabilizou. O tamanho da amostra - número de IOs - altera o quanto isso afeta a média.

Observe também que, dependendo da implementação, as gravações podem ser mais rápidas que as leituras. Um storage array ou unidade de disco pode reconhecer uma gravação no cache não volátil mais rápido do que a leitura da mídia.

    
por 08.07.2018 / 03:40