Instrukcja obsługi opcji „barierowej” to:
bariera = 0 / bariera = 1
To wyłącza / włącza stosowanie barier zapisu w kodzie jbd. Barrier = 0 wyłącza, bariera = 1 włącza (domyślnie). Wymaga to również stosu we / wy, który może obsługiwać bariery, a jeśli jbd dostanie błąd przy zapisie bariery, ponownie wyłączy bariery z ostrzeżeniem. Bariery zapisu wymuszają prawidłowe porządkowanie zapisów dziennika na dysku, dzięki czemu buforowanie zapisu na dyskach niestabilnych jest bezpieczne w użyciu, z pewnym ograniczeniem wydajności. Jeśli dyski są zabezpieczone bateryjnie w taki czy inny sposób, wyłączenie barier może bezpiecznie poprawić wydajność.
Ale nie wiem, co znaczy zdanie „ prawidłowe porządkowanie dzienników na dysku ”.
Załóżmy normalne zamówienie - dziennik 1, dane 1; dziennik 2, dane 2.
Które z poniższych wyników zamówienia wystąpią, jeśli ustawię barrier=0
?
- dziennik 2, dane 2; dziennik 1, dane 1;
- dane 1, dziennik 1; dane 2, dziennik 2.
barrier=1
i działa dla mnie wystarczająco szybko. Chyba że robisz naprawdę ciężkie rzeczy, zostawiłbym to. Masz bufory pamięci RAM, więc rzeczy będą zapisywane, kiedy będzie to możliwe, bez spowolnienia aplikacji. I bardzo małe opóźnienie w zapisywaniu na dysk. Jeśli chcesz zobaczyć, jak bardzo bufory pamięci RAM przyspieszają, dodaj synchronizację = 1 do katalogu domowego i spróbuj użyć systemu przez dzień lub dwa.Odpowiedzi:
Większość współczesnych systemów plików to systemy plików z kronikowaniem, co oznacza, że śledzą zmiany, które nie zostały jeszcze zapisane na dysku w wewnętrznej strukturze danych zwanej kroniką. W przypadku awarii dziennik zostanie odtworzony, aby upewnić się, że wszystkie zapisy przebiegły pomyślnie, co zapobiega uszkodzeniu plików.
Gdy faktycznie zapisujesz dane na dysk, pamięć podręczna zapisu ponownie uporządkuje zapisy, aby spróbować zmaksymalizować przepustowość, ale musi upewnić się, że rzeczywiste dane pliku są zapisywane na dysku przed metadanymi, aby upewnić się, że w przypadku awarii wystąpi metadane nie będą nieaktualne z danymi.
Problem polega na tym, że wiele dysków ma własne pamięci podręczne, które również mogą porządkować zapisy. Niektóre systemy plików zakładają, że tak się stanie i zmuszą dysk do opróżnienia pamięci podręcznej w niektórych punktach, aby temu zapobiec, i są nazywane
write barriers
np. Ext4 i Linux w ogóle.W przypadku nowoczesnych dysków poświęcenie wydajności w tym zakresie jest jednak znikome i nie należy wyłączać barier zapisu, chyba że jest to absolutnie konieczne.
źródło
Z tego artykułu LWN :
źródło