att: arne_v (arkitektur og performance)
Hej Arne.Håber du ser denne besked og har 10 min til at hjælpe.
Er i et tidligere forsøg på at spørge direkte efter dig blevet bekendtgjort med at man kun må gøre dette hvis man ikke uddeler points, derfor er der ingen points i dette spørgsmål. Håber du gider alligevel.
Mit problem består i at overkue performance/flaskehalse iforhold til valg af arkitektur. Jeg har brug for hjælp til at finde den bedst mulige løsning og eventuelle fejl ved den måde jeg har valgt at gribe det an på.
kort fortalt er jeg ved at lave en webchat og jeg bygger på et eksemple fra nettet. Der andvende AJAX.
----------------------------
Den oprindelige koden er groft sagt delt op i 3 stykker.
klient:
En client.aspx side, ingen nævneværdig codeBehind.
Indeholder html og javascript der bruges ved kald til serveren(server.aspx.cs)
Server:
En Server.aspx.cs, ingen frontcode(kun ref linien).
Siden håndtere klient requesten i 'onPageLoad'. Den kalder chatEngine og retunere svaret til klienten.
ChatEngine:
En chatEngine.cs fil.
ChatEngine håndtere selve chat afviklingen, brugerlogin, beskeder...Alt det der nu skal til.
Bruger og beskeder ligger i hvert deres stirng array.
ChatEngine er skrevet som 1 chatrum og kan pt håndtere 30 brugere.
ChatEngine.cs objectet bliver oprette som en global instans ved applications start.
----------------------------
ovenstående køre fint, men nu kommer så min udbygning.
Jeg tænkte at hvert af de 100 chatrum skulle køre som tråde(tester kun med 3 rum).
der bliver nu lavet 3 instanser af ChatEngine i global.ascx.cs ved runtime og de blive lagt i en liste. Requesten fra klienten indeholde et ekstra id, der
så bruges af Server.aspx.cs til at finde det rigtige chatrum i listen.
prototype test af dette køre ok.
Jeg kan dog ikke overskue konsekvenserne ved 3000 brugere på engang.
Kan en side, idette tilfælde server.aspx.cs, håndtere alle de kald 3000 brugere ville afgive.
skal ChatEngine isted for tråde køre som en NT-Service.
Er dette valg af arkitektur ubrugeligt.
Hvis ja, hvad gør jeg så..........ect ect ect :)
!! Ved ikke lige hvordan jeg skal formulere konkrete spørgsmål, men håber du ud fra ovenstående kan lave en diagnose og en anbefalet kur ;)
Serveren dette skal køre på er en Proliant DL380 G3 med
1 processor.
Med venlig hilsen
Anders