cachestat, jedna z nowości, które zostaną zaprezentowane w Linuksie 6.5

Tux, maskotka jądra Linuksa

Jądro Linux jest kręgosłupem systemów operacyjnych Linux (OS) i jest podstawowym interfejsem między sprzętem komputera a jego procesami.

W zeszłym tygodniu rozpoczął pracę nad jaka będzie następna wersja jądra Linux 6.5 i od tego czasu niektóre z najistotniejszych zmian już zaczęły być ogłaszane które zostaną wprowadzone w następnym wydaniu jądra.

Chodzi o to, że na przykład zintegrowano już dużą liczbę ulepszeń i zmian, takich jak obsługa równoległego rozruchu procesora Dążąc do znacznego skrócenia czasu uruchamiania jądra, zmiany AMD skrupulatnie rozwiązują problemy z zawieszaniem/wznawianiem systemu, wraz z ulepszeniami systemów plików, wirtualizacji i nie tylko.

Spośród ogłoszonych zmian omówimy jedną z nich w tym artykule, o której wspomniano, że została już uwzględniona w bazie kodu budującej jądro Linuksa 6.5 i została zintegrowana z implementacją nowe wywołanie systemowe „cachestat”.

Ta seria poprawek wprowadza nowe wywołanie systemowe, cachestat, które podsumowuje statystyki pamięci podręcznej stron (liczba stron w pamięci podręcznej strony zaznaczone do przepisania, strony wykluczone itp.) pliku w pliku a określony zakres bajtów. Zawiera również zestaw autotestów, który testuje niektóre typowe zastosowanie.

O cachestacie

stan pamięci podręcznej to nowe wywołanie systemowe, które umożliwia programom działającym w przestrzeni użytkownika zapytanie o bardziej szczegółowe statystyki pamięci podręcznej strony po stronie jądra. W związku z tym ma na celu rozszerzenie już istniejącego wywołania systemowego mincore, które służy do określania, czy strony są obecne w pamięci, wywołanie cachestat pozwala na bardziej szczegółowe statystyki pamięci podręcznej stron i wskazuje na większą skalowalność.

Wspomina się, że obecnie pamięć podręczna strony jest zwykle największym konsumentem pamięci dlatego metody jądra, które go obsługują, mają duży wpływ na wydajność. W związku z tym istnieje bogaty interfejs do rozszerzania tych metod za pomocą fadvise i rodziny synchronizacji.

Wywołanie systemowe cachestat() wysyła informację o liczbie przechowywanych stron zapisane w pamięci podręcznej, brudne strony, eksmitowane strony, niedawno eksmitowane strony i strony zaznaczone do przepisania.

Podane statystyki dla plików pozwalają podejmować trafniejsze decyzje dotyczące pracy z wejściami/wyjściami które przechodzą przez VFS, oparte nie tylko na abstrakcyjnym algorytmie, ale także uwzględniające charakterystykę konkretnego systemu w określonym czasie.

Obecnie nie ma dobrego sposobu na sprawdzenie stanu strony dużej pamięci podręcznej zestawy plików i drzewa katalogów. Jest mincore(), ale źle się skaluje:
jądro zapisuje dużą ilość danych bitmapowych, które musi mieć przestrzeń użytkownika dodaj go, gdy użytkownik tak naprawdę nie dba o informacje na stronie
Następnie. Użytkownik musi również mmmapować i zwalniać każdy plik na bieżąco przez cały czas, co również może być dość powolne.

o strMożliwe przypadki użycia funkcji cachestat() przez aplikacjei wymienić następujące:

  • Harmonogram zapytań w DBMS będzie w stanie zdecydować, czy wykonać skanowanie indeksu, czy bezpośrednio odczytać dane z tabeli na podstawie stanu indeksu tabeli w pamięci podręcznej strony.
  • Szczegółowa i zależna od obciążenia obsługa wypełniania pamięci podręcznej stron i operacji we/wy (na przykład zanieczyszczone strony/strony oznaczone do przepisania), zmiana częstotliwości synchronizacji, od bardzo częstej przy niewielkim obciążeniu do impulsowej podczas skoków obciążenia.
  • Możliwość bardziej wizualnej prezentacji oraz wygodne wyświetlanie informacji o wykorzystaniu pamięci w przypadku dużych plików/katalogów, podobnie jak narzędzie „du” umożliwia wyświetlanie wykorzystania miejsca na dysku.
  • Łatwiejsze rozwiązywanie problemów i debugowanie leniwych zapisów w przypadku problemów z wydajnością.

W końcu jeśli chcesz dowiedzieć się więcej na ten temat, możesz sprawdzić szczegóły w następujący link.