Toon posts:

[asp.net]performance en bandbreedte

Pagina: 1
Acties:

Verwijderd

Topicstarter
Een week geleden heeft de hosting provider een productie site van mij verplaatst. Uiteraard ging dit niet zonder problemen maar alles is back up and running. Nu klaagt de hosting provider dat ik teveel cpu tijd gebruik en ook teveel bandbreedte.

Aangezien bandbreedte geld kost voor de hostingprovider en hij dit gewoon doorrekend aan mij, moet dit beperkt worden.

Uit de statistieken bleek dat de site de laatste twee dagen rond de 300 bezoekers had. De bandbreedte was 500 megabytes op twee dagen.

De cpu van de webserver werd steeds belast met 20 tot 25% terwijl er een aantal (drie of vier) bezoekers online waren.

De site maakt veelvuldig gebruik van afbeeldingen. Deze afbeeldingen werden on the fly gecomprimeerd met de drawImage methode (Dit is een tragere methode als etThumbnailImage, maar dit leverd bij sommige foto's slechte afbeeldingen). Het resultaat van de thumbnail wordt verstuurd via g.Save(Response.OutputStream, ImageFormat.Jpeg)

De hosting-provider stelde voor om de foto's niet meer on the fly te comprimeren. Deze morgen heb ik de code dan herschreven zodat hij eerst een bestand maakt, en dan dat bestand weergaf.

Nu blijkt dit nog steeds niets op te lossen.
De hosting-provider zegt dat ze met NAT werken, wat gedeeltelijk zou verklaren waarom er zoveel bandbreedte zou zijn: g.save(REsponse.outputstream) ZOU daardoor trager gaan: ik versta dit niet. Dat bij nat elk pakketje een nieuw destionation ip moet worden gegeven kan er toch niet voor zorgen dat bandbreedte of cpu vermeerdert?

Wat kunnen we doen (hostingprovider of ik) om dit probleem te verhelpen!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 06:53

gorgi_19

Kruimeltjes zijn weer op :9

Probleem van bandbreedte:
http://www.blowery.org/code/HttpCompressionModule.html En plaatjes kan je niet verder comprimeren; maak er anders gif's / png / jpeg's van :)

Probleem van te veel cpu gebruik:
Outputcache met een cache duration van 5 minuten :)

[ Voor 21% gewijzigd door gorgi_19 op 24-08-2004 19:07 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
Ik heb dan één template pagina: page.aspx. Deze pagina kan dan allerlei verschillende pagina's bevatten (modules) en elke module kan nog parameters bevatten in de querystring: wanneer ik het cache wordt er dan rekening mee gehouden? Je kan wel vary by parameter gebuiken maar er zijn zoveeeel paramters.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 06:53

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 24 augustus 2004 @ 19:11:
Ik heb dan één template pagina: page.aspx. Deze pagina kan dan allerlei verschillende pagina's bevatten (modules) en elke module kan nog parameters bevatten in de querystring: wanneer ik het cache wordt er dan rekening mee gehouden? Je kan wel vary by parameter gebuiken maar er zijn zoveeeel paramters.
Waarom maak je dan geen handler file voor je images? Scheelt sowieso ook nog een stukje performance, aangezien je geen overhead hebt van Page.

En idd, cache dependency's kan je instellen :) Desnoods kan je partial caching gaan gebruiken per usercontrol :)

[ Voor 10% gewijzigd door gorgi_19 op 24-08-2004 19:12 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
frustratie: Waarom moet ik met httpHandlers zitte werken voor ne stoeme site voor een schamele honderd bezoekers, of is dit geen klein siteje meer en moet ik DRINGEND meer aan perfomence zitten denke?

Zijn er ook stress tooltjes die gratis zijn voor asp.net?

  • whoami
  • Registratie: December 2000
  • Laatst online: 23-05 16:52
In VS.NET zat er toch een stress-test tool voor webapp's? ACT ofzo, of hoe heet dat ook alweer.

https://fgheysels.github.io/


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 06:53

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 24 augustus 2004 @ 19:14:
frustratie: Waarom moet ik met httpHandlers zitte werken voor ne stoeme site voor een schamele honderd bezoekers, of is dit geen klein siteje meer en moet ik DRINGEND meer aan perfomence zitten denke?

Zijn er ook stress tooltjes die gratis zijn voor asp.net?
100 bezoekers is een klein siteje, imho, en dat moet ASP.Net makkelijk trekken. Echter, ik heb het idee het je goed gelukt is om het ding zo ontzettend traag te maken en dat je alle performacemogelijkheden en optimalisaties er uit gesloopt hebt.

Immers, caching gebruik je niet en je gaat tig bestanden on the fly resizen voor iedere bezoeker. Da's een garantie voor traagheid ja :)

Handler files zullen relatief weinig gaan uitmaken, da's alleen om die paar procent extra overhead weg te krijgen. Echter, daar zit in jouw geval de bottleneck niet. Maar als je het toch aanpakt, kan je het in 1 keer goed doen.

Om een idee te geven; op een beetje hedendaagse server (dual proc, 2.4 Ghz) moet je ruim 300 - 400 request per seconde wel kunnen halen, zeker met dit soort relatief statische dingen.

Is alles redelijk dynamisch, dan moet je nog minimaal rond de 40 request per second wel zitten.

[ Voor 29% gewijzigd door gorgi_19 op 24-08-2004 19:23 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
update van het probleem van de bandbreedte.

De hostingprovider heeft uitgevist dat wanneer de gebruiker een fotoke download via image.aspx (image generator: haalt thumb op als het bestaat, indien niet bestaan genereren) dat er sowieso download is (normaal hé) maar ook 1/3 tot 1/2 upload! Ja u hoort het goed: upload. :? Er was de voorbije 2 weken 1 gig aan upload.

Het probleem zou zitten door gebruik te maken van volgend codeblok
code:
1
2
 Dim g As System.Drawing.Image = System.Drawing.Image.FromFile(Server.MapPath("uploads/" & "thumb_" & bestand))
                g.Save(Response.OutputStream, ImageFormat.Jpeg)

Dit is wanneer er reeds een thumb bestaat.
Response.OutputStream zou het veroorzaken.

  • 6K
  • Registratie: September 2002
  • Laatst online: 19-01-2025

6K

is ook zo...

ben waarschijnlijk spuit 11 nu, magoe:

ik weet niet hoe je de pics upload, maar waarom comprimeer je ze niet op dat moment en sla je ze gecomprimeerd op (in een database eventueel)? Dan hoeft dat allemaal niet meer te gebeuren als de gebruiker hem opvraagd?

٩(͡๏̯͡๏)۶ ٩(●̮̮̃•̃)۶


Verwijderd

Topicstarter
foto's worden bij de eerste request gethumbnailed, dit gebeurt 9/10 in de admin, wanneer hij daar de foto's na de upload bekijkt.
Pagina: 1