Discussion:
PHP arrête mon ordi...
(trop ancien pour répondre)
Denis Beauregard
2015-12-15 16:00:49 UTC
Permalink
Bonjour,

Je ne comprends pas ce qui arrive.

Quand je lance une certaine application que j'ai écrit moi-même et
sans importer de code, mon ordi s'éteint. Je suis passé de EasyPHP à
Wampserver et la situation est la même...

En gros : j'ai une grosse base de données avec 2 gros blocs, des
couples et des individus. Un de mes processus consiste à relire des
fichiers .csv, les relire dans mySQL, et à faire une série
d'opérations afin de pouvoir utiliser le contenu. J'ai 2 versions,
une rapide et une lente. Le problème arrive plus souvent avec la
version lente traitant les deux bases, mais cela semble arriver aussi
avec la version rapide. La différence entre rapide et lent est que
certaines vérifications ne sont pas faites. Sinon, les écritures au
disque sont les mêmes.

Parfois, quand je lance les deux opérations (préparer les données
de couples et d'individus), le PC arrête. Il ne gèle pas, il s'éteint.
Et je ne comprends pas pourquoi.

Mon ordi :

Windows 7, DD de 578 Go, donc 40 Go libres (donc, assez d'espace
disponible)

La dernière version de EasyPHP avait ce problème. J'ai maintenant
WampServer.

EasyPHP :
EasyPHP-DevServer-14.1VC9
donc PHP 5.4.x / 5.3.x / 5.2.x, Apache 2.4.7 VC9, MySQL 5.6.15,
PhpMyAdmin, Xdebug + modules + components

Wampserver 2.5
donc Apache : 2.4.9 MySQL : 5.6.17 PHP : 5.5.12 PHPMyAdmin : 4.1.14
SqlBuddy : 1.3.3 XDebug : 2.2.5

Versions différentes pour Apache, mySQL et PHP.


Mon logiciel :

Couples : plus de 200 000 fiches, plusieurs tables, les fichiers
SQL autour de 50 Mo

Individus : plus de 700 000 fiches, le fichier principal près de
800 Mo

Pour rendre la situation encore plus confuse : ce n'est pas
systématique. Je lance le traitement, mon ordi s'éteint, je
recommence et le traitement se termine. Comme je n'ai pas
relancé les autres applications, je soupçonne un conflit,
mais comme en général, le PC ne s'éteint pas, je ne comprends
pas ce qui peut se passer.



J'ai souvent plusieurs autres applications qui fonctionnent en
même temps, comme 2 navigateurs (Seamonkey et Firefox), la suite
LibreOffice 3.4, et tout ce qui s'installe pour gérer la caméra,
les imprimantes, les disques, etc. En bref, pratiquement impossible
de pointer un logiciel en particulier.




Denis
Denis Beauregard
2015-12-15 16:11:35 UTC
Permalink
Le Tue, 15 Dec 2015 11:00:49 -0500, Denis Beauregard
Post by Denis Beauregard
Quand je lance une certaine application que j'ai écrit moi-même et
sans importer de code, mon ordi s'éteint. Je suis passé de EasyPHP à
Wampserver et la situation est la même...
J'oubliais un détail : les applications s'auto-relancent. Elles
peuvent durer 10 à 30 minutes, mais comme je ne savais pas comment
prolonger la durée de 30 secondes au début, j'ai utilisé cette ligne
au début du code HTML :

<head>
<meta http-equiv="refresh" content="1;url=traiter.php">
</head>

Donc, après 30 secondes (j'ai parfois 2 minutes, parfois plus, depuis
que j'ai découvert qu'on pouvait changer cette limite), le logiciel
redémarre à partir de la ligne courante. À mon avis, le heap ne peut
pas dépasser. Ou bien c'est le cas quand je lance les deux traitements
(puisque les opérations sont plus complexes) ?

Si c'est le cas, comment je mesure le heap disponible ?

Le système indique : RAM 4.0 Go, utilisable 3,74.
En ce moment (une des applications lancée) 918 Mo libre, 34 Mo libre)

Est-ce que ce 34 Mo, qui varie, serait la cause du problème ?


Denis
Thierry Houx
2015-12-17 04:38:51 UTC
Permalink
Post by Denis Beauregard
Bonjour,
Je ne comprends pas ce qui arrive.
Quand je lance une certaine application que j'ai écrit moi-même et
sans importer de code, mon ordi s'éteint. Je suis passé de EasyPHP à
Wampserver et la situation est la même...
En gros : j'ai une grosse base de données avec 2 gros blocs, des
couples et des individus. Un de mes processus consiste à relire des
fichiers .csv, les relire dans mySQL, et à faire une série
d'opérations afin de pouvoir utiliser le contenu. J'ai 2 versions,
une rapide et une lente. Le problème arrive plus souvent avec la
version lente traitant les deux bases, mais cela semble arriver aussi
avec la version rapide. La différence entre rapide et lent est que
certaines vérifications ne sont pas faites. Sinon, les écritures au
disque sont les mêmes.
Parfois, quand je lance les deux opérations (préparer les données
de couples et d'individus), le PC arrête. Il ne gèle pas, il s'éteint.
Et je ne comprends pas pourquoi.
Windows 7, DD de 578 Go, donc 40 Go libres (donc, assez d'espace
disponible)
La dernière version de EasyPHP avait ce problème. J'ai maintenant
WampServer.
EasyPHP-DevServer-14.1VC9
donc PHP 5.4.x / 5.3.x / 5.2.x, Apache 2.4.7 VC9, MySQL 5.6.15,
PhpMyAdmin, Xdebug + modules + components
Wampserver 2.5
donc Apache : 2.4.9 MySQL : 5.6.17 PHP : 5.5.12 PHPMyAdmin : 4.1.14
SqlBuddy : 1.3.3 XDebug : 2.2.5
Versions différentes pour Apache, mySQL et PHP.
Couples : plus de 200 000 fiches, plusieurs tables, les fichiers
SQL autour de 50 Mo
Individus : plus de 700 000 fiches, le fichier principal près de
800 Mo
Pour rendre la situation encore plus confuse : ce n'est pas
systématique. Je lance le traitement, mon ordi s'éteint, je
recommence et le traitement se termine. Comme je n'ai pas
relancé les autres applications, je soupçonne un conflit,
mais comme en général, le PC ne s'éteint pas, je ne comprends
pas ce qui peut se passer.
J'ai souvent plusieurs autres applications qui fonctionnent en
même temps, comme 2 navigateurs (Seamonkey et Firefox), la suite
LibreOffice 3.4, et tout ce qui s'installe pour gérer la caméra,
les imprimantes, les disques, etc. En bref, pratiquement impossible
de pointer un logiciel en particulier.
Denis
Sans aller chercher trop loin, as-tu surveillé la T° du CPU quand tu
fais tourner tes applis. Il existe dans certains bios une protection qui
arrête l'ordi quand la T° est trop élevée.
Simplement un radiateur CPU un peu encrassé et ça chauffe très rapidement.

A part pour du développement les wamp et autre EasyPHP ne sont pas
optimaux: un vieux PC, un Linux avec serveur LAMP serait une meilleure
solution.
--
Thierry Houx (***@free.fr)
Météo Fontaine le Dun: http://thierry.houx.free.fr/meteoWEB
Webmestre du site http://www.geneacaux.org/
Membre CGPCSM N°72-2576
Denis Beauregard
2015-12-17 13:18:48 UTC
Permalink
Le Thu, 17 Dec 2015 05:38:51 +0100, Thierry Houx
Post by Thierry Houx
Post by Denis Beauregard
Bonjour,
Je ne comprends pas ce qui arrive.
Quand je lance une certaine application que j'ai écrit moi-même et
sans importer de code, mon ordi s'éteint. Je suis passé de EasyPHP à
Wampserver et la situation est la même...
[...]
Post by Thierry Houx
Sans aller chercher trop loin, as-tu surveillé la T° du CPU quand tu
fais tourner tes applis. Il existe dans certains bios une protection qui
arrête l'ordi quand la T° est trop élevée.
Simplement un radiateur CPU un peu encrassé et ça chauffe très rapidement.
A part pour du développement les wamp et autre EasyPHP ne sont pas
optimaux: un vieux PC, un Linux avec serveur LAMP serait une meilleure
solution.
J'ai aussi soupçonné la température, surtout que j'entendais le
ventilateur qui devient parfois très bruyant.

Mais j'ai relu la dernière réponse de mon autre message de
septembre, que je n'avais pas lu parce que je suis passé à
wampserver à ce moment. J'ai modifié la mémoire utilisée dans
php.ini, passant de 128 Mo à 228 Mo. J'ai fait un essai hier
avec les deux applications en mode maximal et l'ordi n'a pas
gelé. C'est peut-être un problème résolu. Je verrai si cela ne
recommence plus.


Denis

Pierre Maurette
2015-12-17 10:30:32 UTC
Permalink
Denis Beauregard :
[...]
Denis
Bonjour,
Je suis d'accord avec Thierry Houx, je n'ai eu ce genre de coupure sans
prévenir mais propre que dans le cas d'un dépassement de seuil
thermique.
La température du processeur dépend directement et rapidement de sa
charge. La charge "normale" est proche de 0%, fondamentalement un
ordinateur personnel passe son temps à poireauter. La constante de
temps du transfert charge -> température est faible, mais non nulle.
Les accès synchrones à la mémoire (dont les disques) génèrent des
périodes de charge nulle. Là-dessus vient le système de
refroidissement, asservi (PID j'imagine) à la mesure de température.
Pour un PC de bureau, ce système doit ou devrait assurer le
fonctionnement, c'est à dire le maintien d'une température de coeur
convenable, à charge 100% sur une durée infinie. Pour un portable, ou
certaines configurations de PC de bureau, le système va jouer également
sur la fréquence, c'est à dire virtuellement sur la charge effective.
Sur votre PC, vous pouvez très bien ne jamais vous rendre compte que
votre refroidissement est sous-dimensionné, encrassé, voire en panne ou
débranché. En effet les périodes de forte charge sont - ou peuvent être
- rares, parfois comme lors de la phase de boot modérées par les accès
disque.
La première chose utile est de surveiller d'un oeil mais en permanence
est la charge processeur. Le gadget de Windows 7 va très bien pour ça.
Vous constaterez alors peut-être, sans doute, que les extinctions de
votre système surviennent à l'issue d'une période de très forte charge.
Vous pourriez également avoir entendu le ventilateur accélérer, c'est
un renseignement intéressant.
A partir de là, vous avez les rustines, la réparation, et les
enseignements.
Les rustines, pour faire le boulot pour l'instant, je ne connais que
l'introduction d'accès lent dans le processus. Par exemple sauvegarde
système qui passera si vers un disque USB. Ou traitement d'image qui
nécessitera une modification d'algo, de "lire tout sur l'APN puis
traiter tout" on passe à "pour cahque image, la lire sur l'APN et la
traiter".
La réparation: il faut faire en sorte que la température processeur
reste convenable en charge 100% sur une durée infinie. Une minute est
une bonne idée de l'infini dans ce cas. Vérification du fonctionnement
du ventilateur, nettoyage du ventirad, vérification de son installation
(contact processeur). S'il le faut, changement du ventirad.
Les enseignements: est-ce que cette grosse charge, même si l'ordi la
supporte maintenant, est ce que vous souhaitez ? Est-elle compatible
avec la destination finale, en production, de l'application ?
Donc la première chose à faire est d'installer une surveillance de la
charge, de l'étudier sur une certaine durée puis de lancer
l'application fautive.
Bonne journée...
--
Pierre Maurette
Continuer la lecture sur narkive:
Loading...