Page 1 sur 2

Probleme de ressources permanent avec wamp5 apres execution

Posté : 26 nov. 2007, 10:27
par acidburn1879
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

Posté : 26 nov. 2007, 11:22
par Berzemus
Redémarrer ? effacer le fichier log ? diviser le fichier en petits bouts ?

Posté : 26 nov. 2007, 12:03
par @rthur
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

Posté : 26 nov. 2007, 16:21
par acidburn1879
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.

Posté : 26 nov. 2007, 16:41
par Cyrano
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.

Posté : 26 nov. 2007, 20:46
par acidburn1879
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 ?????

Posté : 26 nov. 2007, 20:49
par @rthur
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 ;-)

Posté : 26 nov. 2007, 20:58
par acidburn1879
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

Posté : 26 nov. 2007, 21:19
par Cyrano
: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

Posté : 26 nov. 2007, 21:24
par Invité
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 :)

Posté : 26 nov. 2007, 21:46
par Cyrano
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 ?

Posté : 26 nov. 2007, 22:02
par acidburn1879
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

Posté : 26 nov. 2007, 22:03
par Victor BRITO
As-tu essayé de redémarrer Apache ?

Posté : 26 nov. 2007, 22:05
par Calimero
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).

Posté : 26 nov. 2007, 22:08
par acidburn1879
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: