Avatar billede gyxi Nybegynder
26. juni 2007 - 15:08 Der er 6 kommentarer og
1 løsning

Deling af filer mellem webservere (best practice)

Hvis jeg har flere webservere stillet op i Load Balancing som skal kunne oprette/ændre/slette de samme filer, hvad er så den bedste måde at gøre det på?

- Jeg har prøvet at mappe et netværksdrev til en mappe på en tredje server hvor filerne så lægges, men der er en masse problemer for webapplikationer ved at tilgå netværksdrev.

- Jeg har også leget med tanken om at have et program til at replikere alle filerne så alle filer er i lokale mapper på alle serveren, men bryder mig ikke om risikoen for at en fil måske ikke er nået at blive kopieret over endnu når den skal bruges.

Hvad er best practice?
Avatar billede arne_v Ekspert
26. juni 2007 - 15:34 #1
Hvs filerne ikke er større end at de kunne replikeres, så skulle du måske
overveje end database løsning !
Avatar billede gyxi Nybegynder
27. juni 2007 - 10:32 #2
God idé. Jeg kan se fordelene ved det, idet min database i forvejen skal kunne tilgås af alle webservere og er skalerbar.

En ulempe er, at det samlede system bruger flere ressourcer for at levere en fil til brugeren. Men så kan jeg jo bare koble en ekstra database-server på :)

Andre idéer?
Avatar billede arne_v Ekspert
07. august 2007 - 22:29 #3
Ikke så mange ekstra ressourcer. Jeg lavede engang en test med ASP.NET og MySQL som
database.

Resultat:

File (1 threads): 1,9 get per second
File (10 threads): 2,2 get per second
File with web app cache (1 threads): 6,6 get per second
File with web app cache (10 threads): 16,1 get per second
File directly by web server (1 threads): 17,6 get per second
File directly by web server (10 threads): 20,1 get per second
Database (1 threads): 10,7 get per second
Database (10 threads): 11,8 get per second
Database with web app cache (1 threads): 15,4 get per second
Database with web app cache (10 threads): 19,6 get per second
File (1 threads): 1,9 get per second
File (10 threads): 2,2 get per second
File with web app cache (1 threads): 16,7 get per second
File with web app cache (10 threads): 19,4 get per second
File directly by web server (1 threads): 17,1 get per second
File directly by web server (10 threads): 20 get per second
Database (1 threads): 10,7 get per second
Database (10 threads): 11,9 get per second
Database with web app cache (1 threads): 17,3 get per second
Database with web app cache (10 threads): 19,6 get per second
File (1 threads): 1,9 get per second
File (10 threads): 2,1 get per second
File with web app cache (1 threads): 16,8 get per second
File with web app cache (10 threads): 17,8 get per second
File directly by web server (1 threads): 17,6 get per second
File directly by web server (10 threads): 20,1 get per second
Database (1 threads): 10,7 get per second
Database (10 threads): 11,6 get per second
Database with web app cache (1 threads): 17,1 get per second
Database with web app cache (10 threads): 19,5 get per second
Avatar billede gyxi Nybegynder
08. august 2007 - 09:05 #4
Jeg kan ikke helt gennemskue hvad der gemmer sig bag hver linje. Det er godt hvis hastigheden ikke tager skade af det, men da jeg påstod systemet bruger flere ressourcer var det også at nu skal webapplikationen streame filen gennem sin hukommelse - det skulle den ellers ikke.

Vi har allerede implementeret løsningen med vedhæftede filer i databasen. Tak for tippet.
Avatar billede arne_v Ekspert
09. august 2007 - 01:26 #5
File = ASP.NET script som streamer fil
File with web app cache = samme men hvor der bruge Cache
File directly by web serve = filen serves direkte af IIS udenom ASP.NET
Database = hentes fra database
Database with web app cache = samme men hvor der bruges Cache
Avatar billede gyxi Nybegynder
09. august 2007 - 09:00 #6
Ok, jeg forstår. De resultater er relevante fordi det ofte er de samme filer som hentes igen og igen. Det er det så godt nok ikke i mit scenarie - da er det mange filer som typisk kun hentes én gang hver. Tak for en herlig og brugbar oversigt.

Jeg tror det er på tide spørgsmålet lukkes.
Avatar billede arne_v Ekspert
10. august 2007 - 04:22 #7
Så kan du jo stryge mulighederne med brug af cache.

Jeg ligger et svar.
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
Kurser inden for grundlæggende programmering

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