[JAVA] Nombre limite de thread

Nombre limite de thread [JAVA] - Java - Programmation

Marsh Posté le 07-05-2004 à 12:40:55    

Salut à tous
 
j'ai réalisé un serveur socket en java, permettant de dialoguer avec Flash afin de faire un tchat en flash.
Le tchat est composé de plusieurs salons, il est aussi possible d'envoyer des messages privés.
Tout marche impec
 
Cependant, je me pose des questions quand à la limite de mon serveur.
A chaque fois qu'un internaute se connecte pour tchatter, un thread est créé au niveau du serveur, j'imagine que le nombre de thread maximum pouvant être créés par une application dépend des ressources de celle ci (mémoire ram + processeur), mais comment savoir que ces limites vont bientôt être atteintes ? Comment calculer le nombre maximum d'utilisateurs que je peux accepter ?  
 
J'imagine que des serveurs de tchat comme ceux de wanadoo ou caramail ne tournent pas uniquement sur une seule machine, savez vous comment je peux diviser mon application sur plusieurs machines ?
 
Merci merci de m'éclairer sur ce sujet car je ne trouve pas beaucoup d'informations là dessus sur le net...

Reply

Marsh Posté le 07-05-2004 à 12:40:55   

Reply

Marsh Posté le 07-05-2004 à 13:05:52    

A ma connaissance, pour les threads comme le nombre de sockets ouvertes à un instant donné, la limite est celle de l'OS sous-jacent.
 
Par contre, côté mémoire,la limite est purement Java. Voir l'option -Xmx pour fixer la taille max du tas Java (option que tu connais peut-être).
 
Si tu veux répartir ton appli sur plusieurs machines, ça peut devenir un peu compliqué, car en générale, les différents serveurs sont capables de dialoguer (ou alors ils sont commandés par une machine gateway qui sert de tour de contrôle). En Java, il te faut découper ton application sur plusieurs machines virtuelles. Ensuite, ces machines  virtuelles peuvent tourner sur une seule ou sur plusieurs machines physiques, cela ne change rien à leur fonctionnement.

Reply

Marsh Posté le 07-05-2004 à 13:39:35    

Ben22520 a écrit :

Salut à tous
 
j'ai réalisé un serveur socket en java, permettant de dialoguer avec Flash afin de faire un tchat en flash.
Le tchat est composé de plusieurs salons, il est aussi possible d'envoyer des messages privés.
Tout marche impec
 
Cependant, je me pose des questions quand à la limite de mon serveur.
A chaque fois qu'un internaute se connecte pour tchatter, un thread est créé au niveau du serveur, j'imagine que le nombre de thread maximum pouvant être créés par une application dépend des ressources de celle ci (mémoire ram + processeur), mais comment savoir que ces limites vont bientôt être atteintes ? Comment calculer le nombre maximum d'utilisateurs que je peux accepter ?  
 
J'imagine que des serveurs de tchat comme ceux de wanadoo ou caramail ne tournent pas uniquement sur une seule machine, savez vous comment je peux diviser mon application sur plusieurs machines ?
 
Merci merci de m'éclairer sur ce sujet car je ne trouve pas beaucoup d'informations là dessus sur le net...


<HS>
Un 'tchat'?
C'est la nouvelle ortho recommandée par l'académie française?  :D  
</hs>

Reply

Marsh Posté le 07-05-2004 à 13:46:05    

Merci pour tes infos
Je ne connaissais pas l'option -Xmx, elle va m'être trés utile je pense.
 
Je pense que l'idéal pour mon application est un serveur linux avec le minimum d'applications installées dessus, et ensuite j'execute mon application avec les options -Xmx et l'option de compilation a la volée (faut que je la trouve, je viens d'en entendre parler là : http://www.infres.enst.fr/~dupouy/pdf/SIP/JVM.pdf)
 
Merci de m'avoir répondu !

Reply

Marsh Posté le 07-05-2004 à 16:01:24    

ou sinon tu modifies un serveur irc qui supporte deja le "linkage" avec d'autre serveurs... ou tu t'en inspire


Message édité par veryfree le 07-05-2004 à 16:01:39
Reply

Marsh Posté le 07-05-2004 à 16:13:03    

ah bon ? tu crois que je peux chopper les codes d'un serveur IRC ?
C'est en Java ?

Reply

Marsh Posté le 07-05-2004 à 18:04:22    

sinon, en jdk1.4 tu peux éviter d'avoir un thread de lancer pour chaque socket en utilisant des Channel ...


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 07-05-2004 à 18:11:34    

Ben22520 a écrit :

ah bon ? tu crois que je peux chopper les codes d'un serveur IRC ?
C'est en Java ?


 
il en existe des libres en java oué
http://sourceforge.net/projects/j-ircd/


Message édité par veryfree le 07-05-2004 à 18:13:45
Reply

Marsh Posté le 10-05-2004 à 09:11:19    

Merci merci !!!

Reply

Marsh Posté le 14-06-2004 à 06:28:09    

oui benou a raison pour ce genre de chose java.nio va mieux scaler. en plus pour le truc genre chat ca marcherait bien et tu aurais une programmation evenementielle (i.e regarder ce que fait le projet SEDA, tapper seda sur google)

Reply

Sujets relatifs:

Leave a Replay

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