Algemeen forum voor discussie over de website
Door Luc
#8066
Door enorme drukte is de website gisteren en vanavond slecht tot zelfs niet bereikbaar geweest. In eerste instantie heb ik de achtergrond processen zoals het genereren van het temperatuurkaartje wat minder vaak uitgevoerd. Gisteren bleek dat voldoende. Vandaag echter niet.

Analyse leert dat het bezoek aan deze site door bezoekers niet 'killing' is. Het grote probleem komt door het de plaatjes (MOS images/weerbanners etc) die op externe websites staan. Omdat deze plaatjes dynamisch gegenereerd worden, zijn de processors te druk. Na een restart van de server, was deze binnen enkele minuten weer opnieuw gecrashed.

Ik heb langdurig met de provider gebeld voor oplossingen. Ik ben zeer goed geholpen. Morgen krijg ik een offerte voor een upgrade van 2 naar 4 processoren. 4Gb Geheugen zit er al in en dit blijkt nog ruim voldoende. Upgrade naar 8Gb is (nog) niet nodig.

Voor de korte termijn heb ik een drastische maatregel moeten nemen. Vanaf externe websites is het momenteel niet mogelijk om de MOS images en weerbanners te bekijken. Dit is geblokkeerd om de website in de lucht te houden. Deze tijd probeer ik tot een minimum te beperken. Hopelijk kan ik dat morgenvroeg alweer deblokkeren.

Ik ben niet blij dat ik tot deze maatregel moet overgaan, maar ik hoop op begrip.

Om het van de goede kant te bekijken, kunnen we ook zeggen dat de server van hetweeractueel.nl niet tegen extreem lage temperaturen bestand is. Vanaf -15C crasht deze :woohoo:

Gr,
Luc
#8071
Luc schrijft:
Voor de korte termijn heb ik een drastische maatregel moeten nemen. Vanaf externe websites is het momenteel niet mogelijk om de MOS images en weerbanners te bekijken. Dit is geblokkeerd om de website in de lucht te houden. Deze tijd probeer ik tot een minimum te beperken. Hopelijk kan ik dat morgenvroeg alweer deblokkeren.
Dit scheelt enorm. Het temperatuurkaartje kan nu weer gewoon iedere 10 minuten berekend worden.

Op de externe website staat op de plaats van de plaatjes nu even onderstaand statisch plaatje. Dit kost weinig processor capacitieit. Zo weten jullie bezoekers dat het slechts tijdelijk is. Lijkt me wel een nette oplossing.

Bijlagen
uit.png
uit.png (3.9 KiB) 3177 keer bekeken
#8072
Hoi Luc,

De blokkade geldt dus niet voor de MOS xml feed, want die is nog steeds te benaderen. Zoals je misschien al had gelezen in het topic over de mos xml feed, heeft Joris Synaeve hiervoor een PHP script gemaakt om de xml op te halen bij HWA en uit te lezen. Sinds afgelopen maandag is er een nieuwe versie van het script met daarin een caching-mechanisme, zodat de xml lokaal op de eigen website wordt opgeslagen en van daaruit wordt ingelezen en in principe maar 2x per dag bij HWA wordt opgehaald voor updates. Om 09.45 en 21.45 wordt om de 10 minuten de xml bij HWA opgehaald en in de cache opgeslagen, net zolang tot de nieuwe versie er is. Vanaf dat moment tot het volgende controleermoment, wordt de xml weer lokaal uitgelezen.
Ik had al een script draaien met dit mechanisme, dus het leek mij wel een goed plan om dit ook in het script van Joris te implementeren. Dit scheelt namelijk gigantisch veel aanroepen naar HWA om de xml op te halen. Zonder deze cache wordt de xml bij iedere aanroep van het script opgehaald bij HWA. Nu met de cache, is dat nog maar 2x per dag, tenzij de update langer op zich laat wachten. Dus, hierbij ook het verzoek aan iedereen die het mos script van Joris gebruikt en de update van maandag nog niet heeft uitgevoerd om dit wel te doen, om zo het dataverkeer tot een minimum te beperken.

Sietse Roolvink
Weerstation Leeuwarden
#8073
Hoi Sietse,

Bedankt voor de informatie en het bouwen het caching mechanisme.
Ik zou wel de tijd van het ophalen aanpassen. Ik haal ook om 9:45u en 21:45u de XML verwachtingen op bij MC. Als de tijd van de server waarop jullie scripts draaien iets voorloopt op die van HWA, dan kan het zijn, dat je nog oude data krijgt.

Wellicht pas ik deze tijden ook nog eens aan. Daarom is het beter bijvoorbeeld een keer per uur te kijken of er wijzigingen zijn. Dat scheelt ook al een heleboel dataverkeer. Dataverkeer is momenteel ook niet de bottleneck, maar processor capaciteit.

De XML feed staat niet in mijn database, waardoor de processor relatief weinig hoeft te doen voor het doorgeven van de MOS feed.

Maar inderdaad alle beetjes helpen!!

