GNU/Linux >> Linux Esercitazione >  >> Linux

Dove va la memoria rimanente di vm.overcommit_ratio?

Cosa farà il sistema con il restante 20%?

Il kernel utilizzerà la memoria fisica rimanente per i propri scopi (strutture interne, tabelle, buffer, cache, qualunque cosa). L'impostazione dell'overcommit della memoria gestisce le prenotazioni della memoria virtuale dell'applicazione userland, il kernel non utilizza la memoria virtuale ma quella fisica.

Perché questo parametro è obbligatorio in primo luogo?

Il overcommit_ratio Il parametro è una scelta di implementazione progettata per impedire alle applicazioni di riservare più memoria virtuale di quella che sarà ragionevolmente disponibile per loro in futuro, ovvero quando accedono effettivamente alla memoria (o almeno provano a farlo).

Impostazione overcommit_ratio al 50% è stato considerato un valore predefinito ragionevole dagli sviluppatori del kernel Linux. Presuppone che il kernel non avrà mai bisogno di utilizzare più del 50% della RAM fisica. Il tuo chilometraggio può variare, il motivo per cui è sintonizzabile.

Perché non dovrei impostarlo sempre al 100%?

L'impostazione al 100% (o qualsiasi valore "troppo alto") non disabilita in modo affidabile l'overcommit perché non puoi presumere che il kernel utilizzerà lo 0% (o troppo poco) di RAM.

Non impedirà alle applicazioni di bloccarsi in quanto il kernel potrebbe comunque prevalere su tutta la memoria fisica che richiede.


L'impostazione del rapporto su 100% non riserverà spazio per pagine con file di backup o allocazioni all'interno del kernel come codice del kernel, buffer di rete, ecc.

Le strutture interne al kernel verranno allocate a prescindere, causando un overcommit. Sono generalmente limitati individualmente (ad esempio, c'è un'impostazione per i buffer di rete). Non credo che ci sia un limite complessivo del 50%, anche se un limite complessivo è qualcosa su cui si è lavorato allo scopo di ospitare i container.

Le pagine supportate da file sono quelle da cui di solito esegui il codice dello spazio utente, quindi hai bisogno di spazio anche per quello.


Linux
  1. Analizza il kernel Linux con ftrace

  2. Dov'è la funzione itoa in Linux?

  3. Come controllare HZ nel terminale?

  4. Dov'è il comando gem in RHEL6?

  5. Come posso riservare un blocco di memoria dal kernel Linux?

Segmentazione della memoria di Linux

Come monitorare l'utilizzo della memoria dedicata al kernel?

Dove sono documentati i contenuti di /proc del kernel Linux?

Dove sono documentati i parametri del kernel Linux presenti in /proc/sys?

Quanta RAM utilizza il kernel?

A che serve avere una parte del kernel nello spazio di memoria virtuale dei processi Linux?