Slide 1 - Deltares Public Wiki

advertisement
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)
April 20, 2015
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
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
Module Instance
Total Size
database
(MBytes)
Northeast_Modules
Number
of
moduleinstance
datasets
in
database
(-)
9
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
April 20, 2015
67.34
in
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”
Module Instance
Report_Fluvial_Locations
Number of reports
in database
(-)
30144
Total Size
database
(MBytes)
179.53
Report_TRITON
14400
134.01
Report_Coastal
12736
60.70
Report_CoastalStatus
3456
38.35
Report_Fluvial
2304
27.22
Report_Overall
1216
8.41
Report_SystemStatus
256
3.41
Report_Status_Table
256
1.76
Report_Precipitation
192
0.71
Report_ForecastHistory
64
0.09
April 20, 2015
in
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
External Forecasting
Simulated Historical
Simulated Forecasting
Temporary
Total
289443
82750
17028
360478
137
724
9
506
473
8749
544
1404
9.95%
52.61%
0.67%
36.77%
749699
1376
100.00%
April 20, 2015
Time series type
No. Records
(-)
Size on Binary
Object
(MBytes)
Average
size
of record
(Bytes)
Percentage
(%)
External Historical
External Forecasting
Simulated Historical
Simulated Forecasting
Temporary
Total
67198
43695
855
3045
32
373
0
5
478
8541
562
1674
7.82%
90.82%
0.12%
1.24%
114793
411
100.00%
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
Value type
No. Records
(-)
Size on Binary
Object
(MBytes)
Average size
of record
(Bytes)
Percentage
Scalar data
Gridded Data
Total
747899
1800
749699
785
591
1376
1050
328404
329454
57.04%
42.96%
100.00%
Value type
No. Records
(-)
Size on Binary
Object
(MBytes)
Average size
of record
(Bytes)
Percentage
Scalar data
Gridded Data
Total
113896
897
126
285
411
1106
317640
318746
30.66%
69.34%
100.00%
114793
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 <synchLevel>6</synchLevel> naar
<synchLevel>7</synchLevel> voor alle grids die op FSS kunnen blijven
Parameter
No.
Records
(-)
32
49
49
Size of data
Object
(MBytes)
10.16
17.04
17.03
Parameter
No.
Records
(-)
Size of data
Object
(MBytes)
Pressure.msl
Wind.u
Wind.v
32
10
10
10.16
2.89
2.95
Pressure.msl
Wind.u
Wind.v
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 30-120 dagen historic data
• External Historical: 120 dagen
• Workflowdescriptors: 120 dagen voor simulated workflows
• Modelstates: volgt Workflowdescriptors
• Simulated grids: 2 dagen
• Simulated scalars: 10-120 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
[2015-04-19 23: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
Download