Avatar billede ossian Nybegynder
21. juni 2006 - 23:10 Der er 11 kommentarer

Hjælp - Giv mig alle jeres optimeringstips

Hejsa,

Jeg har en dedikeret server der kører en billede-upload tjeneste, lidt som http://www.imagevenue.com - Den er kodet i vb.net med en mySQL database.

Mit problem er at der ikke skal ret mange besøgende til før min CPU rammer 100% og den bliver der et godt stykke tid - som regel genstarter jeg bare serveren.

Det er ikke verdens hurtigste server, men lidt burde den kunne klare.
Konfiguration:
Celeron 2.4
512 MB RAM
200 GB IDE HD
10 Mbps Unmetered

I min kode benytter jeg et par datareadere, og sørger for at lukke den med reader.Close(), endvidere sørger jeg for at lukke min mySQL connection med mySQLConn.Close() og mySQLConn.Dispose()

Jeg har desuden sat http-compression til på serveren og sat connection timeout til 90 sekunder, samt enabled http keep-alives. Men lige meget hjælper det :-(

Har I andre gode råd til hvad man kan gøre på IIS'en, samt hvad man skal huske i sin kode for at optimere??

Jeg giver 200 point i alt og fordeler ml. alle der kommer med relevant input.

På forhånd tak! :-)
Avatar billede xtr0 Nybegynder
21. juni 2006 - 23:20 #1
Jeg ved ikke om det burde hjælpe men har du overvejet "persistant connections" som basalt set gør at mysql-trådende ikke åbner og lukker hele tiden men holdes åbne til forskellige ting.
Avatar billede ossian Nybegynder
21. juni 2006 - 23:40 #2
Hmm, nej - troede egentlig at det var bedst at lukke sine connections når man var færdig med dem..
Avatar billede arne_v Ekspert
22. juni 2006 - 00:44 #3
ASP.NET bruger ADO.NET som har indbygget connection pool, hvilket er det
som PHP kalder persistent connections, så det skulle allerede være på plads.
Avatar billede ducks Nybegynder
22. juni 2006 - 00:50 #4
10mbit er ikke meget hvis du satser på popularitet
Avatar billede ossian Nybegynder
22. juni 2006 - 01:00 #5
Arne, xtr0> Ok, vil det være en fordel for mig at slå connection pooling til?

Og til ducks> Nej, men det er en start :-) Jeg har kørt en lignende side før med 80-90k unikke besøgende om dagen, og ligget på 10-12mbit fast.. så lidt kan det række.
Avatar billede arne_v Ekspert
22. juni 2006 - 01:12 #6
connection pooling er default slået til
Avatar billede arne_v Ekspert
22. juni 2006 - 01:12 #7
Hvad bruger den CPU ? MySQL ? IIS ? ASP.NET ?
Avatar billede ossian Nybegynder
22. juni 2006 - 08:22 #8
CPU: Celeron 2.4
mySQL 5
IIS 6
ASP.NET 2.0

Dog lader det til at jeg har fundet kilden til problemet. For at undgå hotlinking har jeg streamet alle store billeder ud, med tjek på om brugeren kom fra min side vha. sessions. Jeg tror at så meget stream får serveren til at gå i knæ. Nu har jeg ændret til at linke direkte til billederne i stedet - og CPU'en ligger på 4-5%..

Dog er mit problem at man nu kan dræbe min båndbredde ved at hotlinke store billeder. Snepnet har tidligere hulpet mig med en handler/streaming, men det lader til at jeg har brug for en anden løsning.

Det er egentlig ret simpelt - filer i mappen /files/ må ikke tilgåes fra anden referer end mit domæne, og heller ikke direkte i browseren, d.v.s. uden referer. Hvordan fa'en gør jeg det? :-) (Skriver vb.net)

På forhånd tak..
Avatar billede ossian Nybegynder
22. juni 2006 - 08:24 #9
Bemærk at det kun er filer i mappen /files/ der ikke må tilgås - filer i mappen thumbnail skal kunne hotlinkes :-)
Avatar billede arne_v Ekspert
23. juni 2006 - 02:21 #10
hvordan ser din streaming kode ud ?

det lyder som om den kan optimeres !
Avatar billede arne_v Ekspert
13. august 2006 - 23:07 #11
??
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester