Devo interrompere completamente swap per il server web di linux?

Recentemente il mio amico mi ha detto che è una buona idea distriggersre il swap su server web di linux con abbastanza memory. Il mio server ha 12 GB e attualmente utilizza 4 GB (non contando la cache e buffer) sotto il carico di picco.

Il suo argomento era che in una situazione normale il server non utilizzerà mai tutta la sua RAM in modo che l'unico modo per incontrare la situazione OutOfMemory è dovuto a qualche bug / ddos ​​/ etc. Quindi, nel caso in cui il swap sia distriggersto, il sistema esaurirà di memory che alla fine potrebbe bloccare la memory hogging del programma (probabilmente il process del server web) e probabilmente alcuni altri processi. Nel caso in cui il swap sia acceso, si consumerà sia la RAM che lo scambio e, alla fine, si verificherà lo stesso incidente, ma prima di esso si spariranno processi cruciali come sshd per scambiare e inizieranno a fare molte operazioni di swap con conseguente grande rallentamento. In questo modo, quando il sistema ddos ​​potrebbe andare in una condizione completamente inutilizzabile a causa di enormi ritardi e probabilmente non sarò in grado di accedere e uccidere il process di webserver o negare tutto il traffico in entrata (tutti tranne ssh).

È giusto? Mi manca qualcosa (come il fatto che la partizione di swap sia molto utile in qualche modo anche se ho abbastanza RAM)? Devo spegnere?

  • Sophos accede a un server web dal web
  • Monitoraggio server basato su Web
  • NAT manuale su Checkpoint (Redirect tutte le richieste http a un server web locale)
  • Siti multipli di IIS - Nuovo sito web e port vs Nuove directory virtuali
  • Creazione di una pagina di errore fallback per nginx quando la directory principale non esiste
  • IIS7 centinaia di connessioni in CLOSE_WAIT
  • Come posso ottimizzare Apache per utilizzare 1 GB di RAM sul mio sito web?
  • Come faccio a rendere sicuro il webmin?
  • 8 Solutions collect form web for “Devo interrompere completamente swap per il server web di linux?”

    Vorrei dire che dipende dal tuo caso d'uso e il resto delle risposte hanno coperto questo abbastanza bene. 4G di swap sono, dopo tutto, un modo economico per comprare una certa sicurezza. E ritengo che questa economia è ciò che sta facendo la gente non vuole spegnere.

    Ma lasciami rispondere con una domanda retorica. Se il denaro non è un problema e hai una scelta tra due sisthemes – uno con 12G di RAM e 4G di swap e un altro con 16G di RAM e senza scambio – quale scegliere? Purtroppo la maggior parte delle persone avrebbe ancora risposto che avrebbero scelto 16G di RAM e ancora aggiungere 4G di swap, che manca il mio punto.

    E su un'altra nota, personalmente trovo un sistema swappy peggiore di un sistema in crash. Un sistema arrestato innescarebbe un server di backup in modalità standby per prendere molto tempo prima. E in un'triggerszione triggers (o con un carico bilanciato) un sistema crashed sarebbe stato tolto di rotazione molto prima. Una vittoria per il sistema no-swap.

    NON è consigliabile distriggersre il swap anche se si ha abbastanza memory. Se il tuo server richiede più memory e non l'ha ottenuto, si blocca. Tuttavia, questo può essere impedito (in una certa misura) quando si dispone di un'area di swap.

    Sì, le performance del tuo server diminuiranno quando si utilizza il swap, ma alless sarà operativo e accessibile. Quindi, è ansible pianificare l'aggiunta di più memory se necessario se il server inizia a utilizzare lo swap.

    Ho trovato questa pagina parlando di swap. Date un'occhiata alla sezione 3.

    Invece di spegnere lo swap, è ansible controllare la swapiness .

    No, non è una buona idea. 'qualche process è diventato pazzo' significa che dovresti aver già chiamato in modo proattivo

    ulimit -d

    a o prima del tempo di creazione del process per impostare un limite per la memory del segmento dei dati di process – E forse un limite al numero di thread

    ulimit -T

    per process. ulimit è il tuo amico. Si prega di considerare la lettura di una delle guide di sintonia della memory prima di spegnere lo swap. È inoltre ansible modificare il parame kernel in alcune cose per cercare di gestire attacchi DOS o programmi danneggiati.

    Guardalo in questo modo: la memory totale del sistema è RAM + swap. Se si dispone di 12 GB di swap, è sufficiente tagliare la capacità del sistema VM a metà disabilitando il swap. Ctriggers idea. Questo non è un dibattito, in realtà, è semplicemente leggere quello che altre persone hanno conosciuto da precedenti esperienze negative per anni. È ansible che il tuo amico abbia bisogno di fare una lettura.

    Come altri hanno detto, è ansible arrestare efficacemente il server utilizzando il swap tranne quando è assolutamente necessario agitando il parametro "Swappiness". Questo controlla quanto aggressivamente il kernel scambierà le pagine di memory.

    Puoi vedere come è attualmente impostato su:

     cat /proc/sys/vm/swappiness 

    e puoi modificarla "live" con (come root):

     # echo "10" > /proc/sys/vm/swappiness 

    e per renderlo persistente, aggiungere quanto segue a /etc/sysctl.conf:

     vm.swappiness=10 

    Un'altra buona cosa che puoi fare è swap in RAM usando zRAM. Credo che questa sia una grande idea! Per le performance, è come non avere il swap affatto, ma anche impedisce gli arresti quando il sistema è molto caricato!

    Guarda questo:

    http://www.webupd8.org/2011/10/increased-performance-in-linux-with.html

    La mia esperienza: in questa macchina in cui scrivo ora, ho distriggersto il swap, perché ho 4 GB di RAM (nel 2009 era molto!). Ho provato solo un paio di problemi, uno di loro è stato aperto come 127 immagini allo stesso tempo per errore!

    MA .. questa è una workstation e posso permettermi di riavviare se si blocca. In un server penso sia meglio scambiare e lo swap-in-RAM mi suona bene.

    Come è già stato reso abbondantemente chiaro, questa non è una buona idea. Se non altro, lo swap ti dà un certo spazio di respiro quando le cose non sono abbastanza normali. ad esempio su un sistema che guardo, che normalmente ha solo pochi visitatori al giorno, c'era un grosso picco di traffico causato da una pagina in una rivista. Ciò ha permesso al server web di utilizzare lo spazio di swap per la prima volta da quando è stato commissionato. Senza che lo spazio di swap non sarebbe andato molto bene.

    Non è una buona idea. È ansible definire due file di scambio con priorità diversa. Un più piccolo che è in uso e uno più grande che verrà utilizzato nel caso il primo riempie.

    Anche la vm.swappiness può aiutarti a controllare in modo aggressivo lo scambio del disco.

    Se inserisci uno 0 a vm.swappiness che non significa necessariamente che il sistema non scambia. E 'un parametro per determinare la tendenza aggressiva di Kerne a scambiare, ma non spegne lo scambio.

    Ancora una volta, lo scambio non è male, ma è sconvolgente. Date un'occhiata ai dati di sysstat e che dovrebbe dare un puntatore abbastanza buono su di esso.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.