Zrozumienie VM.Zakochanie

Zrozumienie VM.Zakochanie
Kernel Linux to raczej złożony oprogramowanie z długą listą komponentów, takich jak moduły, interfejsy i pliki konfiguracyjne [1]. Komponenty te można skonfigurować z określonymi wartościami, aby osiągnąć pożądane zachowanie lub sposób działania komponentu [2,3,4]. Następnie ta konfiguracja bezpośrednio wpływa zarówno na zachowanie, jak i wydajność systemu Linuksa jako całości.

Bieżące wartości jądra Linux i jego komponentów są udostępnione za pomocą specjalnego interfejsu - katalogu /PROC [5]. Jest to wirtualny system plików, w którym pojedyncze pliki są wypełnione wartościami w czasie rzeczywistym. Wartości reprezentują stan rzeczywistego, w którym znajduje się jądro Linux. Możesz uzyskać dostęp do poszczególnych plików w katalogu /PROC za pomocą polecenia CAT w następujący sposób:

$ cat/proc/sys/net/core/somaxconn
128
$

Jeden z tych parametrów jądra nazywa się VM.Zakochanie. „Kontroluje względną wagę nadaną wymianie pamięci wykonawczej, w przeciwieństwie do zrzucania stron pamięci z pamięci podręcznej strony systemowej” [6]. Zaczynając od zwolnienia jądra Linux 2.6 Ta wartość została wprowadzona. Jest przechowywany w pliku/proc/sys/vm/squapiness .

Za pomocą swap

Zastosowanie swap [6] było istotną częścią stosowania mniejszych maszyn Unix na początku lat 90. Jest to nadal przydatne (jak posiadanie zapasowej opony w pojeździe), gdy paskudne wycieki pamięci zakłócają twoją pracę. Maszyna zwolni, ale w większości przypadków nadal będzie użyteczne, aby zakończyć przypisane zadanie. Bezpłatni programiści oprogramowania robią świetne postępy w celu zmniejszenia i wyeliminowania błędów programu, więc przed zmianą parametrów jądra rozważył najpierw zaktualizowanie nowszej wersji aplikacji i powiązanych bibliotek.

Jeśli wykonasz wiele zadań, nieaktywne zadania zostaną zamienione na dysk, dzięki. Edycja wideo i inne aplikacje zużywające dużą pamięć często mają zalecane ilości pamięci i miejsca na dysku. Jeśli masz starszą maszynę, która nie może mieć aktualizacji pamięci, udostępnienie większej wymiany może być dla Ciebie dobrym tymczasowym rozwiązaniem (patrz [6], jak dowiedzieć się więcej o tym).

Zmienanie może nastąpić na osobnej partycji lub w pliku zamiany. Partycja jest szybsza i faworyzowana przez wiele aplikacji bazy danych. Podejście pliku jest bardziej elastyczne (patrz pakiet DPHYS-SWAPFILE w Debian GNU/Linux [7]). Posiadanie więcej niż jedno urządzenie fizyczne do zamiany pozwala jej jądro Linux wybrać urządzenie, które jest najszybciej dostępne (niższe opóźnienie).

Vm.Zakochanie

Domyślna wartość VM.Zachwiasta wynosi 60 i reprezentuje procent wolnej pamięci przed aktywacją wymiany. Im niższa wartość, tym mniejsza jest zamiana, a im więcej stron pamięci jest przechowywanych w pamięci fizycznej.

Wartość 60 jest kompromisem, który działa dobrze dla nowoczesnych systemów komputerów stacjonarnych. Zamiast tego mniejsza wartość jest zalecaną opcją dla systemu serwera. Jak podkreśla instrukcja strojenia Red Hat Performance [8], zaleca się mniejszą wartość zamiatania dla obciążeń bazowych. Na przykład w przypadku baz danych Oracle Red Hat zaleca wartość wymiotowania 10. Natomiast w przypadku baz danych MariaDB zaleca się ustawienie wymiany na wartość 1 [9].

Zmiana wartości bezpośrednio wpływa na wydajność systemu Linux. Te wartości są zdefiniowane:

* 0: swap jest wyłączony
* 1: Minimalna ilość zamiany bez całkowitego wyłączania
* 10: Zalecana wartość w celu poprawy wydajności, gdy w systemie istnieje wystarczająca pamięć
* 100: Agresywna zamiana

Jak pokazano powyżej, polecenie CAT pomaga odczytać wartość. Również polecenie SysCtl daje ten sam wynik:

# Sysctl Vm.Zakochanie
Vm.Swappiness = 60
#

