webForumDet fria alternativet

Vad lagras i webbserverns minne?

Webbservrar

7 svar · 808 visningar · startad av doggelito

Medlem sedan juni 20003 076 inlägg
Frågan#1

Hej,
Jag har problem med en webbplats som käkar minne till frukost, lunch och middag så applikationspoolen slår i taket konstant.
App poolen är satt till att få nyttja 256 mb ram.

Webbplatsen är till 95% gjord i traditionell asp, det finns en bildstreamingfunktion gjord i asp.net som är de övriga 5 procenten.

Vad är det egentligen som kan lagras i ramminnet på webbservern som gör att den får fnatt?

Medlem sedan feb. 200112 078 inlägg
#2

Garanterat en minnesläcka någonstans i källkoden. Man kan ju inte veta helt säkert, men när du säger "bildstreamningsfunction i asp.net" så rycker det ju lite i ena lilltån - jag skulle börja i den änden, och se till att dui gör .Close på alla Stream's och liknande objekt, samt ser till att dispose'a saker i finally{} om du har felhantering (misstänker jag är det snyggaste sättet?).

I vanlig asp får du se till att du alltid fimpar objekt med "set obj = nothing" eller gör .close på motsvarande datacontainers, samt inte lagrar en massa strunt i session eller application som ligger och skräpar (det gäller ju visserligen asp.net också).

Medlem sedan juni 20003 076 inlägg
#3

Men visst måste det vara en massa annat internt IIS lull lull också, eller?
Ett snabbtest:
1. Jag stoppade app poolen och startade den igen för att få den tömd.
2. Slog in adressen till en statisk htmlfil på webbplatsen som innehåller 2 meningar text, en gif bild och en länkad css fil.
Task managern visar nu 7,8 mb

htmlfilen är 1 kb, gif bilden är 2 kb, css filen existerar inte alls på disk, htmlfilen länkar bara till den ändå!

Vadan detta?

Medlem sedan juni 20014 290 inlägg
#4

Storleken beror på hur cachen fungerar, om den skall kompilera något "on the fly", bibliotek som skall länkas in ...

Så att filerna bara är på några KB betyder inte att minnesutnytjande är lika litet.

Men om minnesutnyttjande bara ökar hela tiden och det inte är något annat som körs så tycker jag också att det luktar minnesläcka.

Medlem sedan feb. 200112 078 inlägg
#5

Och sen är det heap, cache, session och app context, w3wp image, laddade moduler.. 7 eller 8 mb är ingenting initialt, precis som Gunnar säger. Har du däremot en tillväxt som är konstant, så är det mest sannolikt en minnesläcka.

doggelito skrev:

Men visst måste det vara en massa annat internt IIS lull lull också, eller?
Ett snabbtest:
1. Jag stoppade app poolen och startade den igen för att få den tömd.
2. Slog in adressen till en statisk htmlfil på webbplatsen som innehåller 2 meningar text, en gif bild och en länkad css fil.
Task managern visar nu 7,8 mb

htmlfilen är 1 kb, gif bilden är 2 kb, css filen existerar inte alls på disk, htmlfilen länkar bara till den ändå!

Vadan detta?

Medlem sedan juni 20003 076 inlägg
#6

7 mb blev det efter jag öppnade htmlfilen på min testserver.
Men det är klart, det laddas kanske in en del filer ifrån bin-katalogen ändå bara av att webbplatsen startats.

På webbhotellet däremot där den riktiga webplatsen ligger så slukas 256 mb på 10 sekunder och app poolen startar om hela tiden.

Jag kan inte hitta att jag har minnesläckage nånstans i koden men jag får helt enkelt fortsätta leta.

Har ni någon uppfattning om vad en stor webbplats, säg dustin.se, har i minnesutnyttjande?
Mitt fall är absolut ingen stor site, men bara så jag får en referenssiffra.

Medlem sedan juni 20003 076 inlägg
#7

Jag kan nu konstatera att det är inga fel i bildstreamingen och det finns inga evighetsloopar gömda.

OveRRidE skrev:

Och sen är det heap, cache, session och app context, w3wp image, laddade moduler.. 7 eller 8 mb är ingenting initialt, precis som Gunnar säger. Har du däremot en tillväxt som är konstant, så är det mest sannolikt en minnesläcka.

Tillväxten är inte konstant på min testserver, minnet ligger stabilt på runt 65 mb. Men då är jag bara en person som testkör.
Hurvida det är konstant på webbhotellet vet jag inte, jag har bara fått ur supporten att den slår i taket på 256 mb och poolen startas därmed om. 10 sekunder senare startar den om igen... och igen... :(

Medlem sedan juni 20003 076 inlägg
#8

Ny info:
Evighetsloopar och dyligt är uteslutet, även på webbhotellet.

Siten ligger stabilt på 50-60 mb även på webbhotellet.
Dock så har webbhotellet varit så vänliga och behövat höja virtuella minnesnivån i app poolen till 512 mb nu mot tidigare 256!

Är det någon som kan förklara det? Varför behöver poolen stå på 512 mb när siten bara ligger på 50 mb för att sessionerna ska hålla?
Och enlig peak memory i task managern så peakar den på 50 mb.

269 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
142 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)