Importa sulla quantità dell'area di swap nel sistema Linux


12

Importa se la quantità di un'area di swap in Linux è troppo piccola (ad esempio 1 Gb) e la RAM principale lo è 128Gb?

Dovremmo sempre impostare la quantità di area di scambio su una quantità doppia di RAM?

AGGIORNAMENTO:

Ciao, grazie a tutti per aver risposto a questa domanda. In effetti, ho questa domanda perché abbiamo riscontrato alcuni problemi quando si utilizza un piccolo sistema cluster. I problemi sono pubblicati in Qui . L'immagine seguente è alcune informazioni su alcuni dei computer in questo piccolo cluster.

information

Il MEMTOT è la quantità totale di RAM di quella macchina, il SWAPTO è la quantità totale di SW Area AP di quella macchina e il SWAPUS è la quantità utilizzata di area SWAP. Come mostrato in figura, l'utilizzo di SWAP è davvero ridotto.

Quando si tenta di risolvere i problemi postati in Qui , non siamo sicuri se la quantità di area SWAP sia troppo piccola, il che è giusto 1Gb relativo a 128Gb, come mostrato in figura. Quindi, ho questa domanda. Mi dispiace non aver inserito tutte le informazioni di base nella versione originale di questo post. Prima di ciò, abbiamo anche pensato che se la quantità di RAM fosse grande, potremmo impostare la quantità di SWAP piccola. Abbiamo provato a impostare lo SWAP di c0148 essere 16Gb, il problema sembra essere nessuno (Forse dovremmo prendere questa conclusione dopo aver osservato i loro stati per molto tempo).

Non siamo professionisti sul sistema Linux, e non siamo riusciti a spiegare perché questo è successo. È probabile che si tratti di un sistema cluster e SGE sta gestendo le risorse di ciascuna macchina e deve disporre di una quantità relativamente ampia di SWAP poiché tale macchina può essere utilizzata da molti lavori inviati da molti utenti.

Inoltre, se impostiamo la quantità di SWAP troppo grande, anche gli altri problemi che causeremmo sarebbero degni di considerazione.


1
Se hai 128 GB di RAM e inizi a cambiare, quel sistema è probabilmente fuori controllo e comunque morto. Io, personalmente, probabilmente eseguirò quel server senza scambiare affatto. L'OOMKiller dovrebbe occuparsi di qualsiasi processo di fuga prima di esaurire la memoria provoca un arresto anomalo e l'arresto è più rapido da risolvere comunque.
Ryan Gooler

1
Quale sarebbe - cosa? Qualche mega di materiale da init? Qualche memoria cache che verrà lanciata non appena qualcosa in realtà ha bisogno della ram? Se la tua macchina ha bisogno di scambiare la memoria per funzionare, è sovraccaricata e deve essere comunque ridimensionata.
Ryan Gooler

1
@Ryan Gooler: se stai facendo simulazioni scientifiche, un processo che usa 128 Gb o più non è irragionevole.
jamesqf


1
@RyanGooler Abbastanza vero. Il mio punto è quello di aumentare lo scambio può consentire ai programmi di utilizzare più RAM fisica. Sono solo pochi MB ma è meglio di niente :)
Navin

Risposte:


19

Il kernel Linux ha un'impostazione per controllare la frequenza di utilizzo dello swap, chiamato swappiness, descritto a https://unix.stackexchange.com/questions/88693/why-is-swappiness-set-to-60-by-default .

Uno swap di zero significa che lo swap verrà utilizzato solo se il sistema esaurisce la memoria. Una swappiness di 100 forza i programmi per utilizzare lo scambio istantaneamente.

Ottimizza il tuo sistema come ti piace comportarti, ma avere 128 GB di RAM è molto improbabile che il tuo sistema esaurisca facilmente la memoria, quindi avere 2/4 GB di swap potrebbe essere sufficiente. Non è consigliabile, ma possibile, eseguire un sistema senza partizione di swap.

Penso che la regola dell'area di scambio sia il doppio della quantità di RAM non è aggiornata, ed è utile solo su sistemi che sono circa 1 GB di RAM e sono sempre al limite dell'utilizzo completo della RAM.


2
Durante l'impostazione swappiness a 0 sembra logico con una grande quantità di RAM, potrebbe essere meglio tenerlo come valore predefinito di 60: http://unix.stackexchange.com/a/88820/50687 .
A.L

1
C'è qualche grafico con modulo di swappiness da 0 a 100 su un asse e qualcos'altro sull'altro per dimostrare come ... lo swappiness dipende dal valore?
user1306322

Ciao, @ jcbermu, ho aggiornato il post, se conveniente, per favore controlla.
mining

5

Credo che la regola del doppio sia obsoleta. Le nostre workstation hanno una RAM da 16 GB, di solito ne usiamo solo il 25% e difficilmente usiamo oltre il 50%. Quindi, per i nostri scopi, non utilizziamo alcuno scambio.

Dal momento che devi decidere quanto swap creare, ed è teorico che qualsiasi numero che scegli non sarà abbastanza a un certo punto, allora perché non scegliere 0? Oppure - perché non installare solo più RAM?

Credo che questa sia una decisione molto personale basata sul modo in cui verrà utilizzato il computer e sulla quantità di RAM disponibile.


Ciao, @gjcamnn, grazie per aver risposto. Ho aggiornato il post, se conveniente, si prega di controllare.
mining

0

A meno che non si eseguano calcoli che consumano memoria, non è necessario lo swap (ma è meglio avere una partizione di swap piccola). Ma avendo scambiato & gt; ram è necessario quando si intende usare la sospensione su disco.


Ciao, @ustp, grazie per aver risposto. Ho aggiornato il post, se conveniente, si prega di controllare.
mining
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.