Kom ihåg mig?
Home Menu

Menu


2 webservers och 1 databasserver

 
Ämnesverktyg Visningsalternativ
Oläst 2010-12-29, 17:09 #1
sandstream sandstream är inte uppkopplad
Medlem
 
Reg.datum: May 2008
Inlägg: 130
sandstream sandstream är inte uppkopplad
Medlem
 
Reg.datum: May 2008
Inlägg: 130
Standard 2 webservers och 1 databasserver

Det här är säkert vardagsmat för många av er, men inte för mig.

I dag kör jag allt, dvs både IIS och MySQL, på samma burk.

Har märkt en del prestandaproblem när +200 besökare är inne samtidigt och vi på företaget kör lite tyngre saker i vårt affärssystem (egenutvecklat som ligger på samma burk).

Då började jag fundera på om man inte skulle ha 1 webserver för besökarna, 1 för oss själva och båda kopplade till en tredje server där MySQL-databasen ligger.

Tänker jag fel om det är bättre prestanda jag är ute efter?
Är det lätt att "bygga" en sån konfigurering, dvs med 2 webservers som går mot 1 databasserver?

Som sagt, rookie på området så var snälla mot mig
sandstream är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-12-29, 17:14 #2
emilvs avatar
emilv emilv är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Feb 2004
Inlägg: 1 564
emilv emilv är inte uppkopplad
Bara ett inlägg till!
emilvs avatar
 
Reg.datum: Feb 2004
Inlägg: 1 564
Börja med att klura ut var flaskhalsen är. är det databasen som är flaskhalsen är det möjligt att ni tjänar mest på att köpa en kraftfull maskin för databasen och köra webbservern för sig. Är det webbservern som är flaskhalsen kan ni tjäna på att ha två webbservrar.

Men om det är databasen så hjälper det inte att lastbalansera webbservern, och vice versa. En fördel med lastbalanserad webbserver är att man kan bygga så det går att ta ner en av dem i drift utan att det märks för besökarna (= bättre upptid), men om det inte är där flaskhalsen ligger s hjälper det inte för prestandan i övrigt.

Att lastbalansera två webbservrar är inte speciellt svårt. Det du bör tänka på är hur sessioner sparas; om de körs lokalt på varje maskin så ska lastbalanseraren kanske vara persistent så att samma besökare alltid hamnar på samma maskin. Att sedan köra två klienter mot en databas är så lätt att du inte ens behöver tänka på det; databaserna är redan byggda för att stödja flera samtidiga klienter.

Senast redigerad av emilv den 2010-12-29 klockan 17:17
emilv är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-12-29, 23:27 #3
pelmereds avatar
pelmered pelmered är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: May 2010
Inlägg: 1 342
pelmered pelmered är inte uppkopplad
Har WN som tidsfördriv
pelmereds avatar
 
Reg.datum: May 2010
Inlägg: 1 342
Är belastningen likvärdig mellan webbservern och databasen så kan ni kanske separera dem till en dedikerad databasserver och en dedikerad webbserver.
Behöver ni verkligen en egen server för ert affärssystem?

Ett annat alternativ är se över om ni kan minska belastningen genom att optimera lite inställningar för cache och kanske implementera en minnescache för databasen med memcached.
Memcached kan ni också använda för att spara sessioner med PHP så att ni kan dela sessionerna mellan flera webbservrar som emilv sa.

Ett tredje alternativ är att uppgradera servern om det är möjligt. Mer minne till cache kan göra ganska mycket och kan vara väldigt kostnadseffektivt jämfört med att köpa en helt ny server.

Men första steget är, som emilv sa, att kolla vart flaskhalsen är så att ni vet hur ni ska gå vidare.
pelmered är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-12-29, 23:37 #4
abergmans avatar
abergman abergman är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Feb 2010
Inlägg: 762
abergman abergman är inte uppkopplad
Mycket flitig postare
abergmans avatar
 
Reg.datum: Feb 2010
Inlägg: 762
Som en vis man en gång sa: Optimera aldrig utan att veta vad och varför.
abergman är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-12-30, 08:21 #5
coredevs avatar
coredev coredev är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Sep 2007
Inlägg: 1 554
coredev coredev är inte uppkopplad
Bara ett inlägg till!
coredevs avatar
 
Reg.datum: Sep 2007
Inlägg: 1 554
Du har fått många bra svar. Att baseline:a systemet och sedan göra förändringar utifrån det är så man skall gå till väga.

Vill bara tillägga att det är en dålig idé att dela upp webbservrarna i olika typer för olika målgrupper. Bättre att bygga generiskt med en lastbalanserare framför (NginX är en utmärkt lastbalanserare). Fördelen du får då är att om en maskin går sönder så fungerar fortfarande systemet full ut för alla, även om det är lite segt. Och att man kan ha en webserver "spare".
coredev är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-12-30, 08:40 #6
jonny jonny är inte uppkopplad
Supermoderator
 
Reg.datum: Sep 2003
Inlägg: 6 941
jonny jonny är inte uppkopplad
Supermoderator
 
Reg.datum: Sep 2003
Inlägg: 6 941
Det kan ju också vara vettigt att flytta affärssystemet till en egen server med databas och allt. Men det är svårt att lämna vettiga rekommendationer utan att veta hur systemen och belastningen faktiskt ser ut.
jonny är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-01-04, 14:04 #7
sandstream sandstream är inte uppkopplad
Medlem
 
Reg.datum: May 2008
Inlägg: 130
sandstream sandstream är inte uppkopplad
Medlem
 
Reg.datum: May 2008
Inlägg: 130
Tack för svaren!

En följdfråga blir hur man tar reda på vart flaskhalsen ligger?
(Kör Windows 2000, jo det är sant)
sandstream är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-01-04, 14:44 #8
coredevs avatar
coredev coredev är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Sep 2007
Inlägg: 1 554
coredev coredev är inte uppkopplad
Bara ett inlägg till!
coredevs avatar
 
Reg.datum: Sep 2007
Inlägg: 1 554
Citat:
Ursprungligen postat av sandstream Visa inlägg
Tack för svaren!

En följdfråga blir hur man tar reda på vart flaskhalsen ligger?
(Kör Windows 2000, jo det är sant)
Att börja mäta upp allt ifrån request times till databasfrågor är en bra början. Ser du att en request spenderar 80% av sin tid i databasen så bör du kolla på att optimera databasen / indexera bättre / cacha bättre. Ser du att en request spenderar 80% av sin tid i webservern så bör du kolla på att förenkla scripten, loopa mindre, prefabrisera mer statiska moduler, skala upp till fler servrar.
coredev är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-01-04, 16:35 #9
danjel danjel är inte uppkopplad
Medlem
 
Reg.datum: Nov 2003
Inlägg: 214
danjel danjel är inte uppkopplad
Medlem
 
Reg.datum: Nov 2003
Inlägg: 214
Kolla även uppgradering av MySQL version och PHP version.
Det kan påverka prestanda ganska mycket om ni kör äldre versioner. Tex cachning av sql queries gjordes väl inte i tidiga MySQL,det kan påverka väldigt mycket
Uppgradering av win och IIS kommer förmodligen också påverka prestanda positivt..
danjel är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-01-05, 14:25 #10
sandstream sandstream är inte uppkopplad
Medlem
 
Reg.datum: May 2008
Inlägg: 130
sandstream sandstream är inte uppkopplad
Medlem
 
Reg.datum: May 2008
Inlägg: 130
Citat:
Ursprungligen postat av coredev Visa inlägg
Att börja mäta upp allt ifrån request times till databasfrågor är en bra början.
Hur gör jag det?
Är som sagt n00b på det här :rodnar
sandstream är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 06:05.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017