Я изучал перерасход памяти в Linux с помощью /proc/sys/vm/overcommit_memory
, и я прочитал несколько статей, в которых не говорится то же самое.
это doc, под заголовком "движение в неправильном направлении", далее говорится:" значения 1: делать overcommit и 0 (по умолчанию): не", но затем в следующих нескольких строках он упоминает, среди прочего, что это на самом деле не так, и что 0 означает"угадать, сколько overcommitment разумно". Это означает, что память overcommit не отключено при значении 0, верно?
он также говорит, что 1 означает " никогда не отказываться от malloc ()", а 2 означает " быть точным в отношении overcommit - никогда не фиксировать виртуальное адресное пространство больше, чем пространство подкачки плюс часть overcommit_ratio физической памяти."
журнал Red Hat, С другой стороны, гласит: "если значение равно 0, то ядро проверяет, достаточно ли свободной памяти для предоставления памяти запрос на вызов malloc из приложения. Если памяти достаточно, то запрос выполняется. В противном случае она будет отклонена и приложению будет возвращен код ошибки."этой очень похоже на отключение перерасход.
" Если значение равно 1, то ядро выделяет больше объема физической памяти и выполняет подкачку в системе, чем определено значением overcommit_ratio.... Если параметр в этом файле равен 2, ядро разрешает все выделения памяти, независимо от текущего состояния памяти."С точки зрения значений 1 и 2, это противоположно тому, что сказал предыдущий документ, верно?
кто-нибудь знает, что на самом деле правильно, и если можно "отключить" overcommit?