/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Memory-leak
Fra : Kim Jensen


Dato : 02-06-01 08:42

Hejsa!

Jeg har et problem på min webserver (WIN2Ksrv, SP2, IIS 5.0, 256 MB RAM). På
serveren kører et website, der får temmelig mange hits (ca. 4500 om dagen) -
der er tale om mange requests, men svarene er meget simple (en lille slat
database-genereret HTML).

Problemet består i, at efter en uges tid eller to (altså efter ca. 50-60000
hits) bliver serveren MEGET tung at snakke med. Eller rettere, de ASP-sider
på serveren, der bruger databaser bliver meget tunge. Sider med ren HTML
bliver stadig serveret med perfekt hastighed.

Jeg har nu gransket i problemet, men kan ikke se, hvad jeg gør galt. Alle
db-forbindelser og recordsets bliver korrekt lukket efter brug.

Dog kan jeg på serveren i TaskManager'en observere, at der kører to
DLLHOST.EXE. Én under min IWAM_<server> bruger og en anden DLLHOST.EXE under
min System bruger. Jeg har konstateret at dén DLLHOST.EXE under
IWAM_<server> bruger mere og mere RAM. Når problemet begynder har den sneget
sig op på 70-80 MB! Eneste løsning er så en reboot, hvorefter den igen
starter på 3-4 MB.

Det skal også nævnes, at jeg på serveren kører et scheduleret script (.VBS),
der bruger AspTear en gang hvert 15. minut. Også her bliver
databaseforbindelser og recordssets lukket pænt. Jeg har prøvet med
alternativer til AspTear men med samme resultat.

Dét jeg ikke helt kan gennemskue er, hvor problemet skal løses! :-/

Alle forslag er velkomne!

Da jeg regner med at problemet ligger i ASP'en har jeg sat FUT til
ASP-gruppen.

--
Med venlig hilsen
Kim Jensen
____________________________________________
litewerx.com // kelvin8.com // newscaster.dk




 
 
Mathias Birkvad (02-06-2001)
Kommentar
Fra : Mathias Birkvad


Dato : 02-06-01 11:04

Hej Kim

Dit problem ligger helt klart i ASP koden eller i DB. Du skriver at alle
DB-connections lukkes pænt, men hvilken DB benytter du? Access har det med
at låse filen når der læses og skrives. Derved kan det forsinke dine
forespørgsler, der på den måde kan hobe sig op i hukommelsen. Det resultere
i at IIS-Serveren sløves og til sidst går ned.

Hvis du Benytter MySQL eller MS SQL bør du nok kigge på din SQL eller på
antallet af forbindelser til DB. Du kan med fordel benytte Execute metoden
på ADO-Objektet.

Håber du får løst dit problem.

Mhv.

Mathias Birkvad

"Kim Jensen" <kim@litewerx.dk> wrote in message
news:9fa55d$4em$1@news.cybercity.dk...
> Hejsa!
>
> Jeg har et problem på min webserver (WIN2Ksrv, SP2, IIS 5.0, 256 MB RAM).

> serveren kører et website, der får temmelig mange hits (ca. 4500 om
dagen) -
> der er tale om mange requests, men svarene er meget simple (en lille slat
> database-genereret HTML).
>
> Problemet består i, at efter en uges tid eller to (altså efter ca.
50-60000
> hits) bliver serveren MEGET tung at snakke med. Eller rettere, de
ASP-sider
> på serveren, der bruger databaser bliver meget tunge. Sider med ren HTML
> bliver stadig serveret med perfekt hastighed.
>
> Jeg har nu gransket i problemet, men kan ikke se, hvad jeg gør galt. Alle
> db-forbindelser og recordsets bliver korrekt lukket efter brug.
>
> Dog kan jeg på serveren i TaskManager'en observere, at der kører to
> DLLHOST.EXE. Én under min IWAM_<server> bruger og en anden DLLHOST.EXE
under
> min System bruger. Jeg har konstateret at dén DLLHOST.EXE under
> IWAM_<server> bruger mere og mere RAM. Når problemet begynder har den
sneget
> sig op på 70-80 MB! Eneste løsning er så en reboot, hvorefter den igen
> starter på 3-4 MB.
>
> Det skal også nævnes, at jeg på serveren kører et scheduleret script
(.VBS),
> der bruger AspTear en gang hvert 15. minut. Også her bliver
> databaseforbindelser og recordssets lukket pænt. Jeg har prøvet med
> alternativer til AspTear men med samme resultat.
>
> Dét jeg ikke helt kan gennemskue er, hvor problemet skal løses! :-/
>
> Alle forslag er velkomne!
>
> Da jeg regner med at problemet ligger i ASP'en har jeg sat FUT til
> ASP-gruppen.
>
> --
> Med venlig hilsen
> Kim Jensen
> ____________________________________________
> litewerx.com // kelvin8.com // newscaster.dk
>
>
>



