Om jag läser in Sida B i en I-frame på Sida A och 3.000 besökare går in på Sida A samtidigt och läser in Sida B, skiljer det sig prestandamässigt om dessa 3.000 istället skulle gå direkt till Sida B.
Jag förstår att om Sida B rent prestandamässigt skulle kunna ta emot och serva alla dessa samtidiga besök, blir Sida A en flaskhals om den servern är underdimensionerad.
Anledningen till att jag frågar är för att under gårdagen hade vi en kund vars sajt slutade svara/blev otrolig trög när ~600 besökare var inne mer eller mindre samtidigt. Dom läser in Sida B i en I-frame på Sida A.
Det konstiga är att en annan kund som har sin sajt på samma server tog emot ~4.000 besök samtidigt för några månader sedan, utan några som helst problem. Dessa besökare kom direkt in på sidan, utan någon I-frame.
Servern är en VPS på Linode. Var kunden som läser in sajten i en I-frame har för webbhotell vet jag inte, men det är ett "vanligt" webbhotell någonstans.
En sidladdning av sida B kommer i allt väsentligt belasta servern som sida B lika mycket vare sig den laddas in separat eller i en iframe.
Sen om sida A är överlastad och det tar en sekund att ladda sida A, så kan det förstås bli en flaskhals eftersom besökarens webbläsare inte ens vet om att sida B ska laddas förrän den har sida A:s HTML-kod. Att ladda in sidan via en iframe känns allmänt som en sämre lösning eftersom det då finns två sidladdningar som av helt olika anledningar kan vara långsamma, istället för bara en.
Det finns som sagt många olika saker som kan vara långsamma. DNS-uppslag. Överbelastad server. Dumt skrivna SQL-frågor. Onödigt stora bilder som laddas. Jag rekommenderar att du använder t ex YSlow eller nätverksvyn i Chromes utevecklingsverktyg som ger en tidslinje över hur lång tid varje del av inladdningen tar. Detta kan ge en ren aha-upplevelse vad gäller att lista ut varför en sida är långsam.
Yes, tack! Det är jag som konfigurerat servern B själv och jag har inte blykoll på vad som är jättebra eller mindre bra. Dock har det inte varit probelm förut när en annan kund haft 6ggr så hög belastning som det var igår.
Jag tror att det helt eller delvis beror på just deras I-framelösning. Jag själv hade inga som helst problem med laddningstider igår, samtidigt som dom rapporterade att det var tvärkört, hade jag laddningstider på typ 0,0595 sek. och liknande. Därför tror jag att deras delade webbhotell som "hostar" I-framen ställer till det.
Jag testade att starta om den nu, eftersom den varit uppe i 180 dagar i sträck, med en förhoppning att den ska släppa lite mer minne (eller något). Får se om det gör någon skillnad.
Jag har gjort lite fler tester och kollat speciellt på en del sql-frågor och hittat flera saker som inte är så bra. Bl.a. hur jag använt BETWEEN, jag har inte förstått tidigare att om man kör:
SELECT 1 FROM `foo` WHERE `bar` BETWEEN 1 AND 100
..Så sker detta i bakgrunden:
SELECT 1 FROM `foo` WHERE `bar`= 1
SELECT 1 FROM `foo` WHERE `bar`= 2
SELECT 1 FROM `foo` WHERE `bar`= 3
-- ...
SELECT 1 FROM `foo` WHERE `bar`= 99
SELECT 1 FROM `foo` WHERE `bar`= 100
D.v.s antalet frågor blir mångdubbelt i bakgrunden, vilket stjäl mycket minne, speciellt vid många samtidiga besök. Vad jag testat med nu är att istället för BETWEEN, så skapar jag en temporär tabell med 1 fält där jag matar in värden 1 - 100. Sen kör jag en INNER JOIN mot den tabellen istället för BETWEEN.
När jag testat lokalt tog det från början ~25sek vid "tyngre" frågor. Efter ändringen tog samma fråga ~0,055sek vilket jag blev sjukt förvånad över.
Så det blir dels att gå igenom en del kod och ändra enl. sättet ovan.
---
Vad rekommenderar ni som kan det här? Om man har en VPS med 1GB Ram och 40GB HDD. Hur många sajter kan/bör man köra på en sådan? Jag är fortf. inne på att köpa en till VPS och köra den som ren databasserver och sen ha webbservern på den nuvarande.
Jag tror att kombinationen av dom två kommer göra enorm skillnad för hur användarna upplever det.
Har inte satt mig in ordentligt i ditt fall, men generellt tycker jag att om en databasserver går långsamt, så är det sista man ska göra att uppgradera servern, optimering FTW :)
Fast inte det jag menar... Idag har jag ju ~20 sajter inkl. varsin databas för resp. sajt på 1st server. Det jag undrade över var hur mycket man ev. kan vinna på att köra två separata VPSer, en med webbserver där alla filer ligger, och en databasserver som enbart har MySQL installerat.
Om jag inte minns helt fel var det så Webforum hade på Griffel-tiden...
Det är alltid rekomenderat att ha webb/app server och databasserver på skiljda.
Men du måste veta hur det läggs upp på webhotellet så att burkarna ligger någorlunda nära varandra.
Hur snabbt nätverket är mellan burkarna och om det går att få tillgång till en annan VPS.
Det är kanske inte främst av prestandaskäl man vill göra uppdelningen utan främst av säkerhetsskäl.
Öka upp ramminnet så att sql servern kan ta till sig lite mer är ofta bra.
Och som tidigare sagt oftast läggs alldeles för mycket jobb i databasen istället för i applikationen. Eller bara dåliga frågor.
Ok, tack! Det som är bra med Linode är att man alltid får välja datacenter, så man väljer om man vill ha dom nära varann eller inte.
Vad behöver man ha för RAM på en databasserver då, som ska hålla 25-35 databaser? Jag tänker mig då att man spärrar databas-VPS så att den endast är nåbar lokalt (via LAN) från webbservern, så har man vunnit en hel del också.
Någon som har lite koll på det här? Har hittat en del guider, men det står inte exakt vad man ska ställa in, det står dock vilka värden man ska tänka på, men hittar inte så mkt mer info än så.
Tack!
261 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe