DSD-NL 2015, Delft-FEWS Gebruikersdag, 8 FEWS Performance

30
09 juni, 2015 Nederlandse FEWS Gebruikersdag Delft-FEWS Database Analyse & Performance Marc van Dijk, Onno vd Akker

Transcript of DSD-NL 2015, Delft-FEWS Gebruikersdag, 8 FEWS Performance

Page 1: DSD-NL 2015, Delft-FEWS Gebruikersdag, 8 FEWS Performance

09 juni, 2015

Nederlandse FEWS Gebruikersdag Delft-FEWS Database Analyse & Performance Marc van Dijk, Onno vd Akker

Page 2: DSD-NL 2015, Delft-FEWS Gebruikersdag, 8 FEWS Performance

9 juni, 2015

Inhoud Presentatie

• Aanleiding

• Delft-FEWS tools voor systeem analyse

• Analyse Delft-FEWS performance

• Analyse van Delft-FEWS database

• Conclusies - Acties

Page 3: DSD-NL 2015, Delft-FEWS Gebruikersdag, 8 FEWS Performance

Aanleiding

• Sommige Delft-FEWS gebruikers hebben performance problemen met hun Delft-FEWS applicatie en melden dit bij FEWS support

• Symptomen • Workflows lijken langer te duren • FEWS OC hangt af en toe • Synchronisatie loopt vast (JBOSS) • Geheugen problemen computers (OC en FSS)

• Dit komt voornamelijk door

• Grote databases; localdatastores (OC en FSS) bij synchronisatie • Grote cache files bij Direct Database Access • Sub-optimale configuratie Delft-FEWS applicatie • Onvoldoende CPU / geheugen van de FSS’en

9 juni, 2015

Page 4: DSD-NL 2015, Delft-FEWS Gebruikersdag, 8 FEWS Performance

Aanleiding

• Afgelopen jaren zijn er verschillende analyses uitgevoerd bij gebruikers en binnen Delft-FEWS projecten om performance problemen duidelijk te krijgen:

• FEWS Scotland (Micha) - document • NFFS NorthEast (Marc) - document • HyFS (Marc) – memo • FEWS FOEN (Simone, Marc)

• Kennis opgedaan tijdens deze analyses gaan we delen met grote groep gebruikers • Moet uiteindelijk resulteren in adviezen voor op te zetten infrastructuur en configuratie

richtlijnen

9 juni, 2015

Page 5: DSD-NL 2015, Delft-FEWS Gebruikersdag, 8 FEWS Performance

24 Feb 2014 – 26 Feb 2014 HyFS End User Training

Delft-FEWS Tools voor Analyse

Page 6: DSD-NL 2015, Delft-FEWS Gebruikersdag, 8 FEWS Performance

Tools binnen Delft-FEWS software

Er zijn een aantal FEWS (debug) tools met bruikbare informatie over de FEWS applicatie About box • FEWS build nummer (en patch nummer) • Geheugen gebruik tijdreeksen en configuratie • Queries naar de database

F12 (Debug) – Q database • log database table spaces • database info

9 juni, 2015

Page 7: DSD-NL 2015, Delft-FEWS Gebruikersdag, 8 FEWS Performance

Tools binnen Delft-FEWS software

Status Bar • Verbonden met MC Server • Lees snelheid uit database

• Downloadsnelheid bij Direct Database Access • Leessnelheid localdatastore bij Synchronisatie

• Geheugen gebruik OC client • Dubbelclick schoont geheugen OC op • Als het rood wordt zit je aan je maximum geheugen

OC Logging van database queries bij DDA

9 juni, 2015

Page 8: DSD-NL 2015, Delft-FEWS Gebruikersdag, 8 FEWS Performance

Tools binnen Delft-FEWS software

Database Viewer

• Start en End date van external historical series. Als deze rood zijn dan eerste /laatste waarde missing. Incidenteel mag dat; als het vaak optreed moet het opgelost worden in de configuratie (blaast database op)

• Value Resolution: Sla waarden op met significante cijfers • Disk Space geeft aan hoeveel ruimte nodig is voor opslaan reeksen • Blob Count en Weighted Blob Count. Voor scalaire data geeft dit aan hoeveel blobs

gemerged kan worden. BC moet liefst 1 zijn. WBC van 0.2 geeft aan dat 5 reeksen in 1 blob zitten.

• Time Series Count geeft aan hoeveel reeksen er in een workflow zitten.

9 juni, 2015

Page 9: DSD-NL 2015, Delft-FEWS Gebruikersdag, 8 FEWS Performance

Tools binnen Delft-FEWS software

Detail analyse FEWS database: FEWS VJDBC Server en DBVisualiser (procedure staat op WIKI) • Werkt alleen op localdatastore • Bij DDA, download eerst database met replicate functie (F12 – database)

9 juni, 2015

Page 10: DSD-NL 2015, Delft-FEWS Gebruikersdag, 8 FEWS Performance

Tools binnen Delft-FEWS software

• Logging op de FSS: log.txt file • INFO - ForecastingShell.init - ForecastingShell.Info: version: 2014.02, build: 54359 (patched from 50595)

Jun2, type: BOM, jre: 1.7.0_71, os:Windows 7, user:aubo, mx: 1037m, db: Oracle 12.1, region: HyFS

• INFO - TaskRun.run - TaskRun.Started: Starting Task ImportExternal with ID AUBOMC00:000247950 and T0 2015-06-08 09:22:00 and default forecast length, available memory 831 MB

• INFO - Workflow.run - Workflow.ActivityCompleted: Workflow ImportExternal completed in 5s

• INFO - TaskRun.run - TaskRun.TimeSpend:SecondaryValidation 4s 75% TimeSeriesImport 1s 23% datastore 1s 24% cache files 6.3 MB database 0s 0% (7 ms/query, 17 kB, 50 kB/s, 49 queries, 4481 rows) reloaded 0 B time series read 9013 (unique=7927) time series written 9013 (changed=0) files 0s 0% logging 0s 0% gc 1s 10% cpu 90% max mem. 231 MB index mem. 28 MB db con. acquire time 0s 0% lock. acquire time 0s 0%

• Vooral garbage collector (gc) is belangrijk, >30% dan is er iets aan de hand.

• Onvoldoende geheugen computer waardoor geheugen gaat swappen naar schijf (VM servers)

• Scan de tijd van opstarten, afsluiten en verschillende modules

9 juni, 2015

Page 11: DSD-NL 2015, Delft-FEWS Gebruikersdag, 8 FEWS Performance

Tools binnen Delft-FEWS software

Admin Interface tools: Database Analyse • Gebruik om grootte database en aantal records te monitoren

9 juni, 2015

Page 12: DSD-NL 2015, Delft-FEWS Gebruikersdag, 8 FEWS Performance

24 Feb 2014 – 26 Feb 2014 HyFS End User Training

Performance

Page 13: DSD-NL 2015, Delft-FEWS Gebruikersdag, 8 FEWS Performance

Performance Aandachtspunten

Performance van een systeem is afhankelijk van verschillende factoren • Gebruikservaring FEWS gebruiker • Hoeveelheid gegevens, grootte database • ICT-Infrastructuur • Configuratie FEWS Applicatie

Ervaringen FEWS Applicaties • Grote systemen kunnen goede performance hebben • Performance problemen zijn tot nu toe (bijna) allemaal oplosbaar

Voor een betrouwbaar ‘performant’ Delft-FEWS systeem is (dagelijks) monitoren van de verschillende componenten belangrijk: • Detecteer potentiele problemen voordat het een probleem gaat worden • Detecteer problemen welke niet direct zichtbaar zijn voor ‘normale’ gebruikers • Documenten beschikbaar bij Deltares met voorbeelden basis ‘Health Checks’.

9 juni, 2015

Page 14: DSD-NL 2015, Delft-FEWS Gebruikersdag, 8 FEWS Performance

Performance Voorbeelden