Kim Jensen (02-06-2001)
Kommentar
Fra : Kim Jensen


Dato : 02-06-01 19:19

> DB-connections lukkes pænt, men hvilken DB benytter du? Access har det med

Jeg kører p.t. Access, men skifter til mySQL i løbet af kort tid, da jeg
selv har lidt mistanke til Access.

--
Med venlig hilsen
Kim Jensen
____________________________________________
litewerx.com // kelvin8.com // newscaster.dk



Jonathan Stein (02-06-2001)
Kommentar
Fra : Jonathan Stein


Dato : 02-06-01 16:55

Kim Jensen wrote:

> Dog kan jeg på serveren i TaskManager'en observere, at der kører to
> DLLHOST.EXE. Én under min IWAM_<server> bruger og en anden DLLHOST.EXE under
> min System bruger. Jeg har konstateret at dén DLLHOST.EXE under
> IWAM_<server> bruger mere og mere RAM. Når problemet begynder har den sneget
> sig op på 70-80 MB! Eneste løsning er så en reboot, hvorefter den igen
> starter på 3-4 MB.

Prøv at kigge på http://www.iisfaq.com/MemoryLeaks/

M.v.h.

Jonathan

--
jsp-hotel.dk tilbyder profesionelle webhoteller med bl.a. Resin JSP,
PHP, MySQL, SSH/Telnet adgang, rå log-filer, grafisk statistik og
99% oppetidsgaranti.
http://www.jsp-hotel.dk/



Kim Jensen (02-06-2001)
Kommentar
Fra : Kim Jensen


Dato : 02-06-01 19:19

> Prøv at kigge på http://www.iisfaq.com/MemoryLeaks/

Tak for linket. Dog ser det ikke ud til at nogle af de nævnte leaks passer
på mit setup. /

--
Med venlig hilsen
Kim Jensen
____________________________________________
litewerx.com // kelvin8.com // newscaster.dk



Lauritz Jensen (02-06-2001)
Kommentar
Fra : Lauritz Jensen


Dato : 02-06-01 17:05

Kim Jensen wrote:
>
> Jeg har et problem på min webserver (WIN2Ksrv, SP2, IIS 5.0, 256 MB
> RAM). På serveren kører et website, der får temmelig mange hits (ca.
> 4500 om dagen) - der er tale om mange requests, men svarene er meget
> simple (en lille slat database-genereret HTML).

4500 hit om dagen svare til et hit hvert 20. sekund. Er det hit ialt
eller kun hit på asp-sider (og kommer grafik og ren html udover det)?
Anyway, det burde en server ihvertfald kunne klare.

> Problemet består i, at efter en uges tid eller to (altså efter ca. 50-60000
> hits) bliver serveren MEGET tung at snakke med. Eller rettere, de ASP-sider
> på serveren, der bruger databaser bliver meget tunge. Sider med ren HTML
> bliver stadig serveret med perfekt hastighed.
>
> Jeg har nu gransket i problemet, men kan ikke se, hvad jeg gør galt. Alle
> db-forbindelser og recordsets bliver korrekt lukket efter brug.

Prøv at tage et kig på denne her:
http://msdn.microsoft.com/workshop/server/asp/asptips.asp

Især:
- Lægger du objekter i session eller application (så som recordset,
conneciton, dictionary)?
- Lægger du data i applicaiton, som ikke bliver fjernert igen?
- Har du lavet noget underligt loggingkode?

(det kan godt være at ting lyder simple, men jeg ved ikke hvad du har
prøvet)
(ellers må vi næsten se noget kode)

> Dog kan jeg på serveren i TaskManager'en observere, at der kører to
> DLLHOST.EXE. Én under min IWAM_<server> bruger og en anden DLLHOST.EXE under
> min System bruger. Jeg har konstateret at dén DLLHOST.EXE under
> IWAM_<server> bruger mere og mere RAM. Når problemet begynder har den sneget
> sig op på 70-80 MB! Eneste løsning er så en reboot, hvorefter den igen
> starter på 3-4 MB.
>
> Det skal også nævnes, at jeg på serveren kører et scheduleret script (.VBS),
> der bruger AspTear en gang hvert 15. minut. Også her bliver
> databaseforbindelser og recordssets lukket pænt. Jeg har prøvet med
> alternativer til AspTear men med samme resultat.

Denne skulle ikke påvirke driften af webserveren. AspTear har dog en
underlig opførsel, med at den cacher nogle data, som jeg ikke rigtig har
gennemskuget (har haft bedre erfaringer med at benytte w3socket til at
lave httprequests med).

--
Lauritz

Kim Jensen (02-06-2001)
Kommentar
Fra : Kim Jensen


Dato : 02-06-01 19:27

Hejsa!

> 4500 hit om dagen svare til et hit hvert 20. sekund. Er det hit ialt
> eller kun hit på asp-sider (og kommer grafik og ren html udover det)?

Dertil kommer ét styk 43 bytes GIF pr. request.

ASP-scriptet er enddog MEGET simpelt: Der laves et db-udtræk på baggrund af
en cookie, som clienten medsender. Dette db-udtræk formatteres til en
HTML-side (ca. 5-10 KB i alt) og sendes tilbage. Det er alt.

> Anyway, det burde en server ihvertfald kunne klare.

Ja, det synes jeg nemlig også.

> Prøv at tage et kig på denne her:
> http://msdn.microsoft.com/workshop/server/asp/asptips.asp

Kigger på det.

> - Lægger du objekter i session eller application (så som recordset,
> conneciton, dictionary)?

Slet ikke. Koden er så simpel, at man skulle tro det var løgn!

> - Lægger du data i applicaiton, som ikke bliver fjernert igen?

Bruger slet ikke application.

> - Har du lavet noget underligt loggingkode?

Nope. Jeg laver en meget simpel logging med en SQL Insert statement med data
fra cookie'en + et timestamp. Dette havner i en anden Access-db, der dog er
ved at være lidt for stor til at Access bryder sig om den(50+ MB).

> > der bruger AspTear en gang hvert 15. minut. Også her bliver
> Denne skulle ikke påvirke driften af webserveren. AspTear har dog en
> underlig opførsel, med at den cacher nogle data, som jeg ikke rigtig har
> gennemskuget (har haft bedre erfaringer med at benytte w3socket til at
> lave httprequests med).

Jeg har prøvet w3sockets, men den er desværre lidt for besværlig at bruge i
mit tilfælde, da nogle af de URL'er jeg fetcher redirecter på en sjov måde,
som jeg kun kan få AspTear til at forstå.

--
Med venlig hilsen
Kim Jensen
____________________________________________
litewerx.com // kelvin8.com // newscaster.dk



Lauritz Jensen (02-06-2001)
Kommentar
Fra : Lauritz Jensen


Dato : 02-06-01 20:03

Kim Jensen wrote:
>
> ASP-scriptet er enddog MEGET simpelt: Der laves et db-udtræk på
> baggrund af en cookie, som clienten medsender. Dette db-udtræk
> formatteres til en HTML-side (ca. 5-10 KB i alt) og sendes
> tilbage. Det er alt.

Dvs. brugerne ændre ikke i denne access database? (fisker efter om den
bliver fragmenteret)

> > - Har du lavet noget underligt loggingkode?
>
> Nope. Jeg laver en meget simpel logging med en SQL Insert statement med data
> fra cookie'en + et timestamp. Dette havner i en anden Access-db, der dog er
> ved at være lidt for stor til at Access bryder sig om den(50+ MB).

Hey, lige en tanke: Hvordan sætter du data i databasen (overvej iøvrigt
at logge til en flad fil og evt. batch opdaterer databasen)? Du bruger
ikke kode som den her vel
http://groups.google.com/groups?ic=1&selm=8ec8im%24rgm%241%40news.inet.tele.dk
(bruge en insert-sql istedet)?

Iøvrigt: Hvis du har brug for et værktøj til at belaste sitet under
test, kan denne her bruges: http://webtool.rte.microsoft.com/

--
Lauritz

Kim Jensen (02-06-2001)
Kommentar
Fra : Kim Jensen


Dato : 02-06-01 23:40

> Dvs. brugerne ændre ikke i denne access database? (fisker efter om den
> bliver fragmenteret)

Nej. Det nævnte VBS script er det eneste der ændrer (læs: tilføjer) til
databasen.

> ikke kode som den her vel
>
http://groups.google.com/groups?ic=1&selm=8ec8im%24rgm%241%40news.inet.tele.
dk
> (bruge en insert-sql istedet)?

Nej. Jeg bruger aldrig metoder direkte på recordsets. Jeg bruger _altid_ SQL
til at snakke med mine db'er.

> Iøvrigt: Hvis du har brug for et værktøj til at belaste sitet under
> test, kan denne her bruges: http://webtool.rte.microsoft.com/

Tak for tippet.

