SWAP (Mémoire virtuelle)

Questions diverses sur la sécurité informatique, la confidentialité, la législation etc.

Re: SWAP (Mémoire virtuelle)

Message par jdh » 21 Mars 2012 20:06

Un serveur LSTP est un serveur X qui admet des sessions créés par des utilisateurs distants qui trouvent un écran et lancent des applis.
C'est l'équivalent approximativement d'un serveur TSE sous Windows.

Le risque est d'une surcharge : un nouvel utilisateur peut fragiliser un équilibre atteint.
A ce moment, si le système swappe, il permettra de "rester en vie" : arrêt "propre" de session pour revenir à pas de swap.
L'intelligence artificielle n'est rien à côté de la stupidité naturelle.
jdh
 
Message(s) : 731
Inscription : 02 Nov 2011 00:36
Localisation : Nantes - Angers

Re: SWAP (Mémoire virtuelle)

Message par Franck78 » 21 Mars 2012 20:39

en sachant que de swapper fait ralentir (écriture sur disque dur)

Sachant qu'a partir de 100Mo, le temps de lecture et écriture devient démesuré (disons 1 seconde...), que le système est à bout de RAM et à allouer quelques petits blocs de 100Mo ou plus, le système est mort.
Il va accumuler les retards (de vrais retard cette fois), stopper en pleine action une tache pour servir ce swap. Le petit Go d'espace (en regard de 16/32/64 Gode ram) n'aura contribué à rien qu'a accélérer la mort du système.
Franck78
 
Message(s) : 525
Inscription : 11 Sep 2011 16:04
Localisation : France

Re: SWAP (Mémoire virtuelle)

Message par philippe_PMA » 21 Mars 2012 20:50

jdh a écrit :...
L'hibernation n'a pas grand chose à voir avec le mécanisme du swap.
...


Ouaif.

Et pourtant, lors de l'hibernation (aussi nommé suspend to disk) il faut bien sauvegarder cette RAM quelque part.
Et il se trouve que pour Linux c'est le SWAP qui a été choisi.

Il suffit de faire une recherche "hibernation SWAP" pour s'en convaincre.
Par exemple : https://help.ubuntu.com/community/SwapFaq
Code : Tout sélectionner
Hibernation (suspend-to-disk) The hibernation feature (suspend-to-disk) writes out the contents of RAM to the swap partition before turning off the machine. Therefore, your swap partition should be at least as big as your RAM size. The hibernation implementation currently used in Ubuntu, swsusp, needs a swap or suspend partition. It cannot use a swap file on an active file system.


Ou encore :http://www.slideshare.net/varunmahajan06/hibernation-linux-2629 slide 10.

Pour la route : http://www.mjmwired.net/kernel/Documentation/power/swsusp.txt.
philippe_PMA
 
Message(s) : 19
Inscription : 01 Nov 2011 23:39

Re: SWAP (Mémoire virtuelle)

Message par jdh » 21 Mars 2012 22:18

Je parlais de l'hibernation Windows ... (et elle n'a pas grand chose à voir avec le swap Windows).


Merci de me faire connaitre l'hibernation Linux (que je maitrise mal).

Le principe de l'hibernation est d'écrire le contenu de la mémoire + quelques informations de relance dans un fichier, et d'arrêter la machine.
Au redémarrage, on regarde si la machine a été arrêté pour hibernation, on lit le fichier et on démarre. Bien OK.

Si j'en crois ce lien https://www.linux.com/news/hardware/lap ... nder-linux
il est possible de choisir, au niveau du module, d'écrire la mémoire soit dans le swap (swap-writer) soit dans un fichier (file-writer).

Ecrire dans un fichier (comme Windows) parait le plus simple, parce qu'il laisse le swap sur disque en l'état.
L'écriture vers le swap suppose que le swap n'est pas utilisée et qu'il est d'une taille au moins égal à la mémoire vive.
(Je vois mal comment un système pourrait écrire sur le swap si le swap est déjà en cours lui-même d'utilisation ...)


2ième lien très intéressant, mais il existe des alternative à 'swsups' comme suspend2 ou pm-hibernate (pm-utils) ...
Je présume que le choix d'un système d'hibernation est un choix pour la distribution.
L'intelligence artificielle n'est rien à côté de la stupidité naturelle.
jdh
 
Message(s) : 731
Inscription : 02 Nov 2011 00:36
Localisation : Nantes - Angers

Re: SWAP (Mémoire virtuelle)

Message par philippe_PMA » 21 Mars 2012 23:11

jdh a écrit :Je parlais de l'hibernation Windows ... (et elle n'a pas grand chose à voir avec le swap Windows).

Et moi de Linux :D
jdh a écrit :...
Si j'en crois ce lien https://www.linux.com/news/hardware/lap ... nder-linux
il est possible de choisir, au niveau du module, d'écrire la mémoire soit dans le swap (swap-writer) soit dans un fichier (file-writer).

Je ne pense qu'il s'agisse de cela mais Linux permet d'avoir le SWAP dans une partition ou dans un fichier.
Et même plusieurs partitions / fichiers de SWAP sont possibles.
jdh a écrit :Ecrire dans un fichier (comme Windows) parait le plus simple, parce qu'il laisse le swap sur disque en l'état.
L'écriture vers le swap suppose que le swap n'est pas utilisée et qu'il est d'une taille au moins égal à la mémoire vive.
(Je vois mal comment un système pourrait écrire sur le swap si le swap est déjà en cours lui-même d'utilisation ...)

Je ne vois pas le problème à utiliser le swap pour l'hibernation (qu'il soit en partition ou fichier) puisque justement l'hibernation va tout arréter, donc le swap ne va plus être utilisé pour son usage habituel.
Pour des informations plus précises regarder ici http://www.mjmwired.net/kernel/Documentation/power/states.txt l'ACPI State S4 qui correspond au suspend to disk.
Concernant la taille du swap, une recherche google (ou autre moteur) avec "hibernation swap" devrait te montrer que beaucoup des problèmes de mise en hibernation viennent justement de la taille du swap qui ne fait pas au moins la taille de la RAM ...
...[/quote]
philippe_PMA
 
Message(s) : 19
Inscription : 01 Nov 2011 23:39

Re: SWAP (Mémoire virtuelle)

Message par jdh » 21 Mars 2012 23:45

Le programme swsups existe depuis Linux 2.2, mais il existe des alternatives.
Par exemple suspend2 (cité comme successeur de swsups) dans http://www.freesoftwaremagazine.com/art ... nate_linux
(swsups ne fonctionne pas si SMP est 'enabled' dans le noyau, or de plus en plus de machines sont SMP.)
Bref la méthode historique est swsups.


Que se passe-t-il si le swap est déjà utilisé ?
Comment écrire dedans alors qu'il y a déjà des infos chargées dedans ?
Il faudrait d'abord retirer les pages stockées en swap, or si elles sont là, c'est que la mémoire est déjà juste.
Il y a là une difficulté. (Enfin de mon point vue, mais je peux me tromper)

(Le problème n'est pas le même avec Windows qui utilise pour le swap et l'hibernation 2 fichiers différents !)

En fait, je pense que le swap est un choix "possible" qui présente un intérêt : le stockage est séparé de l'arborescence.
Et choisir un fichier supposerait d'être d'accord sur un nom et un emplacement de fichier (/var ? /tmp ?), et ce n'est pas simple.


En tout cas, merci de l'explication : cela m'explique pourquoi je ne pouvais pas hiberner mon portable puisque je n'ai pas mis de partition swap ! J'avais vu que cela ne fonctionnai pas mais je n'avais pas cherché pourquoi.


NB: on peut aisément créer un 'fichier swap' (de 2 Go) avec les commandes :
- dd if=/dev/zero of=/swapfile bs=1024 count=2097152 ( 2 Go = 2048 fois 1024 blocs de bs=1024 )
- mkswap /swapfile
- swapon /swapfile
- swapoff /swapfile (pour désactiver)
Mais la gestion de swap est un tout : on peut avoir plusieurs swap, et il n'existe que 'swapon/swapoff' pour ajouter/enlever (et swap -a).
L'intelligence artificielle n'est rien à côté de la stupidité naturelle.
jdh
 
Message(s) : 731
Inscription : 02 Nov 2011 00:36
Localisation : Nantes - Angers

Re: SWAP (Mémoire virtuelle)

Message par jibe » 22 Mars 2012 22:24

Salut,

