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.