Specs?
Nu er folk her jo teknisk interesserede, så lidt specs på noget nyt grej kunne jo være spændende at høre om? :)
/Anders
I løbet af de seneste uger har vi haft sporadiske, kortvarige problemer med vores databaseserver, hvilket har betyder at ing.dk i perioder med spidsbelastning har givet databasefejl og tomme sider.
Fejlene kulminerede fredag med nedbrud ad tre omgange, hvorfor vi har fremrykket en beslutning om at flytte over på en ny databaseserver.
Både ing.dk og version2.dk har derfor været lukket i omkring 15 minutter mellem kl. 14 og 15.
Begge sites kører nu på den nye databaseserver, og det betyder, at vi helst skulle vinke farvel til de driftsproblemer, der har plaget os den seneste tid.
Hvis du har været i gang med at skrive debatindlæg, mens vi har skiftet databasen, kan du risikere, at dit indlæg er gået tabt, hvilket vi beklager. Vi vil gentage vores opfordring om altid at udarbejde indlæg i et tekstbehandlingsprogram og så kopiere dem derfra over i vores debat. Så får du også stavekontrol med i købet, og du har en lokal kopi af indlægget, hvis noget skulle gå galt.
Som sagt: Nu skulle det være løst. Men sig meget gerne til, hvis I mod vores forventninger oplever lange svartider i de kommende dage.
02. okt 2009 kl 16:17
Nu er folk her jo teknisk interesserede, så lidt specs på noget nyt grej kunne jo være spændende at høre om? :)
/Anders
02. okt 2009 kl 16:25
Hvad med spejling af server? Laver man ikke det mere?
02. okt 2009 kl 18:21
Jeg har kastet et blik på kildekoden, den kode som jeg kan se med min browser. Jeg bruger Firefox, og i det følgende vil jeg antage at min browser ikke har tilføjet ekstra tegn. Altså, forudsat(!) det:
Jeg kan se, at koden er væsentlig bedre end hvad man typisk ser, altså meget fint, bravo! :-)
Men: Kildekodens formatering er en manuelt lavet "debug"-formatering, det kan jeg samtidig se, og det er ikke (helt) optimalt når systemet er i drift. Jeg taler kun om en marginal her, slet ingen katastrofe.
For eksempel (og som man ofte ser): Programmøren har indsat en masse TAB-tegn i koden, for at gøre kildekoden lettere at overskue når han/hun leder efter fejl, som er optimalt når man udvikler systemet, men disse ekstra tegn kan godt fjernes fra serverens programmeringskode, i den kopi af systemet som man sætter i drift, og i så fald vil brugerne opleve en hurtigere download-tid og en hurtigere fremvisnings tid i browseren. Måske er der kun en marginal at hente her, det kommer an på mængden af overflødige tegn, som jeg ikke har gidet at analysere på.
Et andet eksempel: I koderne i browseren bliver der også anvendt meget lange variabelnavne, fx:
102804-sejl-raket-fra-vestas-skal-op-paa-95-kmt-til-havs
Sådanne variabelnavne er udmærkede, fordi de er lette at forstå når man leder efter fejl i koder, men hvis sider indeholder mange af sådanne variabelnavne, da fylder/koster det ekstra transmissionstid og også fremvisningstid i browseren, i forhold til hvis man anvendte allerkorteste numre som variabelnavne.
Et tredje eksempel: Kildekoden indeholder mange henvisninger til foldere på serveren, og endnu flere henvisninger til klasser i koder, og alle disse er skrevet som fuld tekst, det vil sige med mange tegn, som er let at overskue når man leder efter fejl, men i drift kan man nøjes med ganske korte numre, som vil fylde mindre.
Jeg vil tro, samlet set, at der er en del procenter at spare i sidernes størrelser (de sider der bliver sendt til brugerne). Jeg vil dog ikke ligefrem anbefale at man fokuserer på dette, fordi der kan være meget vigtigere ting at fokusere på, men hvis Ingeniøren ønsker at optimere hastighed og minimere belastningen på serverne og deres ledning til Internet, da bør man kigge på sådanne detaljer.
Og en bemærkning: Det er ikke helt ufarligt, at bede en programmør om at udluse sådant ekstra fyld fra serverens koder, fordi et sådant arbejde introducerer en latent risiko for at udluse en anelse for meget. I stedet bør en programmør skrive en lille oversætter der tager en kopi af alt kode og gennemsøger kopien for alt overflødigt skidt, og eksporterer en udrenset version af systemet, og det er da den version som man anbringer på serveren. Jeg siger ikke, at dette er en let og hurtig opgave, men det er hvad man kan gøre, hvis man jagter en højere performance i et system der er i drift.
I øvrigt må jeg sige, at jeg stort set altid er tilfreds med måden som denne site kører og fungerer. Brugerfladen er simpel og let at forstå, som er guld værd.
02. okt 2009 kl 19:17
Ja og da det er database-serveren der var problemet og ikke netværket, så skal du nok se at det nok ikke ville gøre det store fra eller til.
Jeg har kastet et blik på kildekoden, [...]
03. okt 2009 kl 00:06
Tro mig, de optimeringer du foreslår er helt uden effekt nu om dage, der skal helt andre boller på suppen.
03. okt 2009 kl 00:14
Ja og da det er database-serveren der var problemet og ikke netværket, så skal du nok se at det nok ikke ville gøre det store fra eller til.
03. okt 2009 kl 01:07
Et andet eksempel: I koderne i browseren bliver der også anvendt meget lange variabelnavne, fx:
102804-sejl-raket-fra-vestas-skal-op-paa-95-kmt-til-havs
Ja og da det er database-serveren der var problemet og ikke netværket, så skal du nok se at det nok ikke ville gøre det store fra eller til.
Det kommer an på, hvad Ingeniøren udtrækker fra database. Programmeringskoder kan være lagret i en database, og hvis disse er af runtime fortolket type, da vil eventuelle overflødige tegn i koden være en del af belastningen af databasen og dens forbindelse til webserverne. Hvor flaskehalsene er, kræver altid en nærmere analyse.
At jeg har grebet fat i et så marginalt emne, skyldes alene at dette emne er det eneste emne som vi som brugere (uden intern viden) har mulighed for at analysere på (koden som vi kan se i vore browsere).
03. okt 2009 kl 01:42
Det kaldes søgemaskineoptimering.
03. okt 2009 kl 02:11
Da jeg arbejdede på Ingeniøren så vi på Varnish og talte om, hvorvidt vi kunne implementere sådan én foran webserveren. Vi kom aldrig særlig langt med denne snak
Alligevel: [...]
Det er i dette billede, at jeg altid anbefaler at man udrenser mest muligt fedt, for at forsinke det næste omkostningstrin på stigen.
03. okt 2009 kl 14:25
10 år bagefter det teknologiske stade på web-servere.
Uanset hvad du måtte komme op med af microoptimeringer Carsten, så kan ingen database server hamle op med, at Varnish kan levere et cache-hit med kun 7 systemkald, heraf 4 timestamps alene af hensyn til logfilerne.
Har du overvejet (eller måske allerede implementeret) at 'forzippe' data ?
04. okt 2009 kl 08:53
Siderne her kan nemt optimeres se eks.
http://code.google.com/speed/a...les/
04. okt 2009 kl 10:26
Siderne her kan nemt optimeres se eks.
http://code.google.com/speed/a...ote>
Her er data fra min Chrome browser
Documents 621mS
Stylesheetes 107ms
Images 225ms
Scripts 326ms
Other 175 ms
En total tid på 1.56s !
Her er data fra min Chrome browser
Documents 621mS
Stylesheetes 107ms
Images 225ms
Scripts 326ms
Other 175 ms
Varnish supporeterer allerede at skelne imellem gzip og ikke komprimeret indhold
While Varnish itself performs no compression
Varnish supporeterer allerede at skelne imellem gzip og ikke komprimeret indhold
Nu Googlede jeg lige, og det ser ud som du må få opdateret:
http://www.mediawiki.org/wiki/...nish
While Varnish itself performs no compression
Hvilket jeg opfatter som om data ikke bliver 'forzippet'.
Siderne her kan nemt optimeres se eks.
http://code.google.com/speed/a...ote>
Her er det nok værd at bemærke, at brugen af disse monster javascript 'frameworks' betyder degenereret brug/performance på ældre maskiner/browsere.
Jeg tænker bla. på 'prototype', som lige skal omkonfigurere DOM'en inden visning.
Heldigvis virker siderne langt bedre uden javascript enabled, hvilket jeg generelt kører med, så det er ikke noget problem, men man går nok glip af noget statistik eller lign.