IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration système Discussion :

Forcer utilisation du swap


Sujet :

Administration système

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Forcer utilisation du swap
    Bonjour à tous,

    J'espère que vous pourrez m'aider, je viens de passer tout mon temps depuis le début de cette journée à essayer de trouver une solution sur le net, mais rien, alors je fais appel à vos compétences.

    J'ai un programme qui doit charger une grosse quantité de données en mémoire (je ne connais pas la taille exacte).
    Avant toute chose, une petite description du contexte : je suis sur un serveur avec 2 Go de RAM, 4 disques montés en RAID 5, plus un disque système. La partition de swap est sur l'unité RAID et fait un peu plus de 9Go (ce n'est pas moi qui ai installé ce serveur, et je pense que c'est un peu surdimensionné, mais bon... je fais avec). La version du noyau est 2.6.9, sous Mandrake.

    Lorsque je lance mon programme, la mémoire vive est peu à peu remplie, puis à partir de 1,5Go, le swap est de plus en plus utilisé, normal. Lorsque la somme de mémoire demandée par mon programme atteint environ 2,5Go, l'allocation mémoire est refusée, la mémoire vive est utilisée à 80%, et le swap seulement à 10% !
    D'où ma question : y a-t-il quelque chose à faire premièrement pour utiliser à fond la mémoire vive, et surtout, deuxièmement, pour utiliser l'énorme espace de swap encore disponible ??
    Je n'ai pas besoin de performances dans ce cas, ce qui m'intéresse, c'est que mon programme passe, peu importe que cela prenne des jours...
    J'espère vraiment que vous pourrez m'aider...
    Merci en tous cas à ceux qui m'auront lu entièrement

  2. #2
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    n'y aurait-il pas une taille maximale de mémoire allouée par processus ?

    32 bits => 4 Go
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Peut-être (je dirais même surement, ça me dis quelque chose), mais là, je ne dépasse pas les 2,5Go...
    Et j'ai oublié de préciser que l'allocation qui plante ne demande "que" 400Mo, il reste donc de quoi faire...

  4. #4
    Membre averti
    Avatar de joellel
    Profil pro
    Inscrit en
    Février 2003
    Messages
    234
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Février 2003
    Messages : 234
    Points : 338
    Points
    338
    Par défaut
    Attention! La taille maximale d'un processus (code + données + pile + environnement) sous Linux est de 3Go, tu n'en es pas si loin...
    Vérifies bien que tu ne les atteins pas...

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par joellel
    Attention! La taille maximale d'un processus (code + données + pile + environnement) sous Linux est de 3Go, tu n'en es pas si loin...
    Vérifies bien que tu ne les atteins pas...
    Merci !! Effectivement, dans le doute, hier, j'ai fait un petit programme de test qui allouait une certaine quantité de données, et je me suis rendu compte que la limite était aux alentours de 3Go... 2,5Go+ les 400Mo demandés et quelques Mo pour le reste, on est bien dans la limite Ce qui confirme mes observations...
    Merci quand même pour la réponse, parce que n'ayant pas trouvé cette information sur le net, j'étais persuadé que cette limitation était dûe à une mauvaise configuration de mon système. Maintenant au moins, je sais que c'est "normal".
    Mais alors, je me pose une question évidente : y a-t-il un moyen d'augmenter cette limite ? Je ne parle pas de moyens détournés, comme utiliser des fichiers pour stockage temporaire, ou même aller jusqu'à la création de plusieurs processus, j'aimerais simplement savoir si c'est possible, et bien sûr, si oui, comment ?
    Merci d'avance !

  6. #6
    Membre averti
    Avatar de joellel
    Profil pro
    Inscrit en
    Février 2003
    Messages
    234
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Février 2003
    Messages : 234
    Points : 338
    Points
    338
    Par défaut
    A part modifier les sources du noyau je ne vois pas...
    Toute plaisanterie mise à part, ne peux tu pas optimiser ton programme en libérant un maximum de mémoire au fur et à mesure?

  7. #7
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par joellel
    A part modifier les sources du noyau je ne vois pas...
    Toute plaisanterie mise à part, ne peux tu pas optimiser ton programme en libérant un maximum de mémoire au fur et à mesure?
    Malheureusement, ce n'est pas moi qui ait écrit ce programme, et il est plutôt énorme, l'optimisation couterait trop de temps.
    Les données chargées en mémoire doivent l'être en même temps, je vais donc très probablement utiliser la solution d'un fichier temporaire, pour augmenter à ma manière la taille du swap Ca va plomber les performances, mais encore une fois, ce n'est pas important, il faut simplement que ça passe !
    Merci en tous cas.

  8. #8
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    344
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 344
    Points : 324
    Points
    324
    Par défaut
    J'avais eu un problème de ce genre. Je l'avais résolu de manière très peu conventionnelle et assez bourrin... Je me suis amusé avec trois fenêtre:
    - une pour lancer mon programme
    - une pour suivre le TOP
    - une troisième pour re-nicer le process BDFLUSH qui sert à flusher du buffer cache les entrées "dirty".
    Je sais, ça fait assez "bucheron", mais ça a marché.

  9. #9
    Expert éminent
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2003
    Messages : 3 497
    Points : 8 237
    Points
    8 237
    Par défaut
    ça ne serait pas quelque chose comme ça que tu cherches ?

  10. #10
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par usf70
    J'avais eu un problème de ce genre. Je l'avais résolu de manière très peu conventionnelle et assez bourrin... Je me suis amusé avec trois fenêtre:
    - une pour lancer mon programme
    - une pour suivre le TOP
    - une troisième pour re-nicer le process BDFLUSH qui sert à flusher du buffer cache les entrées "dirty".
    Je sais, ça fait assez "bucheron", mais ça a marché.
    Il fallait déjà y penser ! Mais après tout, si ça peut m'éviter de longues heures de modifications, pourquoi pas essayer

    Citation Envoyé par Michaël
    ça ne serait pas quelque chose comme ça que tu cherches ?
    En fait, j'aurais du le préciser avant, je n'ai pas de limites fixées par moi concernant les différents paramètres liés aux processus, elles sont déjà toutes à "unlimited"... C'est pour ça que je cherchais à connaître une éventuelle limite fixée par Linux, qui est donc de 3Go par processus...

Discussions similaires

  1. Forcer utilisation de ClearType lors navigation
    Par Nitrox06 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 17/08/2011, 12h09
  2. Forcer utilisation de ORB de SUN dans weblogic
    Par Lolitaaa dans le forum Weblogic
    Réponses: 1
    Dernier message: 24/12/2009, 12h00
  3. Linux utilise la swap alors qu'il reste de la RAM
    Par Empty_body dans le forum Administration système
    Réponses: 3
    Dernier message: 25/09/2009, 11h54
  4. Réponses: 2
    Dernier message: 19/06/2007, 11h06
  5. Erreur dans l'utilisation de SWAP
    Par mire dans le forum Langage
    Réponses: 12
    Dernier message: 15/03/2003, 21h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo