Pourquoi j'ai autant de process ?

Pourquoi j'ai autant de process ? - Java - Programmation

Marsh Posté le 03-03-2005 à 12:29:39    

J'ai laissé tourné mon appli Java.
 
Et en 24h Java est passé de 34mo à 102mo  :heink:  
 
c'est normal ?
 
J'ai plus de 30 process quand il y 4 utilisateurs sur l'appli  :heink:  
 
Certains process ont pour "TIME" : 0 seconde  :heink:  
 
D'où cela peut venir ?
 
Qui gére tout ces process ?
 
Pourquoi les process inactif ne sont pas enlevé ?
 
NB : J'utilise Tomcat.


Message édité par Mazda3 le 03-03-2005 à 13:49:28
Reply

Marsh Posté le 03-03-2005 à 12:29:39   

Reply

Marsh Posté le 03-03-2005 à 12:30:31    

Ah oui, g oublié de dire mais après un certain temps, j'ai un outOfMemorry

Reply

Marsh Posté le 03-03-2005 à 12:34:12    

Sans rien savoir de ton code... par exemple jdirai que tu close pas tes connection jdbc.

Reply

Marsh Posté le 03-03-2005 à 12:42:14    

Mazda3 a écrit :

J'ai laissé tourné mon appli Java.
 
Et en 24h Java est passé de 34mo à 102mo  :heink:  
 
c'est normal ?


 
Non.
 
Pas le choix, il faut que tu utilises un Profiler pour chercher d'où proviennent tes pertes mémoires. C'est généralement très difficile à trouver sans ces outils.

Reply

Marsh Posté le 03-03-2005 à 13:44:05    

glod 2 a écrit :

Sans rien savoir de ton code... par exemple jdirai que tu close pas tes connection jdbc.


 
J'utilise le pool de connexion de Tomcat, donc les connexions sont gérés par celui-ci.
 
ça peut venir de là ?  :??:

Reply

Marsh Posté le 03-03-2005 à 13:47:36    

Voici la config du pool de Tomcat    
   
           

Code :
  1. <parameter>
  2.               <name>maxActive</name>
  3.               <value>2000</value>
  4.             </parameter>
  5.             <parameter>
  6.               <name>maxWait</name>
  7.               <value>20000</value>
  8.             </parameter>
  9.             <parameter>
  10.               <name>driverClassName</name>
  11.               <value>org.gjt.mm.mysql.Driver</value>
  12.             </parameter>
  13.             <parameter>
  14.               <name>maxIdle</name>
  15.               <value>2000</value>
  16.             </parameter>


Message édité par Mazda3 le 03-03-2005 à 13:47:59
Reply

Marsh Posté le 03-03-2005 à 13:54:41    

Et voila ce que j'ai au niveau des processus :
 

Code :
  1. F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
  2. ...
  3. 000 S  1001 12214     1  0  69   0 - 70843 wait_f ?        00:00:04 java
  4. 040 S  1001 12215 12214  0  68   0 - 70843 poll   ?        00:00:00 java
  5. 040 S  1001 12216 12215  0  69   0 - 70843 nanosl ?        00:02:27 java
  6. 040 S  1001 12217 12215  0  69   0 - 70843 rt_sig ?        00:00:01 java
  7. 040 S  1001 12218 12215  0  69   0 - 70843 rt_sig ?        00:00:00 java
  8. 040 S  1001 12219 12215  0  69   0 - 70843 rt_sig ?        00:00:00 java
  9. 040 S  1001 12220 12215  0  69   0 - 70843 rt_sig ?        00:00:00 java
  10. 040 S  1001 12221 12215  0  69   0 - 70843 rt_sig ?        00:00:02 java
  11. 040 S  1001 12222 12215  0  69   0 - 70843 nanosl ?        00:00:22 java
  12. 040 S  1001 12224 12215  0  69   0 - 70843 nanosl ?        00:00:08 java
  13. 040 S  1001 12225 12215  0  69   0 - 70843 nanosl ?        00:00:00 java
  14. 040 S  1001 12226 12215  0  69   0 - 70843 nanosl ?        00:00:49 java
  15. 040 S  1001 12227 12215  0  69   0 - 70843 nanosl ?        00:00:00 java
  16. 040 S  1001 12228 12215  0  69   0 - 70843 nanosl ?        00:00:00 java
  17. 040 S  1001 12229 12215  0  69   0 - 70843 nanosl ?        00:00:00 java
  18. 040 S  1001 12230 12215  0  69   0 - 70843 nanosl ?        00:00:00 java
  19. 040 S  1001 12231 12215  0  69   0 - 70843 nanosl ?        00:00:00 java
  20. 040 S  1001 12232 12215  0  69   0 - 70843 nanosl ?        00:00:00 java
  21. 040 S  1001 12233 12215  0  69   0 - 70843 nanosl ?        00:00:08 java
  22. 040 S  1001 12234 12215  0  69   0 - 70843 rt_sig ?        00:01:02 java
  23. 040 S  1001 12235 12215  0  69   0 - 70843 rt_sig ?        00:00:32 java
  24. 040 S  1001 12236 12215  0  69   0 - 70843 rt_sig ?        00:00:34 java
  25. 040 S  1001 12237 12215  0  69   0 - 70843 rt_sig ?        00:01:16 java
  26. 040 S  1001 12238 12215  0  69   0 - 70843 nanosl ?        00:00:00 java
  27. 040 S  1001 12239 12215  0  69   0 - 70843 rt_sig ?        00:00:00 java
  28. 040 S  1001 12240 12215  0  69   0 - 70843 rt_sig ?        00:00:00 java
  29. 040 S  1001 12241 12215  0  69   0 - 70843 rt_sig ?        00:00:00 java
  30. 040 S  1001 12242 12215  0  69   0 - 70843 wait_f ?        00:00:00 java
  31. 040 S  1001 12243 12215  0  69   0 - 70843 nanosl ?        00:00:00 java
  32. 040 S    31 12245 12195  0  69   0 -  2316 tcp_da ?        00:01:58
  33. postmaster
  34. 040 S    31 12246 12195  0  69   0 -  2316 tcp_da ?        00:02:28
  35. postmaster
  36. 040 S    31 12247 12195  0  69   0 -  2328 tcp_da ?        00:01:12
  37. postmaster
  38. 040 S    31 12249 12195  0  69   0 -  2321 tcp_da ?        00:01:52
  39. postmaster
  40. 040 S  1001 12251 12215  0  69   0 - 70843 rt_sig ?        00:01:36 java
  41. 040 S  1001 12252 12215  0  69   0 - 70843 rt_sig ?        00:01:05 java
  42. 040 S  1001 12253 12215  0  69   0 - 70843 rt_sig ?        00:00:58 java
  43. 040 S  1001 12254 12215  0  69   0 - 70843 rt_sig ?        00:01:46 java
  44. 040 S    31 12259 12195  0  70   0 -  2329 tcp_da ?        00:04:00
  45. postmaster
  46. 040 S  1001 12260 12215  0  69   0 - 70843 rt_sig ?        00:01:14 java
  47. 040 S  1001 12261 12215  0  69   0 - 70843 rt_sig ?        00:01:19 java
  48. 040 S  1001 12262 12215  0  69   0 - 70843 rt_sig ?        00:00:34 java
  49. 040 S  1001 12263 12215  0  70   0 - 70843 poll   ?        00:00:44 java
  50. 040 S    31 12269 12195  0  69   0 -  2317 tcp_da ?        00:02:47
  51. postmaster
  52. 040 S  1001 12270 12215  0  69   0 - 70843 rt_sig ?        00:00:00 java
  53. 040 S    31 12277 12195  0  69   0 -  2318 tcp_da ?        00:03:02
  54. postmaster
  55. 040 S    31 12278 12195  0  69   0 -  2319 tcp_da ?        00:00:50
  56. postmaster
  57. 040 S    31 12291 12195  0  69   0 -  2326 tcp_da ?        00:02:57
  58. postmaster
  59. 040 S    31 12292 12195  0  69   0 -  2324 tcp_da ?        00:03:16
  60. postmaster
  61. 040 S    31 12293 12195  0  70   0 -  2321 tcp_da ?        00:02:46
  62. postmaster
  63. 040 S    31 12294 12195  0  69   0 -  2320 tcp_da ?        00:01:06
  64. postmaster
  65. 040 S  1001 12308 12215  0  69   0 - 70843 rt_sig ?        00:00:34 java
  66. 040 S  1001 12309 12215  0  69   0 - 70843 rt_sig ?        00:00:00 java
  67. 040 S  1001 12310 12215  0  69   0 - 70843 rt_sig ?        00:01:05 java
  68. 040 S  1001 12311 12215  0  69   0 - 70843 poll   ?        00:01:14 java
  69. 040 S  1001 12312 12215  0  69   0 - 70843 rt_sig ?        00:00:36 java
  70. 040 S  1001 12313 12215  0  70   0 - 70843 rt_sig ?        00:00:31 java
  71. 040 S  1001 12314 12215  0  69   0 - 70843 rt_sig ?        00:00:00 java
  72. 040 S  1001 12315 12215  0  69   0 - 70843 poll   ?        00:00:03 java
  73. 040 S  1001 12316 12215  0  69   0 - 70843 rt_sig ?        00:00:30 java
  74. 040 S  1001 12317 12215  0  69   0 - 70843 rt_sig ?        00:00:18 java
  75. 040 S  1001 12318 12215  0  69   0 - 70843 rt_sig ?        00:00:04 java
  76. 040 S  1001 12319 12215  0  69   0 - 70843 wait_f ?        00:01:03 java
  77. 040 S  1001 12320 12215  0  69   0 - 70843 rt_sig ?        00:02:25 java
  78. 040 S  1001 12321 12215  0  69   0 - 70843 rt_sig ?        00:00:15 java
  79. 040 S  1001 12322 12215  0  69   0 - 70843 poll   ?        00:00:35 java
  80. 040 S  1001 12323 12215  0  69   0 - 70843 poll   ?        00:00:28 java
  81. 040 S  1001 12324 12215  0  69   0 - 70843 rt_sig ?        00:00:26 java
  82. 040 S  1001 12325 12215  0  69   0 - 70843 poll   ?        00:00:54 java
  83. 040 S  1001 12326 12215  0  69   0 - 70843 rt_sig ?        00:01:05 java
  84. 040 S  1001 12327 12215  0  69   0 - 70843 rt_sig ?        00:02:11 java
  85. 040 S  1001 13051 12215  0  69   0 - 70843 rt_sig ?        00:00:24 java
  86. 040 S  1001 13052 12215  0  69   0 - 70843 rt_sig ?        00:00:00 java
  87. 040 S  1001 13053 12215  0  69   0 - 70843 rt_sig ?        00:00:47 java
  88. 040 S  1001 13054 12215  0  69   0 - 70843 poll   ?        00:00:15 java
  89. 040 S  1001 13055 12215  0  69   0 - 70843 rt_sig ?        00:00:03 java
  90. 040 S  1001 13056 12215  0  69   0 - 70843 rt_sig ?        00:00:04 java
  91. 040 S  1001 13057 12215  0  69   0 - 70843 rt_sig ?        00:00:00 java
  92. 040 S  1001 13058 12215  0  69   0 - 70843 rt_sig ?        00:00:00 java
  93. 040 S  1001 13059 12215  0  69   0 - 70843 poll   ?        00:00:12 java
  94. 040 S  1001 13060 12215  0  69   0 - 70843 rt_sig ?        00:00:00 java
  95. 040 S  1001 13061 12215  0  69   0 - 70843 rt_sig ?        00:00:00 java
  96. 040 S  1001 13062 12215  0  69   0 - 70843 rt_sig ?        00:01:04 java
  97. 040 S  1001 13068 12215  0  69   0 - 70843 poll   ?        00:00:56 java
  98. 040 S  1001 13069 12215  0  69   0 - 70843 rt_sig ?        00:00:25 java
  99. 040 S  1001 13070 12215  0  69   0 - 70843 rt_sig ?        00:00:15 java
  100. 040 S  1001 13071 12215  0  69   0 - 70843 rt_sig ?        00:00:00 java
  101. ...


Message édité par Mazda3 le 03-03-2005 à 13:54:51
Reply

Marsh Posté le 03-03-2005 à 14:24:59    

Bon je viens de faire un truc :
 
je coupe tomcat et le relance et là 30 processus Java apparaissent.  :??:


Message édité par Mazda3 le 03-03-2005 à 14:25:14
Reply

Marsh Posté le 03-03-2005 à 14:39:49    

Même quand il n'y a pas encore d'activité, un serveur d'app est près à réagir en cas d'affluence. Il prépare ces pools de thread pour prendre en charge les requêtes en parallèle, il observe les services chargés, ... Bref, il lui faut un certain nombre de thread.  
 
Utilise un profiler et tu t'en sortiras.

Reply

Marsh Posté le 03-03-2005 à 15:07:35    

replix a écrit :


 
Utilise un profiler et tu t'en sortiras.


 
Tu en as un a me conseiller ?

Reply

Marsh Posté le 03-03-2005 à 15:07:35   

Reply

Marsh Posté le 03-03-2005 à 15:18:50    

Tu peux essayer JProfiler ou Yourkit java profiler. Tu peux avoir une licence temporaire pour ces 2 produits.

Reply

Marsh Posté le 03-03-2005 à 15:30:31    

Bon je viens d'installer AppPerfect ...
 
ça a l'air d'une usine a gaz ...

Reply

Marsh Posté le 03-03-2005 à 15:34:53    

Utilise plutôt un des produits que je t'ai conseillé et qui sont spécialisés dans le profiling.

Reply

Marsh Posté le 03-03-2005 à 18:25:48    

Mazda3 a écrit :

J'utilise le pool de connexion de Tomcat, donc les connexions sont gérés par celui-ci.
 
ça peut venir de là ?  :??:


si t'as un pool non, sauf si t'oublies de lui rendre les connexions :o
Enfin même tfaçon jpense que j'ai dis une connerie dtaleur, une connexion prend pas un processus à elle. :jap:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed