Linux переполнена память

7904
Doddy

Я изучал чрезмерное использование памяти в Linux /proc/sys/vm/overcommit_memory, и я прочитал несколько статей, которые не говорят то же самое.

Этот документ под заголовком «Движение в неправильном направлении», продолжает: «значения 1: делать overcommit и 0 (по умолчанию): не», но затем в следующих нескольких строках он упоминает среди аналогичных то, что это на самом деле не так, и что 0 означает «угадать, насколько чрезмерное обязательство разумно». Это означает, что переполнение памяти не отключается при использовании значения 0, верно?

В нем также говорится, что 1 означает «никогда не отказывать ни в каком malloc ()», а 2 означает «быть точным в отношении чрезмерной передачи - никогда не фиксировать виртуальное адресное пространство, превышающее пространство подкачки плюс часть overcommit_ratio физической памяти».

Журнал Red Hat, с другой стороны, заявляет: «если значение равно 0, то ядро ​​проверяет, достаточно ли памяти для предоставления запроса памяти для вызова malloc из приложения. Если памяти достаточно, то запрос удовлетворяется. В противном случае он отклоняется и код ошибки возвращается в приложение. " Это звучит так же, как отключение overcommit.

«Если значение установлено в 1, то ядро ​​выделяет ресурсы, превышающие объем физической оперативной памяти, и выполняет обмен в системе в соответствии со значением overcommit_ratio .... Если значение в этом файле равно 2, ядро ​​разрешает все выделения памяти независимо от текущего состояния выделения памяти. " С точки зрения значений 1 и 2, это противоположно тому, что сказал предыдущий документ, верно?

Кто-нибудь знает, что на самом деле правильно, и можно ли «отключить» сверхкоммит?

11
Забыли об этом! Извини за это. Doddy 8 лет назад 0

1 ответ на вопрос

8
jlliagre

В журнале Red Hat 1 и 2 поменялись местами. Остерегайтесь ошибок, которые могут помешать отключению чрезмерной передачи для работы, подобной этой: https://bugs.launchpad.net/ubuntu/+source/glibc/+bug/345601

Правда. См. Также последний комментарий на http://www.saltwebsites.com/2012/install-redis-245-service-centos-6, который подтверждает это. Fletch 12 лет назад 0

Похожие вопросы