Imorgen ryger der en mySQL på istedet for Access'en, og så må jeg se om dét
ændrer noget.

--
Med venlig hilsen
Kim Jensen
____________________________________________
litewerx.com // kelvin8.com // newscaster.dk



Lauritz Jensen (03-06-2001)
Kommentar
Fra : Lauritz Jensen


Dato : 03-06-01 13:26

Kim Jensen wrote:
>
> Imorgen ryger der en mySQL på istedet for Access'en, og så må jeg
> se om dét ændrer noget.

Det tror jeg nu ikke, vil hjælpe (læs: jeg tror godt access vil kunne
klare belastningen). Jeg mere, at der er et eller andet galt i dit
script.

--
Lauritz

James Olsen (03-06-2001)
Kommentar
Fra : James Olsen


Dato : 03-06-01 07:54


"Kim Jensen" <kim@litewerx.dk> wrote in message
news:9fbavd$1qn3$1@news.cybercity.dk...
>
> > - Har du lavet noget underligt loggingkode?
>
> Nope. Jeg laver en meget simpel logging med en SQL Insert statement med
data
> fra cookie'en + et timestamp. Dette havner i en anden Access-db, der dog
er
> ved at være lidt for stor til at Access bryder sig om den(50+ MB).
>

Du kunne overveje at logge med Response.AppendToLog - det er ulige mere
effektivt end at skulle fyre op under en DB-connection hvergang blot for at
logge.

For at bruge denne loggen skal du aktivere "URI Query" under Extended
properties på sitet.


> --
> Med venlig hilsen
> Kim Jensen
> ____________________________________________
> litewerx.com // kelvin8.com // newscaster.dk
>
>



Kim Jensen (03-06-2001)
Kommentar
Fra : Kim Jensen


Dato : 03-06-01 15:37

> Du kunne overveje at logge med Response.AppendToLog - det er ulige mere
> effektivt end at skulle fyre op under en DB-connection hvergang blot for
at
> logge.
> For at bruge denne loggen skal du aktivere "URI Query" under Extended
> properties på sitet.

Er allerede enablet (pr. default?). Men idéen var, at jeg kunne lave et
logudtræk via ASP med grafer og andet snask - det er vel alt anden lige
nemmere fra en db.

--
Med venlig hilsen
Kim Jensen
____________________________________________
litewerx.com // kelvin8.com // newscaster.dk



James Olsen (04-06-2001)
Kommentar
Fra : James Olsen


Dato : 04-06-01 10:06


"Kim Jensen" <kim@litewerx.dk> wrote in message
news:9fdhru$18sj$1@news.cybercity.dk...
> > Du kunne overveje at logge med Response.AppendToLog - det er ulige mere
> > effektivt end at skulle fyre op under en DB-connection hvergang blot for
> at
> > logge.
> > For at bruge denne loggen skal du aktivere "URI Query" under Extended
> > properties på sitet.
>
> Er allerede enablet (pr. default?). Men idéen var, at jeg kunne lave et
> logudtræk via ASP med grafer og andet snask - det er vel alt anden lige
> nemmere fra en db.

Ja men hvis det får dit site til at køre dårligt, hvilket ofte er tilfældet
med selvetableret logningsløsninger, da de jo typisk er synkrone så er det
vel lidt lige meget om det er let ?

Forøvrigt vil jeg da påstå at det ikke er specielt svært at læse en tekst
fil og behandle indholdet - men sådan er vi jo forskelligt anlagt ;)

Men det var blot et forslag - du kan jo også overveje at lave det asynkront,
men det kan man desværre nok ikke med en Access-DB da det er driveren selv
som kan skrive i filen.

>
> --
> Med venlig hilsen
> Kim Jensen
> ____________________________________________
> litewerx.com // kelvin8.com // newscaster.dk
>
>



Kim Jensen (04-06-2001)
Kommentar
Fra : Kim Jensen


Dato : 04-06-01 10:38

> Forøvrigt vil jeg da påstå at det ikke er specielt svært at læse en tekst
> fil og behandle indholdet - men sådan er vi jo forskelligt anlagt ;)

SQL-træk fra IIS-loggen er ikke trivielt

> Men det var blot et forslag - du kan jo også overveje at lave det
asynkront,
> men det kan man desværre nok ikke med en Access-DB da det er driveren selv
> som kan skrive i filen.

Indtil videre er loggen helt droppet.


--
Med venlig hilsen
Kim Jensen
____________________________________________
litewerx.com // kelvin8.com // newscaster.dk



Søg
Reklame
Statistik
Spørgsmål : 177556
Tips : 31968
Nyheder : 719565
Indlæg : 6408865
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste