Failed to open stream: Too many open files in


#1

Yop,

D’un seul coups mon serveur web c’est mis a délirer :confused:
Voyez par vous même : goldzoneweb.info

J’ai le droit à ce ceci…

[code]Warning: include(scripts/total_sites.php) [function.include]: failed to open stream: Too many open files in /var/www/hosting/index.php on line 58

Warning: include() [function.include]: Failed opening ‘scripts/total_sites.php’ for inclusion (include_path=’.:/usr/share/php:/usr/share/pear’) in /var/www/hosting/index.php on line 58

Warning: include(scripts/uptime.php) [function.include]: failed to open stream: Too many open files in /var/www/hosting/index.php on line 59[/code]
Je ne sais pas ce qui c’est passé, Google n’est pas très bavard sur la chose :confused: J’ai essayé avec PHP 4 mais j’ai la même erreur donc je pense que Apache 2 est en cause.

Voilà si quelqu’un a une idée je le remercie d’avance. :wink:


#2

Bon alors faut que l’on m’explique ! :blush:

Je suis tombé sur un post Allemand traduit par Google en FR (vous savez ce que ca donne ^^)
Ce post parlait de la commande ulimit.

Chez moi ulimit -n me retournait 1024 j’ai changé cette valeur pour 32768 et tout est presque rentré dans l’ordre (phpmyadmin merde toujours). :unamused:

Pouvez-vous me dire ce qui s’est passé exactement ?

EDIT : J’ai vider les cookies de mon navigateur est PHPMyAdmin refonctionne.


#3

Personne ? :laughing:


#4

quote="man bash"
ulimit [-SHacdflmnpstuv [limit]]
Provides control over the resources available to the shell and to processes started by it, on systems that
allow such control. The -H and -S options specify that the hard or soft limit is set for the given
resource. A hard limit cannot be increased once it is set; a soft limit may be increased up to the value of
the hard limit. If neither -H nor -S is specified, both the soft and hard limits are set. The value of
limit can be a number in the unit specified for the resource or one of the special values hard, soft, or
unlimited, which stand for the current hard limit, the current soft limit, and no limit, respectively. If
limit is omitted, the current value of the soft limit of the resource is printed, unless the -H option is
given. When more than one resource is specified, the limit name and unit are printed before the value.
Other options are interpreted as follows:
-a All current limits are reported
-c The maximum size of core files created
-d The maximum size of a process’s data segment
-f The maximum size of files created by the shell
-l The maximum size that may be locked into memory
-m The maximum resident set size
-n The maximum number of open file descriptors (most systems do not allow this value to be set)
-p The pipe size in 512-byte blocks (this may not be set)
-s The maximum stack size
-t The maximum amount of cpu time in seconds
-u The maximum number of processes available to a single user
-v The maximum amount of virtual memory available to the shell

          If limit is given, it is the new value of the specified resource (the -a option is  display  only).   If  no
          option  is  given,  then -f is assumed.  Values are in 1024-byte increments, except for -t, which is in sec-
          onds, -p, which is in units of 512-byte blocks, and -n and -u, which are unscaled values.  The return status
          is 0 unless an invalid option or argument is supplied, or an error occurs while setting a new limit.

(…)[/quote]
ulimit est censé te permettre de contrôler les plafond d’utilisation des ressources du shell dans lequel tu le lances.
-n comme tu t’y attendais, limite le nombre de fichiers ouverts en même temps.
Mais attention, les valeurs par défaut sont raisonnables. Tu peux les augmenter si tu veux, mais ne le fais que pour le processus apache (fais le dans le script de lancement d’apache).
AMA, d’ailleurs, tu l’a fait temporairement, et ca va disparaitre au redémarrage:
tu etais dans un shell ou tu a fait un “ulimit -n 32768”, puis tu as relancé ton apache qui profite de ta valeur haute de ulimit -n, mais dés que tu va redémarrer, ton apache va démarrer dans un shell avec ulimit -n 1024, et tu va retrouver tes problêmes.


#5

Merci pour ces précisions !!! En effet une fois Apache 2 relancé le problème réapparait.

Une autre question qui est pourquoi ca me le fait que maintenant ?


#6

peut être un script nouveau sur un site, et qui ouvre un peu trop de fichiers ?
fais des ‘lsof’, pour déterminer ce qui est ouvert, quand ça commence à planter.