Ho esaminato la memoria impegnandomi troppo a utilizzare Linux /proc/sys/vm/overcommit_memory
e ho letto alcuni articoli che non dicono la stessa cosa.
Questo documento , sotto l'intestazione "Andare nella direzione sbagliata", continua dicendo "valori 1: sovracomprimi e 0 (predefinito): non", ma poi nelle righe successive, menziona, tra simili cose che questo non è in realtà vero e che 0 significa "indovinare quanto sia eccessivo il sovraccarico". Ciò significa che l'overcommit della memoria non è disabilitato usando il valore 0, giusto?
Dice anche che 1 indica "non rifiutare mai malloc ()", con 2 che significa "sii preciso sull'overcommit - non commettere mai uno spazio di indirizzi virtuali più grande dello spazio di swap più una frazione di overcommit_ratio della memoria fisica".
La rivista Red Hat , d'altro canto, afferma "se il valore è 0, il kernel verifica se esiste memoria sufficiente per concedere una richiesta di memoria a una chiamata malloc da un'applicazione. Se c'è memoria sufficiente, allora la richiesta è stata concessa. In caso contrario, viene negata e un codice di errore viene restituito all'applicazione. " Questo suona esattamente come disabilitare l'overcommit.
"Se il valore è impostato su 1, il kernel concede allocazioni superiori alla quantità di RAM fisica e scambia nel sistema come definito dal valore overcommit_ratio .... Se l'impostazione in questo file è 2, il kernel consente tutte le allocazioni di memoria , indipendentemente dallo stato attuale di allocazione della memoria. " In termini di valori 1 e 2, questo è l'opposto di quello che diceva il documento precedente, giusto?
Qualcuno sa cosa è effettivamente corretto e se è possibile "disabilitare" l'overcommit?