Ik zit momenteel met een vage situatie rond windows sockets.
Er is een applicatie ontwikkeld in Visual Studio C++ 6.0. Deze applicatie bestaat uit een server en een client. Tijdens de testfase stuurt de client 1024 bytes naar de server. De server stuurt vervolgens weer 1024 bytes terug. Dit gaat zo eeuwig door om te kijken wat de maximale throughput is op deze manier.
Lokaal trok deze applicatie 5-6 MB/s, en rond de 5 MB/s over een 100Mbit netwerk. Daar dit zowel lezen als versturen is zat de applicatie over een 100Mbit netwerk rond de 11MB/s. Dit komt aardig in de buurt van de werkelijkheid (99% netwerkverbruik). Tot dusver geen enkel vuiltje aan de lucht
.
Het probleem kwam met Visual Studio 2005. De performance van dezelfde applicatie is nu gezakt naar 3 MB/s (= dus 6MB/s full-duplex) over hetzelfde 100Mbit netwerk. Aan de code is niets veranderd. Wanneer ik de binary van Visual Studio 6.0 uitvoer dan zit ik met dezelfde performance loss.
Als idee kwam er op om de applicatie te draaien op een Windows 2003 Enterprise server. Dit is echter niet mogelijk i.v.m. foutmeldingen rondom .NET. Echter staat in Visual studio Common Language Support op No Common Language Support. Vanwaar deze melding???
.
Kan het zijn dat de winsock implementatie van VS2005 ten op zichte van 6.0 veel trager is? Of is er ergens een verborgen flag waarmee de performance weer op te vijzelen is?
Reeds geprobeerd:
- Het aanpassen van de send/receive window naar 512k
- Met en zonder Nagle (TCP_NO_DELAY)
- Non-blocking en blocking sockets
En op dit moment zit ik zonder ideeën dus hoop ik dat iemand hier met een biljante ingeving gaat komen die mij weer op het juiste pad brengt
B.v.d
Er is een applicatie ontwikkeld in Visual Studio C++ 6.0. Deze applicatie bestaat uit een server en een client. Tijdens de testfase stuurt de client 1024 bytes naar de server. De server stuurt vervolgens weer 1024 bytes terug. Dit gaat zo eeuwig door om te kijken wat de maximale throughput is op deze manier.
Lokaal trok deze applicatie 5-6 MB/s, en rond de 5 MB/s over een 100Mbit netwerk. Daar dit zowel lezen als versturen is zat de applicatie over een 100Mbit netwerk rond de 11MB/s. Dit komt aardig in de buurt van de werkelijkheid (99% netwerkverbruik). Tot dusver geen enkel vuiltje aan de lucht
Het probleem kwam met Visual Studio 2005. De performance van dezelfde applicatie is nu gezakt naar 3 MB/s (= dus 6MB/s full-duplex) over hetzelfde 100Mbit netwerk. Aan de code is niets veranderd. Wanneer ik de binary van Visual Studio 6.0 uitvoer dan zit ik met dezelfde performance loss.
Als idee kwam er op om de applicatie te draaien op een Windows 2003 Enterprise server. Dit is echter niet mogelijk i.v.m. foutmeldingen rondom .NET. Echter staat in Visual studio Common Language Support op No Common Language Support. Vanwaar deze melding???
Kan het zijn dat de winsock implementatie van VS2005 ten op zichte van 6.0 veel trager is? Of is er ergens een verborgen flag waarmee de performance weer op te vijzelen is?
Reeds geprobeerd:
- Het aanpassen van de send/receive window naar 512k
- Met en zonder Nagle (TCP_NO_DELAY)
- Non-blocking en blocking sockets
En op dit moment zit ik zonder ideeën dus hoop ik dat iemand hier met een biljante ingeving gaat komen die mij weer op het juiste pad brengt
B.v.d