April 20, 2015 FEWS Lunchlezing Delft-FEWS Database Analyse Marc van Dijk
April 20, 2015 Aanleiding Performance problemen bij klanten Grote localdatastores (OC en FSS) Workflows lijken langer te duren FEWS OC hangt af en toe Klachten zowel bij gebruik Localdatastore en Direct Database Access Analyse uitgevoerd bij enkele gebruikers FEWS Scotland (Micha) - document NFFS NorthEast (Marc) - document HyFS (Marc) – memo FEWS FOEN (Simone, Marc)
Grote localdatastore / centrale database Wat is een grote database? FSS localdatabase > 3-5 GB Uitzondering kan zijn een systeem waarbij enkele grote grids gebruikt worden Probleem meestal in dynamische tabellen, soms ook statische config tabellen Enkele tabellen hebben veel records TimeSeries > 1 miljoen records Streef naar max van – ThresholdEvents > Reports WarmStates Logentries April 20, 2015
Tools binnen Delft-FEWS software Er zijn een aantal FEWS (debug) opties die veel informatie geven About box F12 – Q database > log database table spaces of > database info April 20, 2015
Tools binnen Delft-FEWS software FEWS log meldingen: Log.txt op de FSS Scan de tijd die verschillende modules doen over bewerkingen Scan tijd die opstarten en afsluiten van een FSS duurt Database Viewer FEWS VJDBC Server en DBVisualiser (procedure staat op WIKI) Werkt alleen op localdatastore Bij DDA, download eerst database met replicate functie (F12 – database) April 20, 2015
Tools binnen Delft-FEWS software Admin Interface tools April 20, 2015
Analyse NFFS - NorthEast Probleem NFFS: performance van NFFS regio systemen gaat achteruit Waarschijnlijk gevolg van grotere databases Eerste analyse: NFFS Northeast Conclusies Database is niet heel groot (2.5-3 GB) Verouderde configuratie; enkele nieuwe FEWS functies niet gebruikt Grootste problemen bij: ModuleDataSets (veel verschillende versies van oude config) ThresholdEvents (veel records in tabel, lange tijd opgeslagen) Reports (500 MB reports worden in database opgeslagen) TimeSeries (vooral probleem van grote grids en external historical) April 20, 2015
Analyse NFFS - NorthEast Statische Configuratie FEWS database is geen SVN repository Zorg ervoor dat configuratie regelmatig worden opgeschoond Vooral ModuleDataSets kunnen veel volume hebben Effect vooral zichtbaar op FSS localDataStore, is replica van hele database April 20, 2015
Analyse NFFS - NorthEast ThresholdEvents Worden gelogd door FEWS Thresholdmodule in workflows Gebruikt in Skillscores module en event logging (enhanced forecasting) Gebruik Thresholdmodule alleen in workflows die relevant zijn Zet eventExpiryTime in Thresholds configuratie (default 365 dagen) NorthEast: Checking the log messages show that this module consumes about 70% of the runtime of an import workflow (40 seconds). April 20, 2015
Analyse NFFS - NorthEast HTML reports HTML Reports worden meestal in database opgeslagen Expiry time is FEWS default = 1 dag NorthEast: 500 MB reports worden in database opgeslagen Effect alleen op FSS localDatastore Nieuwe FEWS ontwikkeling nodig: “Set the expirytime of reports to a period < 1 day or temporary” April 20, 2015
Analyse NFFS - NorthEast TimeSeries table Analyse uitgevoerd met VJDBC en DBVisualizer Kopie van OC localdatastore en FSS localdatastore Uitvoeren van verschillende queries om te zien waar probleem ligt Query 1: Counts the number and size of records according to time series type SELECT Count(blobid) as NumBlobs, TimeSeriesType, Sum(blobsize) as BlobSize FROM TimeSeries GROUP BY TimeSeriesType; FSSOC April 20, 2015
Analyse NFFS - NorthEast TimeSeries table Query 2: Counts the number and size of records according to value type (scalar, long., or grid) SELECT Count(blobid) as NumBlobs, ValueType, Sum(blobsize) as BlobSize FROM TimeSeries GROUP BY ValueType; FSS OC April 20, 2015
Analyse NFFS - NorthEast Aanbevelingen: external historical Verbeter de amalgamate module instance Maak configuratie transparant; misbruik moduleInstanceId niet Verwijder processing module instances uit forecast workflows Voorbeeld: grafiek met records per dag voor 1 jaar Geeft inzicht in hoe je database zal groeien na config aanpassing April 20, 2015
Analyse NFFS - NorthEast Aanbevelingen: external forecasting Voor grids: maak grid domein kleiner na import origineel grid Verander resolutie grids na import Kijk goed naar valueResolution; geen schijnnauwkeurigheid opslaan Sla alleen die grids (parameters op) die gebruikt worden Verander Change 6 naar 7 voor alle grids die op FSS kunnen blijven April 20, 2015
Analyse NFFS - NorthEast Aanbevelingen: simulated historical Geen problemen in NorthEast systeem Let wel op het volgende Zorg voor expiry times in workflowdescriptors, timeseries en modelstates Bespreek met gebruiker wat hij hoe lang wil bewaren. Mijn default expirytime is meestal dagen historic data External Historical: 120 dagen Workflowdescriptors: 120 dagen voor simulated workflows Modelstates: volgt Workflowdescriptors Simulated grids: 2 dagen Simulated scalars: dagen April 20, 2015
Analyse NFFS - NorthEast Aanbevelingen: simulated forecasting Coastal workflows zorgen voor grootste database load Zet expiry times op workflowdescriptors Sommige berekende reeksen worden nergens gebruikt; gebrek aan kennis van modellen Verplaats external historical processing taken naar import of speciale processing workflow Conclusie NFFS NorthEast Na aanpassingen van wind grids, thresholdsevents en meteo processing is database grootte met 50% gereduceerd April 20, 2015
Analyse HyFS HyFS werkt met veel meet locaties Import en processing workflow gescheduled elke 3 minuten HyFS werkt met Direct Database Access op FSS en OC (database = 2-3 GB) April 20, 2015
Analyse HyFS Cache files op OC en FSS moeten geoptimaliseerd worden Als cache files groot worden neemt geheugen gebruik toe Als geheugen gebruik toeneemt duren taken langer (Java garbage collector) tot wel 10 keer zo lang! Controleer regelmatig log op FSS [ :08:12,061] INFO - TaskRun.run - TaskRun.TimeSpend:SecondaryValidation 4s 64% TimeSeriesImport 1s 22% datastore 2s 24% cache files 4.7 MB database 0s 0% (5 ms/query, 13 kB, 52 kB/s, 43 queries, 3249 rows) reloaded 0 B time series read 9030 (unique=7792) time series written 9030 (changed=0) files 0s 0% logging 0s 0% gc 1s 23% cpu 92% max mem. 244 MB db con. acquire time 0s 0% lock. acquire time 0s 0% April 20, 2015
Analyse HyFS Amalgamate is heel belangrijk (getrapt geïmplementeerd, dag, week, maand)) April 20, 2015
Algemene aanbevelingen Grootste probleem is meestal aantal external historical series Gebruik ‘nieuw amalgamate’ (getrapte: dag, 1 per week, 1 per maand) Geen processing in forecast workflows (external historical aanmaken) Gebruik temporary series waar mogelijk Discussie met gebruiker wat echt relevant is om te tonen in displays (synchlevel 7 ook mogelijk) Denk goed na bij gebruik grote grids Haal relevante informatie uit grid tijdens import Maak grid groffer voor display Belangrijk: elk klein stukje winst kan later belangrijk blijken te zijn Oplossingen kunnen verschillend zijn voor Synchronisatie en DDA Zorg voor goede afstemming tussen expiry time in operationele database en FEWS Archief April 20, 2015
Hoe verder Presentatie zal op speciale (interne) WiKi pagina komen Leren van elkaar: uitwisselen analyses en tips Tijd nemen in projecten voor het reviewen van elkaars configuratie April 20, 2015