valeur swap

Forum d'assistance et d'échange sur l'installation, la configuration, et l'utilisation des système Linux et BSD. Vous pouvez y poster vos questions concernant ces systèmes d'exploitation en faisant l'effort préalable de rechercher dans le forum, dans les manuels et les documentations que la réponse n'y figure pas.

Modérateur: modos Ixus

valeur swap

Messagepar yahnice » 03 Oct 2006 12:29

Bonjour à tous.

Je recherche sans succès à partir de quel pourcentage d'utilisation de la swap.
Je trouve partout quelle taille donner à la partition mais comment savoir si un serveur gourmant en swap en consomme trop ? ... Je ne trouve rien sur ce sujet.
Qui aurait des liens sur ce sujet ?

Merci
Avatar de l’utilisateur
yahnice
Quartier Maître
Quartier Maître
 
Messages: 23
Inscrit le: 03 Fév 2005 16:38

Messagepar jdh » 03 Oct 2006 12:45

Le swap est destiné à combler un manque de mémoire vive. Il faut noter que le temps d'accès à cette mémoire sur disque est au moins d'un facteur 1000 par rapport à la mémoire vive.

Quelle taille ou quelle taux d'utilisation est normal ? Cela dépend de l'utilisation.

Traditionnellement on la taillait comme sur un Unix traditionnel à 2 fois la mémoire centrale. Mais au delà de 512M cela parait assez inutile.

Un firewall qui ne fait que du filtrage netfilter/iptables ne devrait pas swaper. Un Squid ne devrait jamais swapper : pourquoi garder en mémoire des pointeurs vers des objets disques qui se trouve eux-même (les pointeurs) sur disque ?

Le cas d'espèce est une base de données qui s'étend et supporte beaucoup de requetes simultanées. Autre exemple SpamAssassin très gourmand.

Hors ces cas, il s'agit d'une mémoire de débordement donc l'utilisation normale est 0.
Avatar de l’utilisateur
jdh
Amiral
Amiral
 
Messages: 4741
Inscrit le: 29 Déc 2002 01:00
Localisation: Nantes

Messagepar yahnice » 03 Oct 2006 13:59

Justement j'ai un serveur avec une BD MySQL et un serveur Apache qui consomme beaucoup de swap.
Il est actuellement dans les 45 % de swap consommée en permanence.

Et je ne sais pas dire si c'est acceptable ou pas. :cry:

A part ça l'utilisation du cpu est normale, les accès disques aussi ( on est dans les 2000 blocs lus et écrits par seconde)
Avatar de l’utilisateur
yahnice
Quartier Maître
Quartier Maître
 
Messages: 23
Inscrit le: 03 Fév 2005 16:38

Messagepar foobar47 » 03 Oct 2006 16:17

Salut,

Et toute la RAM est utilisée ?

Le SWAP, c'est pas très bon ! :wink:
foobar47
Premier-Maître
Premier-Maître
 
Messages: 67
Inscrit le: 16 Déc 2005 17:09

Messagepar jdh » 03 Oct 2006 20:51

Concernant Apache, on peut définir le nombre de "children" en fonction du nombre d'utilisateurs simultanés. Les "children" partagent-il le même mod_php ? Je l'ignore mais il faudrait que ce module soit réentrant pour cela.

Par ailleurs, il est particulièrement recommandé avec php et mysql d'utiliser des connexions permanentes (mysql_pconnect au lieu de mysql_connect). La multiplication d'ouvertures de liens est un facteur direct de consommation mémoire énaurme (oui oui !).

Une programmation saine, bien sur, recommande aussi la libération des "curseurs" avec mysql_free_result.

Maintenant cela se regarde ...
Avatar de l’utilisateur
jdh
Amiral
Amiral
 
Messages: 4741
Inscrit le: 29 Déc 2002 01:00
Localisation: Nantes

Messagepar yahnice » 04 Oct 2006 10:24

foobar47 a écrit:Salut,

Et toute la RAM est utilisée ?

Le SWAP, c'est pas très bon ! :wink:


Oui toute la ram et y a 2Go !! :shock:
Avatar de l’utilisateur
yahnice
Quartier Maître
Quartier Maître
 
Messages: 23
Inscrit le: 03 Fév 2005 16:38

Messagepar yahnice » 04 Oct 2006 10:27

jdh a écrit:Concernant Apache, on peut définir le nombre de "children" en fonction du nombre d'utilisateurs simultanés. Les "children" partagent-il le même mod_php ? Je l'ignore mais il faudrait que ce module soit réentrant pour cela.

Par ailleurs, il est particulièrement recommandé avec php et mysql d'utiliser des connexions permanentes (mysql_pconnect au lieu de mysql_connect). La multiplication d'ouvertures de liens est un facteur direct de consommation mémoire énaurme (oui oui !).

Une programmation saine, bien sur, recommande aussi la libération des "curseurs" avec mysql_free_result.

Maintenant cela se regarde ...


Merci pour ces infos, je vais passer en revue les connexions à MySQL et les libérations des resultset.
Malheureusement, les programmes sont écrits en C et C++, j'ai l'impression que cette fonction mysql_pconnect n'est disponible qu'avec PHP... :cry:

Pour info, sur ce serveur là, apache n'est que très peu sollicité.
Avatar de l’utilisateur
yahnice
Quartier Maître
Quartier Maître
 
Messages: 23
Inscrit le: 03 Fév 2005 16:38


Retour vers Linux et BSD (forum généraliste)

Qui est en ligne ?

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