Należy pamiętać, że polecenie SYSCTL jest dostępne tylko dla użytkownika administracyjnego. Aby ustawić wartość tymczasowo ustaw wartość w systemie plików /proc w następujący sposób:

# echo 10>/proc/sys/vm/swappiness

Jako alternatywę możesz użyć polecenia Sysctl w następujący sposób:

# sysctl -w vm.Swappiness = 10

Aby ustawić wartość na stałe, otwórz plik /etc /sysctl.Conf jako użytkownik administracyjny i dodaj następujący wiersz:

Vm.Swappiness = 10

Wniosek

Coraz więcej użytkowników Linux działa maszyn wirtualnych. Każdy z nich ma własne jądro oprócz hiperwizora, który faktycznie kontroluje sprzęt. Maszyny wirtualne mają dla nich utworzone dyski wirtualne, więc zmiana ustawienia wewnątrz maszyny wirtualnej będzie miała nieokreślone wyniki. Eksperymentuj najpierw ze zmianą wartości jądra hiperwizora, ponieważ faktycznie kontroluje sprzęt w twoim komputerze.

W przypadku starszych maszyn, których nie można już zaktualizować (mieć już maksymalną pamięć obsługiwaną), możesz rozważyć umieszczenie małego dysku solidnego w maszynie, aby użyć go jako dodatkowego urządzenia zamiany. Oczywiście stanie się to eksploracją, ponieważ komórki pamięci zawodzą z wielu zapisów, ale może przedłużyć żywotność maszyny na rok lub dłużej o bardzo niski koszt. Niższe opóźnienie i szybkie odczyty zapewnią znacznie lepszą wydajność niż zamiana na zwykły dysk, dając pośrednie wyniki RAM. Powinno to pozwolić na użycie nieco niższej maszyny wirtualnej.Wartości zamiatania dla optymalnej wydajności. Będziesz musiał eksperymentować. Urządzenia SSD szybko się zmieniają.

Jeśli masz więcej niż jedno urządzenie wymiany, rozważ uczynienie go urządzeniem do rajdowym, aby pasować do danych na dostępnych urządzeniach.

Możesz wprowadzić zmiany w zamiataniu bez ponownego uruchomienia maszyny, co jest główną przewagą w stosunku do innych systemów operacyjnych.

Staraj się dołączyć tylko usługi potrzebne do swojej firmy. Spowoduje to zmniejszenie wymagań pamięci, poprawi wydajność i zapewni wszystko.

Ostateczna uwaga: dodasz ładowanie do urządzeń wymiany. Będziesz chciał monitorować ich temperatury. Przegrzany system obniży częstotliwość procesora i zwolni.

Podziękowanie

Autor chciałby powiedzieć specjalne podziękowania dla Gerold Rupprecht i Zoleka Hatitongwe za ich krytyczne uwagi i komentarze podczas przygotowywania tego artykułu.

Linki i referencje

* [1] Samouczek jądra Linux dla początkujących, https: // Linuxhint.COM/LINUX-KRENLEL-TUTORIAL-BEGINERS/

* [2] Derek Molloy: Pisanie modułu jądra Linux - Część 1: Wprowadzenie, http: // derekmolloy.IE/pisanie-linux-koduł-moduł-czter

* [3] Derek Molloy: Pisanie modułu jądra Linux - Część 2: urządzenie postaci, http: // derekmolloy.IE/pisanie-linux-kod-moduł-część-2-a-cech

* [4] Derek Molloy: Pisanie modułu jądra Linux - Część 3: przyciski i diody LED, http: // derekmolloy.IE/Kernel-GPIO-Programming-Buttons-i-LEDS/

* [5] Frank Hofmann: polecenia do zarządzania pamięcią Linux, https: // linuxhint.COM/Commands-to-Manage-Linux-Memory/

* [6] Frank Hofmann: Linux jądro Zarządzanie pamięcią: przestrzeń wymiany, https: // Linuxhint.com/Linux-pamięć-zarządzanie-swap-space/

* [7] Pakiet DPHYS-SWAPFILE dla Debian GNU/Linux, https: // pakiety.Debian.org/elasty/dphys-swapfile

* [8] Podręcznik strojenia wydajności Red Hat, https: // dostęp.czerwony kapelusz.com/dokumentacja/en-us/red_hat_enterprise_linux/6/html/wydajność_tuning_guide/s-memory

* [9] Konfigurowanie Mariadb, https: // mariaDB.com/kb/en/biblioteka/konfigurowanie płynów/