301 en plaatjes + homeserver

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • jozuf
  • Registratie: Augustus 2008
  • Laatst online: 02-09 11:06
Beste mensen,

Ik ben een beetje aan het spelen in mijn speeltuin en stuitte tijdens het spelen op een vraag des levens (nouja, kuch, internet).
Ik heb al een vrij lange tijd een windows servertje draaien die ook fungeert als HTPC (mediaportal + tv server) als game bak etc. Nou heb ik ook al een tijdje een, wat ik zelf zo noem, server console draaien (een soort portal voor een verzameling webexposed apps), so far so good, heb tijdje geleden een filmpje op de jij kijkbuis gezet.
In het filmpje is ook te zien dat ik gebruik maak van een carrousel (specifieker de JQuery imageflow icm higslide plugin). Nou heeft mijn servertje maar een marginale upstream van 100KB/s (adsl lijntje) wat die carrousel een beetje traag maakt qua laden (daarnaast heb ik nog niet echt gewerkt aan plaatje optimalisatie, ga ik ook nog wel doen met GD ofzo).
Nou heb ik ook een verrekte snelle offsite host bij dootall internethosting en kwam ik op het idee (eigenlijk beetje door yslow) om die host als CDN (Content Distribution Network) te gaan gebruiken voor dergelijke statische content zaken.
Ik heb de proef op de som nog niet genomen en dit hele verhaal te bouwen (kost nml wel ff tijd) aangezien ik niet zo zeker ben of dit mij wel merkbare performance winst op gaat leveren.
wat ik in gedachte had is het volgende scenariio;
de carrousel (ff als voorbeeld) doet een request voor een image in de carrousel naar mijn thuisserver (dit moet omdat er items/plaatjes toegevoegd kunnen zijn). De thuisserver gaat vervolgens ff heel snel kijken of de file aanwezig is op de CDN (kan dit? is dit niet al gelijk een te beperkende factor waardoor de snelheids winst gelijk verdwenen is), zo niet dan kopieert hij eerst de file naar de CDN en doet daarna een header 301 redirect naar de CDN.

Ik wil graag weten wat jullie hiervan denken voordat ik er veel tijd insteek om erachter te komen dat het eigenlijk trager is :) Ik weet het zelf niet zo, de request naar mijn thuisserver zal een feit blijven, het voordeel moet ik halen uit de bandbreedte van de CDN.

p.s.
Het filmpje is lokaal opgenomen dus dat de carrousel snel laad is niet zo vreemd ;)

---edit----

wellicht is het slimmer een cronjob in te zetten zodat ik de image requests direct op de CDN kan doen en waar van ik dan weet dat iig het volgende zeg uur (als de cron weer heeft gerunt) zeker weet dat alle plaatjes er zijn

[ Voor 7% gewijzigd door jozuf op 04-12-2009 09:28 ]


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:16

crisp

Devver

Pixelated

De thuisserver gaat vervolgens ff heel snel kijken of de file aanwezig is op de CDN (kan dit? is dit niet al gelijk een te beperkende factor waardoor de snelheids winst gelijk verdwenen is)
Ja dat kan, en als je dat met een HEAD request doet dan hoeft je server het plaatje ook niet compleet op te halen (vermits de andere server goed geconfigureerd is).
zo niet dan kopieert hij eerst de file naar de CDN en doet daarna een header 301 redirect naar de CDN.
In dat geval ben je wel meteen je snelheidswinst weer kwijt voor die request.
wellicht is het slimmer een cronjob in te zetten zodat ik de image requests direct op de CDN kan doen en waar van ik dan weet dat iig het volgende zeg uur (als de cron weer heeft gerunt) zeker weet dat alle plaatjes er zijn
Dat is inderdaad een stuk efficienter, redirects zijn immers ook extra requests voor de client die de pagina vertragen.

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • jozuf
  • Registratie: Augustus 2008
  • Laatst online: 02-09 11:06
Bij de 2e quote snap ik dat de snelheidswinst verdwenen is, sterker nog, dat maakt het slomer dan dat het nu is maar dit zal enkel sporadisch gebeuren dus niet zo'n probleem.
Maar tijdens het typen bedacht ik de cron, die klinkt wel het logischt idd. Ik denk dat ik die maar is ga proberen als ik wat tijd heb.

Ik wil je in ieder geval bedanken voor je antwoord, ik denk dat ik maar ff snel een demootje bouw om te kijken hoe en wat qua performance ipv gelijk de gok te nemen.

[ Voor 21% gewijzigd door jozuf op 04-12-2009 09:51 ]


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16-09 09:15

Janoz

Moderator Devschuur®

!litemod

Als het alleen gaat om toegevoegde plaatjes en een eventuele vertraging bij het allereerste opvragen geen probleem hoeft te zijn zou ik het zelf andersom gaan doen. In je pagina laat je alle img urls verwijzen naar je snelle server. Enkel wanneer het plaatje daar nog niet staat haalt de externe server het plaatje op bij jou thuis server. Eigenlijk fungeert je externe host dan gewoon als een cache.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:16

crisp

Devver

Pixelated

Janoz schreef op vrijdag 04 december 2009 @ 10:27:
Als het alleen gaat om toegevoegde plaatjes en een eventuele vertraging bij het allereerste opvragen geen probleem hoeft te zijn zou ik het zelf andersom gaan doen. In je pagina laat je alle img urls verwijzen naar je snelle server. Enkel wanneer het plaatje daar nog niet staat haalt de externe server het plaatje op bij jou thuis server. Eigenlijk fungeert je externe host dan gewoon als een cache.
Dan moet je wel over scripting-mogelijkheden beschikken op die andere server. Wat ik zo opmaak uit de startpost is dat hier niet het geval (:?)

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • jozuf
  • Registratie: Augustus 2008
  • Laatst online: 02-09 11:06
Ok ff wat onduidelijkheid uit de weg ruimen.
De externe server heeft scripting mogelijkheden daar zit geen probleem maar wel ergens anders.
De thuisserver maakt gebruik van sqlite databases van mediaportal die dus enkel op de thuisserver aanwezig zijn, daarnaast ook nog een gedeelte in mysql (Ant movie catalog, oorspronkelijk xml word geimport richting mysql).
Dus op het moment staat alle content die er toe doet op de homeserver (denk hierbij aan omschrijving maar ook aan de filename van het plaatje en nog veel meer). Uiteraard kan ik nog wat gaan bedenken om ook nog de sqlite en mysql tables naar de snelle host te kopieren maar dat word me een beetje te gek.
Ik zoek alleen maar iets wat sneller werkt dan dat het nu doet, het hoeft geen kunstwerk te worden :)
Ik had dit in eerste instantie gepost omdat ik me afvroeg of het "kijken of het plaatje op de CDN al bestaat" stuk wellis kon resulteren (in mijn hoofd dan) als iets wat ongeveer gelijkwaardig zou presteren.

[ Voor 4% gewijzigd door jozuf op 04-12-2009 11:22 ]


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16-09 09:15

Janoz

Moderator Devschuur®

!litemod

Dat hoeft niet. Het enige wat je hoeft te doen is de url naar je plaatjes aan te passen. Ipv de url op je thuisserver geef je een url op de externe server op en geef je de originele url mee als parameter. De snelle server haalt een kopie op wanneer hij die nog niet heeft en stuurt vervolgens de kopie terug.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • jozuf
  • Registratie: Augustus 2008
  • Laatst online: 02-09 11:06
Verrek, dat is een goed idee Janoz, nog niet aan gedacht.
Ik dacht al, slim om eerst ff dit ergens te posten om wat mensen erop te laten schieten.
Dit is denk ik wel de beste en vrij simpel te realiseren oplossing.

Bedankt!

p.s.
Wat vinden jullie van het idee achter deze site btw? Ik ben nu al pak hem beet een jaartje ofzo bezig om dit langzaam uit te breiden met stukjes functionaliteit. Wellicht dat het er ooit van komt om is een opensource project er van te maken (al eerder getracht maar koste toendertijd een beetje te veel inspanning door gebrekkige kennis van de andere leden + het feit dat het in veel aspecten te vast zit qua configuratie).
Er moet alleen dan nog erg veel gebeuren om alles generiek te laten zijn en zal zich enkel richten op windows omgevingen. Tenminste veel van de functionaliteit is nu opgebouwd rond windows, denk aan Mediaportal (windows only), eventghost, fortherecord etc.
Het idee is een beetje een gratis alternatief voor WHS dan. Het moet dan uitblinken in extendability (wat het nu nog niet echt doet, wel beetje rekening mee gehouden) en het feit dat het gratis is.

[ Voor 72% gewijzigd door jozuf op 04-12-2009 13:10 ]

Pagina: 1