Gr,
Luc
Door Luc
#8076
De MOS images zijn weer beschikbaar. In plaats van alle plaatjes vanaf externe websites te blokkeren, heb ik nu tijdelijk enkele promotie- en weerbanners selectief geblokkeerd. Dit lijkt allemaal goed te gaan.
#8082
Hoi Luc,

Zo denk ik er ook over, alle beetjes helpen.
Grote voordeel van deze caching voor ons is, dat wanneer HWA ooit weer eens offline is (waar we niet van uitgaan), wij wel gewoon onze verwachting blijven zien, omdat de cache-file wordt gebruikt.

Nog even over die tijden van 09.45 en 21.45 uur, wanneer wij op dat moment nog de oude xml van HWA krijgen, wordt deze ook weer in de cache opgeslagen (met nieuwe tijd en datum). Bij de eerstvolgende aanroep van het script wordt er gekeken of er een aanroep naar HWA gedaan moet worden, maar voordat dat gebeurt, wordt er eerst gekeken of er nog een cachefile aanwezig is die nog niet ouder is dan 10 minuten. Zo ja, dan wordt deze weer gebruikt. Pas wanneer de cachefile ouder is dan 10 minuten, wordt er weer een aanroep naar HWA gedaan. Die xml wordt ook weer in de cache opgeslagen (oude wordt overschreven). Is dit de nieuwste versie, dan wordt vanaf dat moment altijd de cachefile weer gebruikt tot volgende contoleertijd, dus 09.45 of 21.45 uur. Mocht er dus om bijv. 09.45 uur nog geen nieuwe zijn, dan wordt er na 10 minuten weer een poging gedaan en dan zal de update er wel zijn. Het hangt er natuurlijk wel vanaf of er dat moment een aanroep van het script wordt gedaan. Zo niet, dan gebeurt er ook niets.

Maar de kortste klap zou natuurlijk zijn om ons controleermoment naar bijv. 09.50 en 21.50 te zetten. Maar dan nog kan het voorkomen dat de update er niet is, omdat er bijv. vertraging is bij MC en jij om 09.45 of 21.45 de nieuwste versie nog niet hebt.
Het zal dus nooit 100% werken :unsure:

Sietse Roolvink
Weerstation Leeuwarden
Door jorissynaeve
#8096
100% gaat het inderdaad nooit werken, maar we denken dat dit de best mogelijke manier is. Je kan altijd eens bij houden wanneer gemiddeld de MOS-XML wordt vernieuwd en die gemiddelde tijd kunnen we dan in voegen in het script. Voorlopig zou ik persoonlijk die 9u45 en 21u45 behouden, omdat dit toch de snelste manier is op dit moment om nieuwe data binnen te krijgen.

Wat betreft de mos-image. Ik zit met het idee binnenkort deze vrij te geven, indien ik alle mogelijke weerbeschrijvingen en weercodes in mijn bezitting heb.
Ik zou het image-script niet vrij geven maar laten genereren via een externe server. Het zou dan ook via aan cache systeem werken zodat ook op dezelfde manier de afbeelding bij gehouden wordt op ieders eigen server.

Dit zou op de volgende manier gaan:
1) er wordt een script op een "centrale server" geplaatst die de image genereert.
2) er wordt een script gemaakt dat draait op ieders server die controleert op nieuwe xml (zoals hier boven beschreven). Indien nieuw, doet het script een aanroep naar de centrale server die dan de image genereert en die image wordt op zijn beurt opgeslaan in een cache op ieders eigen server.

Dit kan eigenlijk ook handig geïmplementeerd worden voor huidige MOS-image die beschikbaar is op HWA. Iedereen roept dan maar 2x per dag in principe de afbeelding op terwijl de andere keren dat ieders website bezocht wordt de afbeelding uit de cache opgehaald wordt.
Dit zou denk ik zeer veel schelen qua performance van HWA, behalve 2 pieken rond 9u45 en 21u45

Ik hoop dat ik het wat deftig uitgelegd heb :)
#8097
Ik zie ook dat het de laatste tijd extreem druk is op HWA. Rond de 200 gebruikers online zie ik regelmatig.
Dat heeft vast met het extreme weer te maken. Men heeft dan altijd wat meer interesse in het weer.
Door Luc
#8114
Inmiddels zijn weer alle plaatjes beschikbaar op externe websites. Alleen de grafieken niet die bij de afzonderlijke weerstations staan.

Alle plaatjes op deze website worden dynamisch gegenereerd. Ook dus als deze vanaf externe websites worden aangeroepen. Dit kost enorm veel processorkracht. De oplossing is in theorie vrij simpel en efficient op te lossen.

Door de plaatjes op de server te cashen en eens per 5 minuten te updaten ipv iedere keer, is er een enorme performance winst te behalen. De plaatjes zijn de afgelopen paar dagen ongeveer 1,5 miljoen keer opnieuw berekent.

Het ontwikkelen van dit caching mechanisme is nog wel wat werk. Totdat dit klaar is, kan het dus zijn dat ik het ophalen van plaatjes van externe websites af en toe moet blokkeren.

mvgr,
Luc