Comment réduire la taille du fichier de swap

Bonjour à tous,

Tout d’abord, je suis débutant sous Linux et je vous remercie par avance de l’aide que vous pourrez m’apporter.

J’ai une machine virtuelle sous Debian qui me sert d’antispam.
Lors de l’installation, on m’avait conseillé de mettre 1,5 Go de RAM, mais je vois qu’a l’utilisation la VM en consomme à peine 20% et je voudrais donc la réduire à 512 Mo.

Mes questions :

  • 512 Mo suffisent-ils ?
  • Comment réduire la taille du fichier de swap ?
  • Dois-je faire autre chose au niveau du système pour lui spécifier la taille de la nouvelle mémoire ?

Voici ma config :
Debian 2.6
Noyau Linux Antispam 2.6.26-2-amd64

Merci pour votre aide.

je ferais ça avec gparted,j’ai jamais essayé en ligne de commandes

C’est la mode en ce moment la réorganisation de partition :017

La commande qu’il te faut c’est :

swapoff

Ensuite tu utilise ton outil de partitionnement préférer (fdisk, Gparted, …) pour redimensionner la partition SWAP
Enfin tu remet le swap

swapon

ATTENTION !!! Si tu utilise vraiment du SWAP la désactivation de celui çi te poseras des soucis.

Une “veille” règle voulais que le SWAP = 1,5 X taille mémoire vive. Avec l’arrivé de l’hibernation le minimum étais 1,1X taille mémoire vive.
Maintenant si tu n’utilise pas l’hibernation et que tu alloue suffisamment de mémoire vive (>2Go) tu peu carrément te passer de SWAP.

Quel que soit l’outil utilisé, gparted, fdisk & co, il faut au préalable démonter la partition pour pouvoir la modifier.
Or, apparemment, son système en utilise 20%. Donc déjà, il est exclus de démonter la partition pendant l’utilisation du système. Il faut donc opérer hors système.
Pour un système normal, j’aurais opté pour l’utilisation d’un live CD mais, comme rien n’est simple, il s’agit d’une machine virtuelle.
Du coup (je réfléchis en même temps que j’écris), je me dis qu’il doit bien y avoir un moyen de paramétrer la taille des partitions directement au niveau de la machine virtuelle, sans la démarrer. Et ça doit dépendre de l’utilisation que tu fais de cette VM. Les partitions sont-elles des partitions réelles ? Ou des partitions “virtuelles” dans un fichier qui te sert de disque virtuel ?
Normalement, si tu es l’installateur/configurateur de cette VM, tu devrais savoir répondre à ces questions et trouver la solution :wink:
Si les partitions sont réelles, i.e. la machine virtuelle s’appuie sur un partitionnement réel des disques, alors tu peux utiliser le système sur lequel tourne ta VM ou un liveCD et l’outils qui te convient le mieux (gparted, fdisk…). Si c’est un disque virtuel dans un fichier, ça dépend du type de machine virtuelle (VMware, VBox…), mais normalement l’interface de la machine permet de faire ça facilement.

Je me demande surtout si les 20% représente bien l’utilisation du SWAP ou de la RAM …
Que donne la commande

Ou les outils suivant

Pas forcément. Il y a peut-être suffisamment de mémoire libérable (caches, buffers) pour y transférer tout le contenu du swap, le système sera juste moins réactif. La sortie de la commande free le dira.

Par contre si c’est une partition de swap classique (pas un volume logique LVM par exemple), si le disque contient d’autre partitions utilisées alors le noyau refusera de prendre en compte immédiatement les modifications de la table de partition et donc la nouvelle taille de la partition de swap et il ne sera pas non plus possible de recréer le swap (avec mkswap) en tenant compte de la nouvelle taille. Pour cela il faudra redémarrer. Auparavant, il peut être sage de commenter la ligne du swap dans /etc/fstab afin de ne pas remonter automatiquement le swap qui est resté défini avec une taille supérieure à celle de la nouvelle partition.

Bonjour à tous et merci pour vos réponses rapides … j’étais pas au bureau hier après-midi.