Je pense qu'il faut bien comprendre que la gestion du swap est très différente entre Linux et Windows. Je crois savoir (mais je connais de plus en plus mal W$, corrige si je me trompe, jdh !) que ce dernier utilise le swap tant qu'il peut le faire. Et donc, augmenter la taille du swap a pour effet d'augmenter le swapping : c'est peut-être là l'origine de ta question, Titofe ?

Alors que Linux au contraire privilégie autant qu'il le peut l'utilisation de la RAM. Un système Linux swappe donc très peu, et presque uniquement lorsqu'il se trouve à court de RAM. Donc, sous Linux :
- Augmenter la taille du swap n'a aucun inconvénient et normalement peu d'effet (ce qui fait dire à certains assez justement que c'est inutile...),
- Plus il y a de RAM, moins le système swappera (ce qui semble assez logique ! Le but principal du swap est justement de compenser les manques de RAM).
jibe. En vert ou en rouge-orangé : je modère - En noir ou autre couleur : je parle à titre personnel.

L'idée que quand on n'a pas quelque chose, on puisse se bouger pour l'avoir, c'est une démarche qui parait absolument normale pour les gens du Logiciel Libre et totalement surnaturelle pour tout le reste de la population. (Benjamin Bayart)
jibe
 
Message(s) : 943
Inscription : 09 Sep 2011 23:19
Localisation : Haute Savoie

Re: SWAP (Mémoire virtuelle)

Message par jdh » 22 Mars 2012 23:08

@Jibe :

Pour Windows, c'est ce que j'écris et que l'on perçoit vite !

Pour Linux, c'est aussi vrai.
Mais il faut ajouter que le swap est nécessaire pour l'hibernation (utile pour un desktop).
(Pour ce cas, le swap doit être de taille au moins égal à la mémoire vive.)
L'intelligence artificielle n'est rien à côté de la stupidité naturelle.
jdh
 
Message(s) : 731
Inscription : 02 Nov 2011 00:36
Localisation : Nantes - Angers

Re: SWAP (Mémoire virtuelle)

Message par philippe_PMA » 22 Mars 2012 23:30

jdh a écrit :...
Que se passe-t-il si le swap est déjà utilisé ?
Comment écrire dedans alors qu'il y a déjà des infos chargées dedans ?
...

Je savais que tu poserais cette question ;-)

Pour moi ce qui est important c'est que l'état du système et des périphériques soient récoltés (ACPI State: S3) puis sauvegardés sur disque (ACPI State: S4).
Dans "état du système" il y a toutes les structures de données utilisées par le kernel qui en font parties (dont la table des processus, les blocs de controle des processus, etc).
Et cela doit être suffisant pour retrouver tous les processus (emplacement dans le système de fichier, arguments, registres, piles, ...) qui étaient exécutés et ainsi de les recharger au besoin suivant leur élection par le scheduler.
Autrement dit, ce qui était dans le SWAP n'a pas d'importance.

Ce ne sont que mes déductions avec les connaissances que j'ai pu récolter.
C'est surtout pour te convaincre que cela est possible.
Sinon, il faut aller voir le code du suspend to disk et de la gestion de la mémoire.
philippe_PMA
 
Message(s) : 19
Inscription : 01 Nov 2011 23:39

Re: SWAP (Mémoire virtuelle)

Message par jibe » 23 Mars 2012 00:03

jdh a écrit :@Jibe :

Pour Windows, c'est ce que j'écris et que l'on perçoit vite !

:oops: Pardon... Windows m'intéresse si peu que je n'ai fait que survoler ce qui en est dit :oops: :lol:

... Et une gestion aussi mal conçue de la swap n'arrange pas mon opinion de cet OS (comprendre : partie du squelette !) :lol:
jibe. En vert ou en rouge-orangé : je modère - En noir ou autre couleur : je parle à titre personnel.

L'idée que quand on n'a pas quelque chose, on puisse se bouger pour l'avoir, c'est une démarche qui parait absolument normale pour les gens du Logiciel Libre et totalement surnaturelle pour tout le reste de la population. (Benjamin Bayart)
jibe
 
Message(s) : 943
Inscription : 09 Sep 2011 23:19
Localisation : Haute Savoie

PrécédentSuivant

Retour vers Questions diverses

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 1 invité

cron