DSD-NL 2015, Delft-FEWS Gebruikersdag, 8 FEWS Performance
-
Upload
deltaressoftwaredagen -
Category
Software
-
view
77 -
download
2
Transcript of 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
9 juni, 2015
Inhoud Presentatie
• Aanleiding
• Delft-FEWS tools voor systeem analyse
• Analyse Delft-FEWS performance
• Analyse van Delft-FEWS database
• Conclusies - Acties
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
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
24 Feb 2014 – 26 Feb 2014 HyFS End User Training
Delft-FEWS Tools voor Analyse
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
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
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
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
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
Tools binnen Delft-FEWS software
Admin Interface tools: Database Analyse • Gebruik om grootte database en aantal records te monitoren
9 juni, 2015
24 Feb 2014 – 26 Feb 2014 HyFS End User Training
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
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
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
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
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
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
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
24 Feb 2014 – 26 Feb 2014 HyFS End User Training
Grote Databases
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
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
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
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
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
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
Analyse HyFS
Amalgamate is heel belangrijk (getrapt geïmplementeerd, dag, week, maand))
9 juni, 2015
24 Feb 2014 – 26 Feb 2014 HyFS End User Training
Conclusies - Acties
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
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