Probleme de ressources permanent avec wamp5 apres execution d'un "gros"

Petit nouveau ! | 8 Messages

26 nov. 2007, 10:27

Bonjour,
Voilà mon probleme et ce n'est pas la premiere fois qu'il m'arrive la 1ere fois j'avais reussi à le resoudre en passanr de EasyPHP à Wamp5 mais là je ne peux plus.
Je vous explique, ce week-end j'ai programmé un petit script pour qu'il lit un ficher ".sql" tres tres gros de 80Mo à peut pres. Le probleme est que cela a utilsé enormement de ressources pour finalement un plantage pur et simple du serveur et depuis j'ai des problemes avec Apache et les resources systemes. Mes script PHP ne sont plus executés, celà m'affiche une page blanche à chaque fois et dans le error_log de Apache (qui fait plus e 400Mo à chaque fois que j'execute un script) j'obtient le message "Les ressources systemes sont inssufisante pour terminer...."

Y-a-t'il un moyen de vider ces ressources systemes ? ou une autre solution pour que tout remarche ??

Merci d'avance pour votre aide

ViPHP
ViPHP | 4039 Messages

26 nov. 2007, 11:22

Redémarrer ? effacer le fichier log ? diviser le fichier en petits bouts ?
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

26 nov. 2007, 12:03

Bonjour,

Si ton script importe uniquement ton fichier SQL dans une bdd, regarde plutot du côté des fonctionnalités d'import de MySQL en ligne de commande ou via LOAD DATA INFILE par exemple:
http://dev.mysql.com/doc/refman/5.0/fr/load-data.html
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 8 Messages

26 nov. 2007, 16:21

Le probleme est que Apache ne "fonctionne" plus
il essaie d'executer le code mais il n'a pas assez de ressources pour faire ça et meme apres un redemarage du serveur ou de ma machine ça marche pendant 5min puis de nouveau plus rien :?

ps : merci pour l'info sur l'insertion.

Mammouth du PHP | 19672 Messages

26 nov. 2007, 16:41

Comme te l'a suggéré @rthur, tu devrais passer par un utilitaire MySQL au lieu d'un script PHP pour un fichier aussi volumineux.

En ligne de commande, tu n'auras pas autant de problèmes. Si MySQL est bien indiqué dans le PATH de ton Windows, alors ouvre une invite de commande et essaye avec la ligne suivante (en mettant les bon noms bien sur :

Code : Tout sélectionner

C:\> mysql -u root nom_base<C:\tmp\mon_super_gros_fichier.sql
Si tu as un mot de passe pour te connecter à ton serveur (ce qui est vivement recommandé) alors modifie comme suit :

Code : Tout sélectionner

C:\> mysql -u root -p nom_base<C:\tmp\mon_super_gros_fichier.sql
Dès que tu presseras la touche [Entrée], le mot de passe te sera demandé et le reste s'exécutera tout seul sans passer par Apache mais directement par MySQL.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Petit nouveau ! | 8 Messages

26 nov. 2007, 20:46

Merci beaucoup ça fait dejà un probleme de regler mais je pourrais pas l'utiliser Apache manque de ressource pour executer le code php
que dois-je faire ?????

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

26 nov. 2007, 20:49

Merci beaucoup ça fait dejà un probleme de regler mais je pourrais pas l'utiliser Apache manque de ressource pour executer le code php
que dois-je faire ?????
Si tu utilises la ligne de commande, tu n'utilises pas PHP donc ça ne pose pas de problème ;-)
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 8 Messages

26 nov. 2007, 20:58

Je me suis mal exprimé :?
je voulais dire que je pourrais pas utiliser ce que je viens de mettre dans la base si apache ne arche plus :s

Mammouth du PHP | 19672 Messages

26 nov. 2007, 21:19

:shock: Ça sent la confusion à plein nez (et je m'y connais... en nez :langue:)

Séparons les problèmes si tu veux bien.
D'abord, il y a le problème d'importation des données. En utilisant la ligne de commande, tu n'as besoin ni d'Apache ni de PHP.

Pour l'export, tu peux procéder à peu près de la même manière, donc, exit Apache et exit PHP.

Exploiter les données maintenant : là, je présume que c'est pour un site Internet : sauf erreur de conception, le poids de tes pages n'atteindra jamais un volume de données équivalent à l'ensemble du contenu de ta base. Si ta base est convenablement conçue et tes colonnes correctement indexées, les requêtes que tu feras pour ton site seront du type SELECT, INSERT, UPDATE voire DELETE occasionnellement, tout ça pour quelques lignes dans une ou plusieurs tables.

En conclusion, la manipulation de la totalité des données n'a lieu que dans une opération d'import/export, jamais d'exploitation.

Donc essaye de reformuler ton problème parce que je crois que personne (et moi non plus bien entendu) n'a compris où tu bloques :-k
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

26 nov. 2007, 21:24

En gros j'ai ecrit un script pour automatiser les commandes de mon fichiers sql mais il etait tellement imposant que ça a saturé mes ressources systemes pour apache et donc plus moyen de faire fonctionner apache et dans le error_log d'apache j'ai tout le temps le meme message en boucle
"ressources systemes inssufisante"

donc j'aimerais savoir comment liberer ces ressources :)

Mammouth du PHP | 19672 Messages

26 nov. 2007, 21:46

En commençant par isoler à quel moment de ton script ça plante et en découpant tes fichiers à la création de façons à ne les exécuter qu'un après l'autre.

Ça plante à l'import ou à l'export ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Petit nouveau ! | 8 Messages

26 nov. 2007, 22:02

L'important est pas là j'ai executer un script qui a utilisé toutes les ressources systemes et qui ralentissait tout mon pc du coup je l'ai areté et depuis apache refuse d'executer mes script php meme le php_info() marche plus :s

Mammouth du PHP | 2937 Messages

26 nov. 2007, 22:03

As-tu essayé de redémarrer Apache ?

ViPHP
ViPHP | 2287 Messages

26 nov. 2007, 22:05

Méthode radicale mais sûre : tu redémarres la machine.

Méthode plus longue et plus propre (mais pas garantie) : tu éteins ou redémarres les services que tu soupçonnes avoir pris toutes les ressources (en commençant donc par apache et mysql).
if(!@work()){ Nespresso(); } else { what(); }
______________________________

Petit nouveau ! | 8 Messages

26 nov. 2007, 22:08

J'ai dejà tout essayé redemarage d'apache, redemarage de ma machine il y a rien à faire on diré qu'il a sauvegardé tout ça donc si vous connaissez le moyen de tout vider à la main... :oops: