Linux; Co to jest stripe_cache_size i do czego służy?

10

Obecnie mdadmbuduję programową macierz RAID pod Linuksem za pomocą narzędzia i przeczytałem kilka artykułów, które opisują, jak zwiększyć wartość stripe_cache_size dla tej macierzy RAID i jak obliczyć odpowiednią wartość dla stripe_cache_size.

Zwiększyłem mój do 16384 i moja obecna szybkość synchronizacji na nowej macierzy RAID5 w / proc / mdstat wzrosła z 71065 K / s do 143690 K / s (podwojona!), Co jest dobrą wiadomością. Widzę również dopasowanie i oczekiwany wzrost wykorzystania pamięci RAM, jednak nie mogę znaleźć żadnej dokumentacji dotyczącej tego, co to ustawienie działa i jak działa.

Wydaje się, że jest to pewnego rodzaju pamięć podręczna dla macierzy RAID, która istnieje w pamięci RAM. To wszystko, co mogę powiedzieć z jego nazwy i efektów, które widzę po zmianie. Czy istnieje oficjalna dokumentacja „Linux” dla tego ustawienia i opisu?

jwbensley
źródło

Odpowiedzi:

6

z mojego rozumienia rozmiar stipe_cache_size to liczba wpisów pasków w pamięci podręcznej pasków. Wpisy pasków różnią się w zależności od systemu, ale w większości są kontrolowane przez rozmiar strony (domyślnie 4096 bajtów w systemach Linux) ( https://github.com/torvalds/linux/blob/master/drivers/md/raid5.c # L73 , ten plik ma całą logikę pamięci podręcznej pasków, jeśli chcesz kopać głębiej), więc w 4-dyskowym RAID5 rozmiar stripe_cache_s 32768 będzie cię kosztował 512 MB pamięci RAM. o ile wiem, wpływa to tylko na raid5.

oto 2 odniesienia do dokumentacji: - 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
źródło
1
Liczba wpisów na co, twoja odpowiedź jest trochę niejednoznaczna? :)
jwbensley
Zakładam, że dotyczy to również RAID6, prawda
MrCalvin
Czy masz na myśli, że 32768 będzie kosztować 512 kB pamięci RAM?
jrwren