Linux; O que é stripe_cache_size e o que faz?

10

No momento, estou criando um RAID de software no Linux usando o mdadmutilitário e li alguns artigos que descrevem como aumentar o valor stripe_cache_size para esse RAID e como calcular um valor apropriado para stripe_cache_size.

Aumentei o meu para 16384 e minha taxa de sincronização atual em um novo RAID5 em / proc / mdstat saltou de 71065K / s para 143690K / s (dobrou!), O que é uma boa notícia. Também vejo o aumento correspondente e esperado no uso da RAM, no entanto, não consigo encontrar nenhuma documentação sobre o que essa configuração faz e como funciona.

Parece ser algum tipo de cache para o RAID que existe na RAM. É tudo o que posso dizer pelo nome e pelos efeitos observados ao alterá-lo. Existe alguma documentação "Linux" oficial para essa configuração e descrição?

jwbensley
fonte

Respostas:

6

pelo meu entendimento, stipe_cache_size é o número de entradas de distribuição no cache de distribuição. As entradas de distribuição variam de sistema para sistema, mas são controladas principalmente pelo tamanho da página (padrão de 4096 bytes nos sistemas Linux) ( https://github.com/torvalds/linux/blob/master/drivers/md/raid5.c # L73 , esse arquivo tem toda a lógica do cache de distribuição, se você quiser ir mais fundo); portanto, em um RAID5 de 4 discos, um stripe_cache_size de 32768 custará 512 MB de RAM. tanto quanto sei, afeta apenas o raid5.

aqui estão duas referências de documentação: - https://github.com/torvalds/linux/blob/master/Documentation/md.txt#L603 - https://raid.wiki.kernel.org/index.php/Performance#Some_problem_solving_for_benchmarking

c0m4
fonte
1
Número de entradas do que, sua resposta é um pouco ambígua? :)
jwbensley
Presumo que também se aplicam para RAID6, certo
MrCalvin
Você quer dizer 32768 vai custar 512kB de RAM?
Jrwren # 9/19