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

12

Я изучал чрезмерное использование памяти в 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, это противоположно тому, что сказал предыдущий документ, верно?

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

Doddy
источник
Забыли об этом! Прости за это.
Додди

Ответы:

8

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

jlliagre
источник
Правда. Смотрите также последний комментарий на saltwebsites.com/2012/install-redis-245-service-centos-6, который подтверждает это.
Флетч