Zamiana systemu Linux - dostosowywanie ustawień maszyny wirtualnej jądra

9

Zanim to przeczytasz, pamiętaj, że rozumiem zalety buforowania. Znam dogmat, że nieużywany baran jest zmarnowanym baranem.

To pytanie zaadaptowałem z poprzedniego pytania:

usuwanie pamięci podręcznej pamięci RAM systemu Linux

W tym pytaniu byłem ciekawy, jak dostosować sposób, w jaki mój serwer używa i buforuje pamięć RAM. System jest dość dynamiczny, więc uważam, że pliki w pamięci podręcznej tak naprawdę nie dają mi większych korzyści. Dodatkowo mamy na serwerze kod, który musi szybko uzyskiwać dostęp do dużej ilości pamięci RAM w krótkich okresach czasu w celu przetworzenia plików wideo i wierzę , że zobaczę korzyści z bezpośredniego przekazania pamięci RAM, a nie wyczyszczenia jej z pamięci podręcznej, a następnie wręczając to.

Chciałbym dowiedzieć się, czy ktoś z was ma doświadczenie w dostosowywaniu wartości domyślnej 60 w następującym pliku (tak się dzieje na serwerze Ubuntu):

/proc/sys/vm/swappiness  

A jeśli tak, jakie wpływy widziałeś. Jeśli zastąpię domyślną wartość 60 na 30, czy zobaczę mniej wymiany i znacznie więcej ponownego użycia przestarzałej pamięci podręcznej? Czy zbliżam się do 0 lub 100, aby zmniejszyć zamianę i zwiększyć ponowne wykorzystanie pamięci podręcznej?

Wreszcie, ktoś wie, dlaczego wartość domyślna jest ustawiona na 60?

UWAGA: Jeśli jest bliska 0, Linux woli przechowywać aplikacje w pamięci RAM i nie powiększać pamięci podręcznych. Jeśli jest blisko 100, Linux woli wymieniać aplikacje i powiększać pamięci podręczne tak bardzo, jak to możliwe. Domyślna wartość to 60. - Dzięki za poniższy link, 3dInfluence.

Patrick R.
źródło

Odpowiedzi:

6

Edycja: Przepisz odpowiedź, aby była krótsza i jaśniejsza Mam nadzieję :)

Naprawdę musisz zrozumieć, jak działa podsystem VM jako całość, aby zacząć dostrajać tunery lub może się okazać, że nie osiągniesz oczekiwanych rezultatów. Ten artykuł jest całkiem dobrym punktem wyjścia na temat tego, jak te ustawienia współpracują ze skośnym pulpitem.

Więcej na twoje pytanie. Swappiness kontroluje, kiedy podsystem maszyn wirtualnych odzyskuje strony tabeli przetwarzania poprzez ich odwzorowanie i stronicowanie, czyli zamianę. To dostrajanie polega na nakazaniu podsystemowi VM wyszukania stron do zamiany, gdy% pamięci zamapowanej na tabele stron procesu + wartość wymiany wynosi> 100. Ustawienie 60 spowoduje, że system zacznie stronicować stare strony ze strony procesu tabela, gdy zużywa ponad 40% pamięci systemu. Jeśli chcesz pozwolić swoim programom na użycie większej ilości pamięci kosztem pamięci podręcznej, musisz obniżyć wartość swapiness. Będziesz także chciał spojrzeć na / proc / sys / vm / min_free_kbytes i / proc / sys / vm / vfs_cache_pressure. Ponieważ będzie to również kontrolować, ile pamięci jest utrzymywane w rezerwie i jak agresywne jest buforowanie.

3dinfluence
źródło
@ 3dinfluence - Pracowałem nad tym artykułem, o którym wspomniałeś powyżej. Świetny zasób!
Patrick R
1
linuxinsight.com/proc_sys_vm_hierarchy.html poda zdanie lub dwa na temat tego, co robią każdy z tunerów. Ale informacje o tym, jak działa swapiness, otrzymałem z książki zatytułowanej „Dostrajanie wydajności dla serwerów Linux”
3dinfluence
+1 dzięki 3dinfluence. Jak dotąd ta książka była niezwykle edukacyjna.
Patrick R
To świetnie .... czy udało Ci się poprawić wydajność swojej aplikacji?
3dinfluence
Byłem w stanie poprawić wydajność. Odkryłem również, że następujące polecenie pomaga podczas tweekowania: # sysctl -w vm.swappiness = 40
Patrick R