+ Répondre à la discussion
Affichage des résultats 1 à 12 sur 12
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    mai 2003
    Messages
    329
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : mai 2003
    Messages : 329
    Points : 79
    Points
    79

    Par défaut Erreur Too many open files

    Bonsoir,

    Depuis quelques jours mon serveur plante (serveur virtuel), mon hébergeur a fait des modifications au niveau d'Apache car à priori cela venait de là, maintenant il me dise que c'est un problème de ressource et de RAM.

    Dans les logs d'apache j'ai ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [warn-phpd] mmap cache can't open /home/... - Too many open files (pid 1817)
    hier ils ont modifié cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    la limite des fichiers ouverts à 16384 au niveau du 
    /usr/sbin/apachectl .
    mais toujours le message ce soir dans les logs et ils ne veulent plus intervenir car pas de contrat d’infogérance et me propose rien d'intéressant vers une offre supérieur de 4Go de RAM

    Pouvez vous m'aidez ?
    Merci d'avance
    Bonne soirée
    Ludo

  2. #2
    Rédacteur/Modérateur
    Avatar de _Mac_
    Inscrit en
    août 2005
    Messages
    9 584
    Détails du profil
    Informations forums :
    Inscription : août 2005
    Messages : 9 584
    Points : 12 580
    Points
    12 580

    Par défaut

    Il faut plutôt regarder du côté des limites système : ulimit -n. Si cette valeur pour l'utilisateur apache est trop basse, on a ce genre de choses. Mais il ne faut pas non plus mettre une valeur trop haute justement pour laisser suffisamment de ressources libres au système.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    mai 2003
    Messages
    329
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : mai 2003
    Messages : 329
    Points : 79
    Points
    79

    Par défaut

    cette commande me retourne 1024

  4. #4
    Rédacteur/Modérateur
    Avatar de _Mac_
    Inscrit en
    août 2005
    Messages
    9 584
    Détails du profil
    Informations forums :
    Inscription : août 2005
    Messages : 9 584
    Points : 12 580
    Points
    12 580

    Par défaut

    Pour l'utilisateur défini dans la configuration Apache ?

    Il faut aussi regarder le nombre de descripteurs de fichier ouverts pour cet utilisateur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lsof | grep -c ton_utilisateur_apache

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    mai 2003
    Messages
    329
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : mai 2003
    Messages : 329
    Points : 79
    Points
    79

    Par défaut

    euh...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    lsof | grep -c www-data
    -bash: lsof: command not found
    0

  6. #6
    Rédacteur/Modérateur
    Avatar de _Mac_
    Inscrit en
    août 2005
    Messages
    9 584
    Détails du profil
    Informations forums :
    Inscription : août 2005
    Messages : 9 584
    Points : 12 580
    Points
    12 580

    Par défaut

    Il faut exécuter lsof avec l'utilisateur root.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    mai 2003
    Messages
    329
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : mai 2003
    Messages : 329
    Points : 79
    Points
    79

    Par défaut

    c'est à dire ? car je me connecte en root en SSH déjà

    Bonnes fêtes de fin d'année

  8. #8
    Rédacteur/Modérateur
    Avatar de _Mac_
    Inscrit en
    août 2005
    Messages
    9 584
    Détails du profil
    Informations forums :
    Inscription : août 2005
    Messages : 9 584
    Points : 12 580
    Points
    12 580

    Par défaut

    Dommage Ben faut trouver cette commande lsof : elle liste les fichiers ouverts sur le système (y compris les sockets) et visiblement ton erreur vient d'un trop grand nombre de fichiers ouverts par l'utilisateur Apache par rapport à la limite système. Cherche avec locate, find, ou autre. Si cette commande n'existe pas, je t'encourage fortement à l'installer ou la faire installer.

    Merci, bonnes fêtes de fin d'année à toi aussi.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    mai 2003
    Messages
    329
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : mai 2003
    Messages : 329
    Points : 79
    Points
    79

    Par défaut

    voilà installé
    il m'indique 9296 via la commande lsof | grep -c www-data cela fait beaucoup

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    mai 2003
    Messages
    329
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : mai 2003
    Messages : 329
    Points : 79
    Points
    79

    Par défaut

    11293 en ce moment

  11. #11
    Rédacteur/Modérateur
    Avatar de _Mac_
    Inscrit en
    août 2005
    Messages
    9 584
    Détails du profil
    Informations forums :
    Inscription : août 2005
    Messages : 9 584
    Points : 12 580
    Points
    12 580

    Par défaut

    En effet. A partir de maintenant, si tu t'y connais en awk, sed et tout le bazar shell c'est travailler la sortie de la commande lsof | grep www-data pour identier le ou les process système qui ouvrent ces fichiers et espérer corriger le problème.

    Ce qu'il faut que tu fasses aussi c'est compter le nombre de process système exécutés par www-data : ps -ef | grep www-data (option -c pour avoir un total et pas une liste). Il faudra mettre ce résultat en face de l'analyse précédente pour mieux comprendre l'origine du pb et aussi du trafic du site (par exemple site à trafic faible mais avec beaucoup de processus Apache = pas bon).

    Ce qu'il peut se passer c'est un code PHP (ou autre, exécuté par Apache pour opérer le site) qui ouvre trop de fichiers sans les refermer. Dans ce cas, il faut corriger le problème dans le code source.

    Autre solution mais pas forcément la meilleure : monter la valeur du ulimit pour l'utilisateur www-data. Ca doit se passer dans le fichier /etc/security/limits.conf.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    mai 2003
    Messages
    329
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : mai 2003
    Messages : 329
    Points : 79
    Points
    79

    Par défaut

    euh malheureusement je ne suis pas assez calé en linux pour cela