3. 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
4. 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
5. 24 Feb 2014 – 26 Feb 2014HyFS End User Training
Delft-FEWS Tools voor Analyse
6. 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
7. 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
8. 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
9. 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
10. 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
11. Tools binnen Delft-FEWS software
Admin Interface tools: Database Analyse
• Gebruik om grootte database en aantal records te monitoren
9 juni, 2015
12. 24 Feb 2014 – 26 Feb 2014HyFS End User Training
Performance
13. 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
14. 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
15. 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
16. 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
17. 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
18. 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
19. 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
20. 24 Feb 2014 – 26 Feb 2014HyFS End User Training
Grote Databases
21. 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
22. 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
23. 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
24. 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
25. 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
26. 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
28. 24 Feb 2014 – 26 Feb 2014HyFS End User Training
Conclusies - Acties
29. 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
30. 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