Donc en fait les 20% utilisés sont ceux de la mémoire vive virtuelle, la machine ne swap jamais actuellement (avec ses 1,5 Go de RAM).
Sinon,

  • Le disque sur lequel est installée Debian (5Go ) est virtualisé et, est donc seulement un fichier dans le dossier de la VM.
  • Il m’est facile de rediriger le flux de message (mails) et d’éteindre la VM.

Donc, si je comprends bien, voici les étapes pour réduire ma mémoire RAM virtuelle et réduire en conséquence la taille du swap :

1- je désactive le swap avec la commande : swapoff
2- je réduis la taille de ma RAM virtuelle à 512 Mo (dans VMWARE Vsphere)
3- j’utilise gparted pour réduire ma partition de swap à 512 Mo (de toute manière, elle n’est jamais utilisée)
4- je réactive le swap avec la commande : swapon

Dites-moi si cela est correct svp.

Sinon, j’ai executé les commandes que vous m’avez demandé, et voici les résultats :

FREE _________________________________________

         total       used       free     shared    buffers     cached

Mem: 1508632 624388 884244 0 185216 151416
-/+ buffers/cache: 287756 1220876
Swap: 281096 0 281096

j’imagine que j’utilise plus de 512 Mo de RAM ici, non ? il serait peut-être sage de mettre plus ?

TOP _________________________________________

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 10316 752 624 S 0.0 0.0 0:02.22 init [2]
2 root 15 -5 0 0 0 S 0.0 0.0 0:00.00 [kthreadd]
3 root RT -5 0 0 0 S 0.0 0.0 0:00.00 [migration/0]
4 root 15 -5 0 0 0 S 0.0 0.0 0:00.02 [ksoftirqd/0]
5 root RT -5 0 0 0 S 0.0 0.0 0:00.00 [watchdog/0]
6 root 15 -5 0 0 0 S 0.0 0.0 0:02.20 [events/0]
7 root 15 -5 0 0 0 S 0.0 0.0 0:00.00 [khelper]
41 root 15 -5 0 0 0 S 0.0 0.0 0:00.08 [kblockd/0]
43 root 15 -5 0 0 0 S 0.0 0.0 0:00.00 [kacpid]
44 root 15 -5 0 0 0 S 0.0 0.0 0:00.00 [kacpi_notify]
170 root 15 -5 0 0 0 S 0.0 0.0 0:00.00 [ksuspend_usbd]
176 root 15 -5 0 0 0 S 0.0 0.0 0:00.00 [khubd]
179 root 15 -5 0 0 0 S 0.0 0.0 0:00.00 [kseriod]
220 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [pdflush]
221 root 20 0 0 0 0 S 0.0 0.0 0:00.62 [pdflush]
222 root 15 -5 0 0 0 S 0.0 0.0 0:00.00 [kswapd0]
223 root 15 -5 0 0 0 S 0.0 0.0 0:00.00 [aio/0]
789 root 15 -5 0 0 0 S 0.0 0.0 0:00.00 [ata/0]

FDISK -l _________________________________________

Disk /dev/sda: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x000032c2

Device Boot Start End Blocks Id System
/dev/sda1 * 1 617 4956021 83 Linux
/dev/sda2 618 652 281137+ 5 Extended
/dev/sda5 618 652 281106 82 Linux swap / Solaris

La commande HTOP à échouée._______________________


Merci encore pour votre aide qui m’est précieuse :wink:

en fait, je me suis gouré dans la version de mon debian …
lorsque je lance la commande cat /etc/debian_version
j’ai 5.0.9

il va falloir que je le mette à jour :unamused:

[suppression par edit]'avais émis l’hypotèse de supprimer la partition de swap, mais en fait, mon but est de récupérer de réduire la mémoire vive de ma VM pour la donner à d’autres VM qui en on plus besoin.

DONC impossible de passer ma RAM à 2Go et donc de me séparer de la partition de swap …

Excusez-moi, je me parle tout seul :laughing: