Toon posts:

[Delphi] Afbeelding van client naar server

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik werk op dit moment aan een client server application. En als één ding uiteraard belangrijk is, dan is het wel het snel houden van de applicatie ondanks dat er continu data van de server gehaald moet worden. Nu is dit bij gewone data niet zo'n groot probleem omdat dit niet zoveel bandbreedte vraagt.

Nu loop ik op het moment tegen het volgende probleem op, er moeten afbeeldingen die in een client gemaakt worden opgeslagen kunnen worden aan de server kant. Nu is dit ook geen probleem alleen loop ik wel tegen performance aan.
Ik zal even een situatie schetsen, er worden vaak aan de client kant een stuk of 4 images gemaakt die terug gebracht worden naar zo'm 100/200kb per image. er vliegt dan zo'n halve mb over de lijn naar buiten toe. Op dat moment vallen alle andere clients die draaien terug in performance (waarschijnlijk omdat de upstream die vol zit de downstream in de weg zit?)

Heeft er iemand ervaring met dit soort problemen en een idee in welke richting te denken om hiervoor een zo goed mogelijke oplossing te vinden?

Ik sta open voor alle ideeën! :P

Groet Pheanix

Acties:
  • 0 Henk 'm!

  • ikke007
  • Registratie: Juni 2001
  • Laatst online: 18-09 14:10
Ik weet niet hoe snel je de data op de server wilt hebben. Indien het niet asap hoeft te zijn kun je bijvoorbeeld in burstmode de data sturen zodat je niet 200kb in 1x naar de server stuurt en zijn upload vol stopt, maar bv 20x 10kb met tussentijds 0,5sec niets oid....

maareh, wat voor server heb je als je slechts 0,5mb/s upload kunt verwerken... :| Ik zou eerst eens kijken wat je daar kunt verbeteren voor je performance hacks gaat bouwen in je applicatie.

[ Voor 13% gewijzigd door ikke007 op 02-03-2009 11:03 ]

Lets remove all security labels and let the problem of stupidity solve itself


Acties:
  • 0 Henk 'm!

  • Mr_Light
  • Registratie: Maart 2006
  • Niet online

Mr_Light

Zo-i-Zo de gekste.

Tja er zijn zat oplossingen alle komen er min of meer op neer dat je gaat knijpen, QoS, bandwidth shaping, slimmer protocol waarbij de plaatjes in stukken had(waarover de client overeen komen en minimaal interval, client disconnecten als hij sneller stuurt (misschien beter gezegd maximale payload afdwingen en maximale messages/time) (misschien zit je dat opnieuw dingen te implementeren waar op lagere lagen al een oplossing voor is, maar dit is meer portable en vereist minder setup door gerbuiker) verder kan je er nog altijd meer bandbreedte tegenaan gooien ;).

iig zou ik het eerst meetbaar maken, misschien zit er wel een bug in het afhandelen van de plaatjes en schiet de cpu door naar 100%(bijvoorbeeld). Volgens vele paper's boeken en guru's is het iig zo dat wanneer het op performance aankomt het vaker zo is dat bottlenecks niet zitten waar je denkt('gokt') dat ze zitten dan anders om.

IceManX schreef: sowieso


Acties:
  • 0 Henk 'm!

  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

Waarom moeten de images naar de server? Blijft de image op de server of doet de server de resize en eventueel nog wat andere aanpassingen (watermerk plaatsen ofzo)?

Als het er alleen om gaat om de image op de server te plaatsen dan kun je de images ook op de achtergrond met een snelheid van 3kb/s naar de server sturen.

En wat is uberhaupt de maximale upstream capaciteit van de internet lijn en over hoeveel clients praten we? Kan de server niet lokaal staan? Er zijn een hoop mogelijkheden, maar welke efficient zijn hangt helemaal van de applicatie context af.

If it isn't broken, fix it until it is..


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Het gaat om een applicatie waarbij clients op wel 100 verschillende locaties staan en dus ook in die aantallen aanwezig zijn. Een image van de ene locatie moet ook op een andere te zien zijn. Vandaar dat de image hierheen moet.

Ik vind de oplossing om de upstream van de image te knijpen stiekem al een verdomd goede. Je zou dan ondertussen gewoon kunnen doorwerken en wanneer het plaatje er is de clients een seintje geven. En wat betreft de server, die heeft veel capaciteit het probleem ligt natuurlijk bij upstream ook niet bij de server maar bij de client die het erheen moet sturen. Dit is iets wat voor grote bedrijven met veel filialen niet altijd overal gelijk is en vaak simpele business dsl lijntjes zijn.

Acties:
  • 0 Henk 'm!

  • Tomatoman
  • Registratie: November 2000
  • Laatst online: 22-09 13:59

Tomatoman

Fulltime prutser

Wellicht is er een component die het mogelijk maakt om de mogelijkheden van Windows voor QoS-aware applicaties te gebruiken. De download manager in Windows die automatisch updates binnenhaalt gebruikt alleen de onbenutte bandbreedte. Ik weet niet welk mechanisme hiervoor wordt gebruikt, maar Windows heeft al wat ingebouwde mogelijkheden voor beperkt bandbreedtebeheer. Met een korte zoektocht op internet kwam ik echter niet verder richting een concrete oplossing. :|

Een goede grap mag vrienden kosten.


Acties:
  • 0 Henk 'm!

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 13-09 00:05
"BITS" - Background Intelligent Transfer Service. Gebruikt automatisch ongebruikte bandbreedte.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dat klinkt interessant tomatoman/MSalters, ik ga hier is verder onderzoek naar doen..

Acties:
  • 0 Henk 'm!

  • The Fox NL
  • Registratie: Oktober 2004
  • Laatst online: 13:32
Als je ontwikkelt in Delphi en je gebruikt Indy componenten voor je connecties, dan heb je (in indy 9, weet niet hoe het zit bij Indy 10) daar de TIdIOHandlerThrottle. Bij dit component kun je de BytesPerSec / BitsPerSec instellen. Hoe je het een en ander aan elkaar moet koppelen moet je zelf maar uitzoeken, dat zou ik niet weten.

Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
MSalters schreef op dinsdag 03 maart 2009 @ 09:26:
"BITS" - Background Intelligent Transfer Service. Gebruikt automatisch ongebruikte bandbreedte.
Enig idee/info over hoe dit gedefinieerd/gedectecteerd wordt?

Lijkt me dat een proxy-server al roet in het eten kan gooien ( zolang die de content heeft heb je netwerk snelheid om te benutten, heeft deze de content niet dan zit je opeens met een internet snelheid die factor x lager ligt , wat is dan de ongebruikte bandbreedte. ) Alhoewel ik gok dat ze hiervoor een service als speedtest ofzo gebruiken om de te gebruiken bandbreedte te bepalen
Of andere clients op het netwerk, als jij niet de volledige bandbreedte verbruikt betekent dit nog niet dat je buurman die over dezelfde lijn naar buiten gaat dit niet alsnog doet.

Sowieso is het bij zakelijk gebruik imho al bijna niet meer te meten. Jouw pc zijn verkeer zegt niets over het verkeer over de inetlijn.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik neem aan dat microsoft zo slim is geweest om iets te bedenken om niet de bandbreedte van een pc te meten maar van het netwerk waar de pc zich op bevindt? Maar goed ik ben er al een tijdje meer info over aan het verzamelen en de werking blijft een beetje vaag als je het mij vraagt.
Pagina: 1