Linux przeciąża pamięć


12

Przyglądałem się pamięci zbytnio w Linuksie /proc/sys/vm/overcommit_memoryi przeczytałem kilka artykułów, które nie mówią tego samego.

Ten dokument , pod nagłówkiem „Idąc w złym kierunku”, mówi dalej: „wartości 1: wykonaj overcommit, a 0 (domyślnie): nie”, ale w następnych kilku wierszach wspomina o podobnych rzeczy, że tak naprawdę nie jest to prawdą, a 0 oznacza „zgadnij, ile rozsądnego zaangażowania jest uzasadnione”. Oznacza to, że nadpisywanie pamięci nie jest wyłączone przy użyciu wartości 0, prawda?

Mówi także, że 1 oznacza „nigdy nie odmawiaj żadnego malloc ()”, a 2 oznacza „bądź precyzyjny w kwestii nadkomitowania - nigdy nie przydzielaj wirtualnej przestrzeni adresowej większej niż przestrzeń wymiany plus ułamek wartości nadmiernej komendy pamięci fizycznej”.

Z drugiej strony magazyn Red Hat stwierdza: „jeśli wartość wynosi 0, jądro sprawdza, czy jest wystarczająca ilość wolnej pamięci, aby przyznać żądanie pamięci wywołaniu malloc z aplikacji. Jeśli jest wystarczająca ilość pamięci, wówczas żądanie zostało zaakceptowane. W przeciwnym razie zostanie odrzucone, a do aplikacji zostanie zwrócony kod błędu. ” To brzmi dokładnie jak wyłączenie overcommit.

„Jeśli wartość jest ustawiona na 1, jądro przyznaje przydziały powyżej ilości fizycznej pamięci RAM i zamienia w systemie zgodnie z definicją wartości overcommit_ratio .... Jeśli ustawienie w tym pliku wynosi 2, jądro zezwala na wszystkie przydziały pamięci , niezależnie od bieżącego stanu alokacji pamięci. ” Pod względem wartości 1 i 2 jest to przeciwieństwo tego, co powiedział poprzedni dokument, prawda?

Czy ktoś wie, co jest rzeczywiście poprawne i czy można „wyłączyć” nadmierne zaangażowanie?


Zapomniałem o tym! Przepraszam za to.
Doddy

Odpowiedzi:


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.