Voorspellingsysteem van National Weather Service; regionaal systeem (VS) • Veel metingen (relatief grote tijdstap), relatief weinig grids • Heel veel losse modellen (>1000) met complexe FEWS xml configuratie • Veel simulaties met ensembles en losse tijdreeksen • Een dagelijkse voorspelling bevat 900.000 individuele tijdreeksen • Ondanks grote hoeveelheid tijdreeksen is de performance goed

9 juni, 2015

Page 15: DSD-NL 2015, Delft-FEWS Gebruikersdag, 8 FEWS Performance

Performance Voorbeelden

Voorspellingsysteem van Bureau of Meteorology (Australië) • Veel metingen voor +- 10.000 meetlocaties (kleine tijdstap); import elke 3 minuten. • Veel Meteo en Radar grids • Beperkte hoeveelheid centrale simulaties op back-end servers • Veel locale runs op Operator Client • Getest met 70 gelijktijdige gebruikers, performance bleef goed • Meest problematische data is bewerkte neerslag data (elke 3 minuten andere waarde)

9 juni, 2015

Page 16: DSD-NL 2015, Delft-FEWS Gebruikersdag, 8 FEWS Performance

Performance Voorbeelden

Voorspellingsysteem van FFC, Environment Agency (Engeland) • Nationaal neerslag en waterstand meetnetwerk +- 3.000 meetlocaties (alles 15 minuten

tijdstap, dus eenvoudig). • Veel Meteo en Radar grids; vooral veel ensembles • Weinig simulaties in FEWS, meeste model simulaties op super computer MetOffice • Veel Nowcast ensembles (elke 15 minuten), +- 10 Gb dag. • Geoptimaliseerd door data maar tijdelijk op te slaan (2-6 uur), hierdoor database maar

2-3 Gb groot.

9 juni, 2015

Page 17: DSD-NL 2015, Delft-FEWS Gebruikersdag, 8 FEWS Performance

Voorbeelden Performance bottlenecks

• External historical reeks verdeeld over meerdere blobs is sub-optimaal

• Kan door import komen (Import formaat met original missings) • Processen van dezelfde data in verschillende workflows • Bewerkingen die elke run veranderen (bv ruimtelijke interpolaties van neerslag)

9 juni, 2015

Page 18: DSD-NL 2015, Delft-FEWS Gebruikersdag, 8 FEWS Performance

Performance Aandachtspunten

• Zorg voor goed ICT infrastructuur • Voldoende geheugen op een OC en FSS • Snel netwerk, of Virtual Desktop oplossingen

• Aandachtspunten gebruik Direct Database Access

• Verschil PostGresSQL en ORACLE maakt niet veel uit • PostGResSQL geeft iets meer netwerkverkeer maar eenvoudiger onderhoud • Bij SQL-Server en PostgresSQL is performance slechter bij database met veel

records van korte levensduur

• Optimaliseer de Configuratie • Korte locatie ID’s en parameter ID’s. Mergen van Blobs gaat beter • Gebruik veel temporary series als je de data toch niet laat zien • Processen van data in 1 workflow

9 juni, 2015

Page 19: DSD-NL 2015, Delft-FEWS Gebruikersdag, 8 FEWS Performance

Performance Aandachtspunten

Grootste performance problemen zien we bij. Delft-FEWS als operationeel voorspellingsysteem: • Gebruik ensemble voorspellingen (veel grids met beperkte houdbaarheid) • Draaien grote modellen met veel grid uitvoer en grote model states • Complexe configuratie met veel modellen en configuratie bestanden

Delft-FEWS als WIS systeem • Lange historische scalaire reeksen. Vooral processing optimaliseren. • Radar grids gebruiken veel database ruimte

9 juni, 2015

Page 20: DSD-NL 2015, Delft-FEWS Gebruikersdag, 8 FEWS Performance

24 Feb 2014 – 26 Feb 2014 HyFS End User Training

Grote Databases

Page 21: DSD-NL 2015, Delft-FEWS Gebruikersdag, 8 FEWS Performance

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 500.000 – 600.000

• ThresholdEvents > 250.000 • Reports • WarmStates • Logentries

9 juni, 2015

Page 22: DSD-NL 2015, Delft-FEWS Gebruikersdag, 8 FEWS Performance

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)

9 juni, 2015

Page 23: DSD-NL 2015, Delft-FEWS Gebruikersdag, 8 FEWS Performance

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

Module Instance Number of

moduleinstance datasets in database (-)

Total Size in database (MBytes)

Northeast_Modules 9 67.34 Northeast_Modules_Triton 7 59.19 R_Part4_Module 1 10.38 R_Part2_Module 1 10.17 R_Part3_Module 1 4.21 R_Part1_Module 1 3.84 Northeast_ColdStates 8 2.61 Northeast_HFPT_Modules 1 2.53 Report_Export 14 1.71 Report_Export_ZIPFile 14 1.71 ISIS_Don_Forecast 2 0.50 Northeast_Reports 1 0.12 Report_Export_System_ZIPFile 1 0.02 ISIS_Gaunless_Forecast 3 0.01

9 juni, 2015

Page 24: DSD-NL 2015, Delft-FEWS Gebruikersdag, 8 FEWS Performance

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;

FSS OC

Time series type No. Records (-)

Size on Binary Object (MBytes)

Average size of record (Bytes)

Percentage (%)

External Historical 289443 137 473 9.95% External Forecasting 82750 724 8749 52.61% Simulated Historical 17028 9 544 0.67% Simulated Forecasting 360478 506 1404 36.77% Temporary Total 749699 1376 100.00%

Time series type No. Records (-)

Size on Binary Object (MBytes)

Average size of record (Bytes)

Percentage (%)

External Historical 67198 32 478 7.82% External Forecasting 43695 373 8541 90.82% Simulated Historical 855 0 562 0.12% Simulated Forecasting 3045 5 1674 1.24% Temporary Total 114793 411 100.00%

9 juni, 2015

Page 25: DSD-NL 2015, Delft-FEWS Gebruikersdag, 8 FEWS Performance

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

9 juni, 2015

Page 26: DSD-NL 2015, Delft-FEWS Gebruikersdag, 8 FEWS Performance

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 <synchLevel>6</synchLevel> naar

<synchLevel>7</synchLevel> voor alle grids die op FSS kunnen blijven Parameter No.

Records (-)

Size of data Object (MBytes)

Pressure.msl 32 10.16 Wind.u 49 17.04 Wind.v 49 17.03

Parameter No. Records (-)

Size of data Object (MBytes)

Pressure.msl 32 10.16 Wind.u 10 2.89 Wind.v 10 2.95

9 juni, 2015

Page 27: DSD-NL 2015, Delft-FEWS Gebruikersdag, 8 FEWS Performance

Analyse HyFS

Amalgamate is heel belangrijk (getrapt geïmplementeerd, dag, week, maand))

9 juni, 2015

Page 28: DSD-NL 2015, Delft-FEWS Gebruikersdag, 8 FEWS Performance

24 Feb 2014 – 26 Feb 2014 HyFS End User Training

Conclusies - Acties

Page 29: DSD-NL 2015, Delft-FEWS Gebruikersdag, 8 FEWS Performance

Conclusies - Acties

Verschillende analyses hebben een aantal zaken duidelijk gemaakt

Configuratie • Gebruik getrapte amalgamate oplossing voor external historical series • Na aanpassingen van wind grids, thresholdsevents en meteo processing in

EA Northeast configuratie is database grootte met 50% gereduceerd • Zorg voor duidelijke configuratie met gescheiden workflows voor import,

processing en simulaties

Delft-FEWS software • Problemen met mergen blobs verbeterd • Geheugen gebruik cache bestanden verbeterd, enkele fouten gevonden en

opgelost • Gezamenlijk gebruik FEWS operationele database en FEWS Archief gaat

steeds belangrijker worden

9 juni, 2015

Page 30: DSD-NL 2015, Delft-FEWS Gebruikersdag, 8 FEWS Performance

Algemene aanbevelingen

• 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

• Tijd nemen in projecten voor het reviewen van configuratie • Leren van elkaar: uitwisselen analyses en tips

• Presentaties en analyses komen op de WIKI

9 juni, 2015