Merci moogli pour ta réponse détaillée.
Voici la réponse de mon hébergeur:
Comme vu à l'instant au téléphone, il s'agissait de connexions qui ne s'étaient
pas fermées en base de données, empêchant de nouvelles de s'établir.
--
Concernant ces connexions en sleep, il s'agit de connexions à la base de données
qui sont ouvertes mais qui ne font rien (pas de requête à traiter).
Typiquement, si une connexion reste en état sleep trop longtemps, c'est qu'il
s'agit d'un script qui n'a pas fermé correctement la connexion à la base de
données (quelque soit la raison) et cette connexion reste active. Au bout d'un
moment, cela crée une accumulation de connexions inutiles mais qui bloquent
l'établissement de nouvelles connexions et donc rendent le site inaccessible. Un
redémarrage d'Apache permet de forcer la fermeture de ses connexions (la
connexion étant perdue quand les processus Apache vont se fermer).
Dans mes logs php je n'ai rien trouvé et dans mes logs d'erreur j'ai plusieurs fois des erreurs du type que j'ai donné:
[Thu Apr 12 10:14:51 2012] [error] [client XX.XX.XX] script '/[...]/21820.php' not found or unable to stat
Pour etre plus précis:
client XX.XX.XX -> il s'agit de l'adresse IP du serveur sur lequel je suis hébergé.
/[...]/21820.php -> le chemin d’accès au fichier sur lequel l'ouverture a été tentée (via le fopen) mais qui a échouée puisqu'il n'existe pas.
Ce message d'erreur est du au petit développement que j'ai fait dont le but est d'afficher du contenu en fonction de la présence ou non d'un fichier.
Je dirai que celui est "normal" car il apparait quand le visiteur visite une page sur laquelle mon bloc de contenu ne doit pas apparaître.
Pour tester la présence du fichier, j'ai bien entendu essayé avec les fonction php "classiques"
is_file ou
file_exists ou encore
is_readable mais celles-ci ne fonctionnent pas c'est pour ça que je suis passé par la fonction
fopen
Comme je débute en programmation, je ne savais pas qu'après un
fopen il était d'usage de mettre un
fclose.
Voici mon code mais je ne suis pas sur qu'il soit correcte.
<?php
$_animation = $this->getSkinUrl('blocks/animations/'.$_productID.'.php');
$ouverture = fopen($_animation, "r");
if ($ouverture == true) {
echo"<div>contenu</div>";
fclose($ouverture);
}
?>
Après effectivement mes connexions qui se mettent en état sleep ne vienne sans doute pas de ce script.
En tout cas merci pour ton aide.