SlideShare a Scribd company logo
1 of 42
Download to read offline
Gnocchi v3
Optimisation opportunities
▹ Improve coordination
▸ A lot of contention for same job
among workers resulting in wasted
operations
▹ Performance degradation in large series
▸ Larger file == slower read
▸ Larger file == slower write
Coordinated
Scheduling
Minimising contentions
metricdmetricd
worker
worker
worker
worker
worker
worker
Current distribution
▹ Agents unaware of each
other
▹ Workers unaware of each
other
▹ Each worker queries
backlog, grabs a chunk
starting from offset based
on id
+ Workers are completely
dumb
- Workers are completely
dumb
metricd
scheduler
worker
worker
worker
metricd
scheduler
worker
worker
worker
Proposed distribution
▹ Agents aware of each other
▹ Workers unaware of each
other
▹ A central process queries
backlog and pipes jobs to
common queue for
workers
▹ Each agent grabs a chunk
starting from offset based
on something.
+ More coordination, less
contentions
+ One query to control them
all
- More management
Testing methodology (small series)
▹ POST 1000 generic resources spread
across 20 workers, 20 metrics each
▸ every 5 minutes
▸ 60 points/metric per POST
▸ 1.2 million points every 5 min
▸ 3 granularities x 8 aggregates
▸ ~500 points in most granular series
▹ 3 metricd services, 24 workers each
Processing time
~4% to ~23% improvement.
Minimising operations
Writing with Offsets
v2.x
{‘values’:{<timestamp>: float,
<timestamp>: float,
...
<timestamp>: float}}
New serialisation format
v3.x
Uncompressed:
Delimiter+float+delimiter+float+
...+delimiter+float
Compressed:
Time+float+time_delta+float+
...+time_delta+float
Testing methodology (small series)
▹ POST 1000 generic resources spread
across 20 workers, 20 metrics each
▸ every 5 minutes
▸ 60 points/metric per POST
▸ 1.2 million points every 5 min
▸ 3 granularities x 8 aggregates
▸ ~500 points in most granular series
▹ 3 metricd services, 24 workers each
Amount of time
required to
compute 1.2M
points into 20K
metrics of 24
different
aggregations.
Testing methodology (medium series)
▹ POST 500 generic resources spread across
20 workers, 20 metrics each
▸ every 5 minutes
▸ 720 points/metric per POST
▸ 7.2 million points every 5 min
▸ 3 granularities x 8 aggregates
▸ ~7000 points in most granular series
▹ 3 metricd services, 24 workers each
Time to compute
720 data points
into 24 different
aggregates and
store data
Total metrics
processed. 10K
metrics sent
periodically.
A higher slope
represents faster
processing rate
Gnocchi v2.1.4 vs Gnocchi v3.0
Old vs New
Release notes v3
▹ New storage format for new, back window and
aggregated series (msgpacks vs struct serialisation)
▹ Storage compression
▹ No-read append writes (Ceph only)
▹ Dynamic resource configuration
▹ Coordinated task scheduling
▹ Performance related changes to aggregation logic
▹ Grafana 3.0 support
Computation time
per metric
Amount of time
required to
compute new
measures into 24
different
aggregates.
~60% less
processing time at
lower unprocessed
sizes
~40% less
processing time at
higher
unprocessed sizes
Write throughput
Data generated
using benchmark
tool in client. 32
single-threaded
api server
processes,
4x12threads client.
Gnocchi writes to
disk but will be
enhanced to write
to memory (for
Ceph)
Average time to
write measures
POST per second
The number of
metrics that can
be pushed to 32
API workers.
Response time.
Majority of time
taken by client
side processing
and formatting.
Disk size.
Live datapoints
are 18B in v2.1 and
at worst 8B (9B in
Ceph) in v3.
Compression is
applied which
additionally lowers
size.
v2.1 datapoints
were serialized
using msgpacks. In
v3, the storage
format is
optimised for
space efficiency
and compression.
Testing methodology (short series)
▹ POST 1000 generic resources spread
across 20 workers, 20 metrics each
▸ every 5 minutes
▸ 60 points/metric per POST
▸ 1.2 million points every 5 min
▸ 3 granularities x 8 aggregates
▸ ~500 points in most granular series
▹ 3 metricd services, 24 workers each
Amount of time
required to
process 1.2M
points across 20K
metrics into 24
different
aggregates per
cycle.
Number of metrics
processed per 5s.
No degradation
between batches
and more
consistent
processing rates
V2.1.4 averages ~6
metrics (144
aggregates)
calculated every 5
seconds per
worker.
V3.0 averages
~10.88 metrics
(261 aggregates)
calculated every 5
seconds per
worker.
Amount of Ceph
IOPs required to
process 1.2M
points across 20K
metrics into 24
different
aggregates per
cycle.
Less operations/s
represents lower
hardware
requirements
Number of times a
worker attempts
to handle a metric
that has already
been handled.
Less contentions
represents better
job scheduling.
Time required to
POST 1.2M points
across 20K metrics
under load.
20 workers making
50 POSTs of 20
metrics, 60 points
per metric.
Testing methodology (medium series)
▹ POST 500 generic resources spread across
20 workers, 20 metrics each
▸ every 5 minutes
▸ 720 points/metric per POST
▸ 7.2 million points every 5 min
▸ 3 granularities x 8 aggregates
▸ ~5760 points in most granular series
▹ 3 metricd services, 24 workers each
Amount of time
required to
process 7.2M
points across 10K
metrics into 24
different
aggregates per
cycle.
More insights
Gnocchi v3
Threading
enabled.
Python threading
only works when
I/O heavy (see:
GIL). CPU usage
has been
minimised and
now threading
works
54 metricd with 8
threads has
roughly same
performance as 72
single-threaded
metricd.
Effect of number of
aggregates on
processing time.
Less
aggregates/metric,
less time to
process. More
aggregates/metric,
more time.
Note: spike at
batch 5 is due to
compression logic
that is triggered by
dataset.
Effect of series
length on
datapoint size.
Long, medium,
short series
contain 83K, 1.4K,
and 400 points
respectively.
Shorter series are
more likely to have
to-be-deleted stale
data as well as less
compression
opportunities
(latter applicable
only to Ceph).
Effect of series
length on
datapoint size.
Shorter series tend
to have higher
granularity and
thus larger back
window
requirements.
Future Dreams
Potential future work
▹ Dynamic re-aggregation
▹ Python3.5 AsyncIO threading
support
▹ Rolling upgrades
▹ Ceph asynchronous writes
▹ In-memory storage to improve
write performance
Appendix
Test Configuration
Hardware configuration
▹ 4 physical hosts
▸ CentOS 7.2.1511
▸ 24 physical cores (hyperthreaded), 256 GB
memory
▸ 25 - 1TB disks, 10K RPM
▹ 1Gb network
Host configuration
▹ Host1
▸ OpenStack Controller Node
▸ Ceph Monitoring service
▹ Host2
▸ OpenStack Compute Node (idle)
▸ Ceph OSD node (10 OSDs + SSD Journal)
▹ Host3
▸ Ceph OSD node (10 OSDs + SSD Journal)
▸ Gnocchi API (32 workers)
▹ Host4
▸ OpenStack Compute Node (~idle)
▸ Ceph OSD node (10 OSDs + SSD Journal)
▸ PostgreSQL
Services
▹ PostgreSQL 9.2.15 (single node)
▸ Default everything, except 300 connections
vs 100(default)
▹ Ceph 10.2.2 (4 nodes, 1 monitoring, 3 OSD)
▸ 30 OSDs (1 TB disk), Journals share SSD, 2
replica, 2048 placement groups
▹ Gnocchi MetricD
▸ 3 nodes, shared with Ceph OSDs
▸ 24 workers per service

More Related Content

What's hot

HBaseCon 2013: OpenTSDB at Box
HBaseCon 2013: OpenTSDB at BoxHBaseCon 2013: OpenTSDB at Box
HBaseCon 2013: OpenTSDB at BoxCloudera, Inc.
 
Monitoring MySQL with OpenTSDB
Monitoring MySQL with OpenTSDBMonitoring MySQL with OpenTSDB
Monitoring MySQL with OpenTSDBGeoffrey Anderson
 
OpenTSDB 2.0
OpenTSDB 2.0OpenTSDB 2.0
OpenTSDB 2.0HBaseCon
 
opentsdb in a real enviroment
opentsdb in a real enviromentopentsdb in a real enviroment
opentsdb in a real enviromentChen Robert
 
OpenTSDB for monitoring @ Criteo
OpenTSDB for monitoring @ CriteoOpenTSDB for monitoring @ Criteo
OpenTSDB for monitoring @ CriteoNathaniel Braun
 
Building a Fast, Resilient Time Series Store with Cassandra (Alex Petrov, Dat...
Building a Fast, Resilient Time Series Store with Cassandra (Alex Petrov, Dat...Building a Fast, Resilient Time Series Store with Cassandra (Alex Petrov, Dat...
Building a Fast, Resilient Time Series Store with Cassandra (Alex Petrov, Dat...DataStax
 
Update on OpenTSDB and AsyncHBase
Update on OpenTSDB and AsyncHBase Update on OpenTSDB and AsyncHBase
Update on OpenTSDB and AsyncHBase HBaseCon
 
Time Series Data in a Time Series World
Time Series Data in a Time Series WorldTime Series Data in a Time Series World
Time Series Data in a Time Series WorldMapR Technologies
 
OpenTSDB: HBaseCon2017
OpenTSDB: HBaseCon2017OpenTSDB: HBaseCon2017
OpenTSDB: HBaseCon2017HBaseCon
 
Stabilising the jenga tower
Stabilising the jenga towerStabilising the jenga tower
Stabilising the jenga towerGordon Chung
 
Taking Your Database Beyond the Border of a Single Kubernetes Cluster
Taking Your Database Beyond the Border of a Single Kubernetes ClusterTaking Your Database Beyond the Border of a Single Kubernetes Cluster
Taking Your Database Beyond the Border of a Single Kubernetes ClusterChristopher Bradford
 
Mongo db multidc_webinar
Mongo db multidc_webinarMongo db multidc_webinar
Mongo db multidc_webinarMongoDB
 
Cassandra Backups and Restorations Using Ansible (Joshua Wickman, Knewton) | ...
Cassandra Backups and Restorations Using Ansible (Joshua Wickman, Knewton) | ...Cassandra Backups and Restorations Using Ansible (Joshua Wickman, Knewton) | ...
Cassandra Backups and Restorations Using Ansible (Joshua Wickman, Knewton) | ...DataStax
 
openTSDB - Metrics for a distributed world
openTSDB - Metrics for a distributed worldopenTSDB - Metrics for a distributed world
openTSDB - Metrics for a distributed worldOliver Hankeln
 
Technology Updates of PG-Strom at Aug-2014 (PGUnconf@Tokyo)
Technology Updates of PG-Strom at Aug-2014 (PGUnconf@Tokyo)Technology Updates of PG-Strom at Aug-2014 (PGUnconf@Tokyo)
Technology Updates of PG-Strom at Aug-2014 (PGUnconf@Tokyo)Kohei KaiGai
 
Counters At Scale - A Cautionary Tale
Counters At Scale - A Cautionary TaleCounters At Scale - A Cautionary Tale
Counters At Scale - A Cautionary TaleEric Lubow
 
Managing your Black Friday Logs
Managing your Black Friday LogsManaging your Black Friday Logs
Managing your Black Friday LogsJ On The Beach
 
1404 app dev series - session 8 - monitoring & performance tuning
1404   app dev series - session 8 - monitoring & performance tuning1404   app dev series - session 8 - monitoring & performance tuning
1404 app dev series - session 8 - monitoring & performance tuningMongoDB
 
"Metrics: Where and How", Vsevolod Polyakov
"Metrics: Where and How", Vsevolod Polyakov"Metrics: Where and How", Vsevolod Polyakov
"Metrics: Where and How", Vsevolod PolyakovYulia Shcherbachova
 
"Работа с утечками в V8", Роман Кривцов, MoscowJS 19
"Работа с утечками в V8", Роман Кривцов, MoscowJS 19"Работа с утечками в V8", Роман Кривцов, MoscowJS 19
"Работа с утечками в V8", Роман Кривцов, MoscowJS 19MoscowJS
 

What's hot (20)

HBaseCon 2013: OpenTSDB at Box
HBaseCon 2013: OpenTSDB at BoxHBaseCon 2013: OpenTSDB at Box
HBaseCon 2013: OpenTSDB at Box
 
Monitoring MySQL with OpenTSDB
Monitoring MySQL with OpenTSDBMonitoring MySQL with OpenTSDB
Monitoring MySQL with OpenTSDB
 
OpenTSDB 2.0
OpenTSDB 2.0OpenTSDB 2.0
OpenTSDB 2.0
 
opentsdb in a real enviroment
opentsdb in a real enviromentopentsdb in a real enviroment
opentsdb in a real enviroment
 
OpenTSDB for monitoring @ Criteo
OpenTSDB for monitoring @ CriteoOpenTSDB for monitoring @ Criteo
OpenTSDB for monitoring @ Criteo
 
Building a Fast, Resilient Time Series Store with Cassandra (Alex Petrov, Dat...
Building a Fast, Resilient Time Series Store with Cassandra (Alex Petrov, Dat...Building a Fast, Resilient Time Series Store with Cassandra (Alex Petrov, Dat...
Building a Fast, Resilient Time Series Store with Cassandra (Alex Petrov, Dat...
 
Update on OpenTSDB and AsyncHBase
Update on OpenTSDB and AsyncHBase Update on OpenTSDB and AsyncHBase
Update on OpenTSDB and AsyncHBase
 
Time Series Data in a Time Series World
Time Series Data in a Time Series WorldTime Series Data in a Time Series World
Time Series Data in a Time Series World
 
OpenTSDB: HBaseCon2017
OpenTSDB: HBaseCon2017OpenTSDB: HBaseCon2017
OpenTSDB: HBaseCon2017
 
Stabilising the jenga tower
Stabilising the jenga towerStabilising the jenga tower
Stabilising the jenga tower
 
Taking Your Database Beyond the Border of a Single Kubernetes Cluster
Taking Your Database Beyond the Border of a Single Kubernetes ClusterTaking Your Database Beyond the Border of a Single Kubernetes Cluster
Taking Your Database Beyond the Border of a Single Kubernetes Cluster
 
Mongo db multidc_webinar
Mongo db multidc_webinarMongo db multidc_webinar
Mongo db multidc_webinar
 
Cassandra Backups and Restorations Using Ansible (Joshua Wickman, Knewton) | ...
Cassandra Backups and Restorations Using Ansible (Joshua Wickman, Knewton) | ...Cassandra Backups and Restorations Using Ansible (Joshua Wickman, Knewton) | ...
Cassandra Backups and Restorations Using Ansible (Joshua Wickman, Knewton) | ...
 
openTSDB - Metrics for a distributed world
openTSDB - Metrics for a distributed worldopenTSDB - Metrics for a distributed world
openTSDB - Metrics for a distributed world
 
Technology Updates of PG-Strom at Aug-2014 (PGUnconf@Tokyo)
Technology Updates of PG-Strom at Aug-2014 (PGUnconf@Tokyo)Technology Updates of PG-Strom at Aug-2014 (PGUnconf@Tokyo)
Technology Updates of PG-Strom at Aug-2014 (PGUnconf@Tokyo)
 
Counters At Scale - A Cautionary Tale
Counters At Scale - A Cautionary TaleCounters At Scale - A Cautionary Tale
Counters At Scale - A Cautionary Tale
 
Managing your Black Friday Logs
Managing your Black Friday LogsManaging your Black Friday Logs
Managing your Black Friday Logs
 
1404 app dev series - session 8 - monitoring & performance tuning
1404   app dev series - session 8 - monitoring & performance tuning1404   app dev series - session 8 - monitoring & performance tuning
1404 app dev series - session 8 - monitoring & performance tuning
 
"Metrics: Where and How", Vsevolod Polyakov
"Metrics: Where and How", Vsevolod Polyakov"Metrics: Where and How", Vsevolod Polyakov
"Metrics: Where and How", Vsevolod Polyakov
 
"Работа с утечками в V8", Роман Кривцов, MoscowJS 19
"Работа с утечками в V8", Роман Кривцов, MoscowJS 19"Работа с утечками в V8", Роман Кривцов, MoscowJS 19
"Работа с утечками в V8", Роман Кривцов, MoscowJS 19
 

Viewers also liked

Ceilometer to Gnocchi
Ceilometer to GnocchiCeilometer to Gnocchi
Ceilometer to GnocchiGordon Chung
 
The Gnocchi Experiment
The Gnocchi ExperimentThe Gnocchi Experiment
The Gnocchi ExperimentGordon Chung
 
Stabilizing the Jenga tower: Scaling out Ceilometer
Stabilizing the Jenga tower: Scaling out CeilometerStabilizing the Jenga tower: Scaling out Ceilometer
Stabilizing the Jenga tower: Scaling out CeilometerPradeep Kilambi
 
The n00bs guide to ovs dpdk
The n00bs guide to ovs dpdkThe n00bs guide to ovs dpdk
The n00bs guide to ovs dpdkmarkdgray
 
OpenStackSummitTokyo - CloudKitty an Open Source rating and chargeback compon...
OpenStackSummitTokyo - CloudKitty an Open Source rating and chargeback compon...OpenStackSummitTokyo - CloudKitty an Open Source rating and chargeback compon...
OpenStackSummitTokyo - CloudKitty an Open Source rating and chargeback compon...Objectif Libre
 
Ovs perf
Ovs perfOvs perf
Ovs perfMadhu c
 
HKG15-204: OpenStack: 3rd party testing and performance benchmarking
HKG15-204: OpenStack: 3rd party testing and performance benchmarkingHKG15-204: OpenStack: 3rd party testing and performance benchmarking
HKG15-204: OpenStack: 3rd party testing and performance benchmarkingLinaro
 
OVS and DPDK - T.F. Herbert, K. Traynor, M. Gray
OVS and DPDK - T.F. Herbert, K. Traynor, M. GrayOVS and DPDK - T.F. Herbert, K. Traynor, M. Gray
OVS and DPDK - T.F. Herbert, K. Traynor, M. Grayharryvanhaaren
 
Introduction to DPDK
Introduction to DPDKIntroduction to DPDK
Introduction to DPDKKernel TLV
 
Devconf2017 - Can VMs networking benefit from DPDK
Devconf2017 - Can VMs networking benefit from DPDKDevconf2017 - Can VMs networking benefit from DPDK
Devconf2017 - Can VMs networking benefit from DPDKMaxime Coquelin
 

Viewers also liked (12)

Ceilometer to Gnocchi
Ceilometer to GnocchiCeilometer to Gnocchi
Ceilometer to Gnocchi
 
The Gnocchi Experiment
The Gnocchi ExperimentThe Gnocchi Experiment
The Gnocchi Experiment
 
Stabilizing the Jenga tower: Scaling out Ceilometer
Stabilizing the Jenga tower: Scaling out CeilometerStabilizing the Jenga tower: Scaling out Ceilometer
Stabilizing the Jenga tower: Scaling out Ceilometer
 
The n00bs guide to ovs dpdk
The n00bs guide to ovs dpdkThe n00bs guide to ovs dpdk
The n00bs guide to ovs dpdk
 
Ceilometer苦労話
Ceilometer苦労話Ceilometer苦労話
Ceilometer苦労話
 
OpenStackSummitTokyo - CloudKitty an Open Source rating and chargeback compon...
OpenStackSummitTokyo - CloudKitty an Open Source rating and chargeback compon...OpenStackSummitTokyo - CloudKitty an Open Source rating and chargeback compon...
OpenStackSummitTokyo - CloudKitty an Open Source rating and chargeback compon...
 
Ovs perf
Ovs perfOvs perf
Ovs perf
 
HKG15-204: OpenStack: 3rd party testing and performance benchmarking
HKG15-204: OpenStack: 3rd party testing and performance benchmarkingHKG15-204: OpenStack: 3rd party testing and performance benchmarking
HKG15-204: OpenStack: 3rd party testing and performance benchmarking
 
OVS and DPDK - T.F. Herbert, K. Traynor, M. Gray
OVS and DPDK - T.F. Herbert, K. Traynor, M. GrayOVS and DPDK - T.F. Herbert, K. Traynor, M. Gray
OVS and DPDK - T.F. Herbert, K. Traynor, M. Gray
 
Introduction to DPDK
Introduction to DPDKIntroduction to DPDK
Introduction to DPDK
 
Devconf2017 - Can VMs networking benefit from DPDK
Devconf2017 - Can VMs networking benefit from DPDKDevconf2017 - Can VMs networking benefit from DPDK
Devconf2017 - Can VMs networking benefit from DPDK
 
Understanding DPDK
Understanding DPDKUnderstanding DPDK
Understanding DPDK
 

Similar to Gnocchi v3

Google File System
Google File SystemGoogle File System
Google File SystemDreamJobs1
 
Scaling Pattern and Sequence Queries in Complex Event Processing
Scaling Pattern and Sequence Queries in Complex Event ProcessingScaling Pattern and Sequence Queries in Complex Event Processing
Scaling Pattern and Sequence Queries in Complex Event ProcessingMohanadarshan Vivekanandalingam
 
High Performance & High Throughput Computing - EUDAT Summer School (Giuseppe ...
High Performance & High Throughput Computing - EUDAT Summer School (Giuseppe ...High Performance & High Throughput Computing - EUDAT Summer School (Giuseppe ...
High Performance & High Throughput Computing - EUDAT Summer School (Giuseppe ...EUDAT
 
Tales from production with postgreSQL at scale
Tales from production with postgreSQL at scaleTales from production with postgreSQL at scale
Tales from production with postgreSQL at scaleSoumya Ranjan Subudhi
 
Virtual Flink Forward 2020: Autoscaling Flink at Netflix - Timothy Farkas
Virtual Flink Forward 2020: Autoscaling Flink at Netflix - Timothy FarkasVirtual Flink Forward 2020: Autoscaling Flink at Netflix - Timothy Farkas
Virtual Flink Forward 2020: Autoscaling Flink at Netflix - Timothy FarkasFlink Forward
 
54665962-Nav-Cluster-Computing.pptx
54665962-Nav-Cluster-Computing.pptx54665962-Nav-Cluster-Computing.pptx
54665962-Nav-Cluster-Computing.pptxYashAhire28
 
Cassandra in Operation
Cassandra in OperationCassandra in Operation
Cassandra in Operationniallmilton
 
MapReduce:Simplified Data Processing on Large Cluster Presented by Areej Qas...
MapReduce:Simplified Data Processing on Large Cluster  Presented by Areej Qas...MapReduce:Simplified Data Processing on Large Cluster  Presented by Areej Qas...
MapReduce:Simplified Data Processing on Large Cluster Presented by Areej Qas...areej qasrawi
 
BEAM (Erlang VM) as a Soft Real-time Platform
BEAM (Erlang VM) as a Soft Real-time PlatformBEAM (Erlang VM) as a Soft Real-time Platform
BEAM (Erlang VM) as a Soft Real-time PlatformHamidreza Soleimani
 
Trivento summercamp masterclass 9/9/2016
Trivento summercamp masterclass 9/9/2016Trivento summercamp masterclass 9/9/2016
Trivento summercamp masterclass 9/9/2016Stavros Kontopoulos
 
Salesforce enabling real time scenarios at scale using kafka
Salesforce enabling real time scenarios at scale using kafkaSalesforce enabling real time scenarios at scale using kafka
Salesforce enabling real time scenarios at scale using kafkaThomas Alex
 
MongoDB for Time Series Data
MongoDB for Time Series DataMongoDB for Time Series Data
MongoDB for Time Series DataMongoDB
 
Big Data Lessons from the Cloud
Big Data Lessons from the CloudBig Data Lessons from the Cloud
Big Data Lessons from the CloudMapR Technologies
 
Update on OpenTSDB and AsyncHBase
Update on OpenTSDB and AsyncHBase Update on OpenTSDB and AsyncHBase
Update on OpenTSDB and AsyncHBase HBaseCon
 
Webinar slides: An Introduction to Performance Monitoring for PostgreSQL
Webinar slides: An Introduction to Performance Monitoring for PostgreSQLWebinar slides: An Introduction to Performance Monitoring for PostgreSQL
Webinar slides: An Introduction to Performance Monitoring for PostgreSQLSeveralnines
 

Similar to Gnocchi v3 (20)

Google File System
Google File SystemGoogle File System
Google File System
 
Scaling Pattern and Sequence Queries in Complex Event Processing
Scaling Pattern and Sequence Queries in Complex Event ProcessingScaling Pattern and Sequence Queries in Complex Event Processing
Scaling Pattern and Sequence Queries in Complex Event Processing
 
High Performance & High Throughput Computing - EUDAT Summer School (Giuseppe ...
High Performance & High Throughput Computing - EUDAT Summer School (Giuseppe ...High Performance & High Throughput Computing - EUDAT Summer School (Giuseppe ...
High Performance & High Throughput Computing - EUDAT Summer School (Giuseppe ...
 
Interpreting the Data:Parallel Analysis with Sawzall
Interpreting the Data:Parallel Analysis with SawzallInterpreting the Data:Parallel Analysis with Sawzall
Interpreting the Data:Parallel Analysis with Sawzall
 
Tales from production with postgreSQL at scale
Tales from production with postgreSQL at scaleTales from production with postgreSQL at scale
Tales from production with postgreSQL at scale
 
Virtual Flink Forward 2020: Autoscaling Flink at Netflix - Timothy Farkas
Virtual Flink Forward 2020: Autoscaling Flink at Netflix - Timothy FarkasVirtual Flink Forward 2020: Autoscaling Flink at Netflix - Timothy Farkas
Virtual Flink Forward 2020: Autoscaling Flink at Netflix - Timothy Farkas
 
54665962-Nav-Cluster-Computing.pptx
54665962-Nav-Cluster-Computing.pptx54665962-Nav-Cluster-Computing.pptx
54665962-Nav-Cluster-Computing.pptx
 
The Google file system
The Google file systemThe Google file system
The Google file system
 
Cassandra in Operation
Cassandra in OperationCassandra in Operation
Cassandra in Operation
 
MapReduce:Simplified Data Processing on Large Cluster Presented by Areej Qas...
MapReduce:Simplified Data Processing on Large Cluster  Presented by Areej Qas...MapReduce:Simplified Data Processing on Large Cluster  Presented by Areej Qas...
MapReduce:Simplified Data Processing on Large Cluster Presented by Areej Qas...
 
FrackingPaper
FrackingPaperFrackingPaper
FrackingPaper
 
Ssbse10.ppt
Ssbse10.pptSsbse10.ppt
Ssbse10.ppt
 
BEAM (Erlang VM) as a Soft Real-time Platform
BEAM (Erlang VM) as a Soft Real-time PlatformBEAM (Erlang VM) as a Soft Real-time Platform
BEAM (Erlang VM) as a Soft Real-time Platform
 
Trivento summercamp masterclass 9/9/2016
Trivento summercamp masterclass 9/9/2016Trivento summercamp masterclass 9/9/2016
Trivento summercamp masterclass 9/9/2016
 
Shikha fdp 62_14july2017
Shikha fdp 62_14july2017Shikha fdp 62_14july2017
Shikha fdp 62_14july2017
 
Salesforce enabling real time scenarios at scale using kafka
Salesforce enabling real time scenarios at scale using kafkaSalesforce enabling real time scenarios at scale using kafka
Salesforce enabling real time scenarios at scale using kafka
 
MongoDB for Time Series Data
MongoDB for Time Series DataMongoDB for Time Series Data
MongoDB for Time Series Data
 
Big Data Lessons from the Cloud
Big Data Lessons from the CloudBig Data Lessons from the Cloud
Big Data Lessons from the Cloud
 
Update on OpenTSDB and AsyncHBase
Update on OpenTSDB and AsyncHBase Update on OpenTSDB and AsyncHBase
Update on OpenTSDB and AsyncHBase
 
Webinar slides: An Introduction to Performance Monitoring for PostgreSQL
Webinar slides: An Introduction to Performance Monitoring for PostgreSQLWebinar slides: An Introduction to Performance Monitoring for PostgreSQL
Webinar slides: An Introduction to Performance Monitoring for PostgreSQL
 

Recently uploaded

Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 

Recently uploaded (20)

Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 

Gnocchi v3

  • 2. Optimisation opportunities ▹ Improve coordination ▸ A lot of contention for same job among workers resulting in wasted operations ▹ Performance degradation in large series ▸ Larger file == slower read ▸ Larger file == slower write
  • 4. metricdmetricd worker worker worker worker worker worker Current distribution ▹ Agents unaware of each other ▹ Workers unaware of each other ▹ Each worker queries backlog, grabs a chunk starting from offset based on id + Workers are completely dumb - Workers are completely dumb
  • 5. metricd scheduler worker worker worker metricd scheduler worker worker worker Proposed distribution ▹ Agents aware of each other ▹ Workers unaware of each other ▹ A central process queries backlog and pipes jobs to common queue for workers ▹ Each agent grabs a chunk starting from offset based on something. + More coordination, less contentions + One query to control them all - More management
  • 6. Testing methodology (small series) ▹ POST 1000 generic resources spread across 20 workers, 20 metrics each ▸ every 5 minutes ▸ 60 points/metric per POST ▸ 1.2 million points every 5 min ▸ 3 granularities x 8 aggregates ▸ ~500 points in most granular series ▹ 3 metricd services, 24 workers each
  • 7. Processing time ~4% to ~23% improvement.
  • 9. v2.x {‘values’:{<timestamp>: float, <timestamp>: float, ... <timestamp>: float}} New serialisation format v3.x Uncompressed: Delimiter+float+delimiter+float+ ...+delimiter+float Compressed: Time+float+time_delta+float+ ...+time_delta+float
  • 10. Testing methodology (small series) ▹ POST 1000 generic resources spread across 20 workers, 20 metrics each ▸ every 5 minutes ▸ 60 points/metric per POST ▸ 1.2 million points every 5 min ▸ 3 granularities x 8 aggregates ▸ ~500 points in most granular series ▹ 3 metricd services, 24 workers each
  • 11. Amount of time required to compute 1.2M points into 20K metrics of 24 different aggregations.
  • 12. Testing methodology (medium series) ▹ POST 500 generic resources spread across 20 workers, 20 metrics each ▸ every 5 minutes ▸ 720 points/metric per POST ▸ 7.2 million points every 5 min ▸ 3 granularities x 8 aggregates ▸ ~7000 points in most granular series ▹ 3 metricd services, 24 workers each
  • 13. Time to compute 720 data points into 24 different aggregates and store data
  • 14. Total metrics processed. 10K metrics sent periodically. A higher slope represents faster processing rate
  • 15. Gnocchi v2.1.4 vs Gnocchi v3.0 Old vs New
  • 16. Release notes v3 ▹ New storage format for new, back window and aggregated series (msgpacks vs struct serialisation) ▹ Storage compression ▹ No-read append writes (Ceph only) ▹ Dynamic resource configuration ▹ Coordinated task scheduling ▹ Performance related changes to aggregation logic ▹ Grafana 3.0 support
  • 17. Computation time per metric Amount of time required to compute new measures into 24 different aggregates. ~60% less processing time at lower unprocessed sizes ~40% less processing time at higher unprocessed sizes
  • 18. Write throughput Data generated using benchmark tool in client. 32 single-threaded api server processes, 4x12threads client. Gnocchi writes to disk but will be enhanced to write to memory (for Ceph)
  • 20. POST per second The number of metrics that can be pushed to 32 API workers.
  • 21. Response time. Majority of time taken by client side processing and formatting.
  • 22. Disk size. Live datapoints are 18B in v2.1 and at worst 8B (9B in Ceph) in v3. Compression is applied which additionally lowers size. v2.1 datapoints were serialized using msgpacks. In v3, the storage format is optimised for space efficiency and compression.
  • 23. Testing methodology (short series) ▹ POST 1000 generic resources spread across 20 workers, 20 metrics each ▸ every 5 minutes ▸ 60 points/metric per POST ▸ 1.2 million points every 5 min ▸ 3 granularities x 8 aggregates ▸ ~500 points in most granular series ▹ 3 metricd services, 24 workers each
  • 24. Amount of time required to process 1.2M points across 20K metrics into 24 different aggregates per cycle.
  • 25. Number of metrics processed per 5s. No degradation between batches and more consistent processing rates V2.1.4 averages ~6 metrics (144 aggregates) calculated every 5 seconds per worker. V3.0 averages ~10.88 metrics (261 aggregates) calculated every 5 seconds per worker.
  • 26. Amount of Ceph IOPs required to process 1.2M points across 20K metrics into 24 different aggregates per cycle. Less operations/s represents lower hardware requirements
  • 27. Number of times a worker attempts to handle a metric that has already been handled. Less contentions represents better job scheduling.
  • 28. Time required to POST 1.2M points across 20K metrics under load. 20 workers making 50 POSTs of 20 metrics, 60 points per metric.
  • 29. Testing methodology (medium series) ▹ POST 500 generic resources spread across 20 workers, 20 metrics each ▸ every 5 minutes ▸ 720 points/metric per POST ▸ 7.2 million points every 5 min ▸ 3 granularities x 8 aggregates ▸ ~5760 points in most granular series ▹ 3 metricd services, 24 workers each
  • 30. Amount of time required to process 7.2M points across 10K metrics into 24 different aggregates per cycle.
  • 32. Threading enabled. Python threading only works when I/O heavy (see: GIL). CPU usage has been minimised and now threading works 54 metricd with 8 threads has roughly same performance as 72 single-threaded metricd.
  • 33. Effect of number of aggregates on processing time. Less aggregates/metric, less time to process. More aggregates/metric, more time. Note: spike at batch 5 is due to compression logic that is triggered by dataset.
  • 34. Effect of series length on datapoint size. Long, medium, short series contain 83K, 1.4K, and 400 points respectively. Shorter series are more likely to have to-be-deleted stale data as well as less compression opportunities (latter applicable only to Ceph).
  • 35. Effect of series length on datapoint size. Shorter series tend to have higher granularity and thus larger back window requirements.
  • 37. Potential future work ▹ Dynamic re-aggregation ▹ Python3.5 AsyncIO threading support ▹ Rolling upgrades ▹ Ceph asynchronous writes ▹ In-memory storage to improve write performance
  • 40. Hardware configuration ▹ 4 physical hosts ▸ CentOS 7.2.1511 ▸ 24 physical cores (hyperthreaded), 256 GB memory ▸ 25 - 1TB disks, 10K RPM ▹ 1Gb network
  • 41. Host configuration ▹ Host1 ▸ OpenStack Controller Node ▸ Ceph Monitoring service ▹ Host2 ▸ OpenStack Compute Node (idle) ▸ Ceph OSD node (10 OSDs + SSD Journal) ▹ Host3 ▸ Ceph OSD node (10 OSDs + SSD Journal) ▸ Gnocchi API (32 workers) ▹ Host4 ▸ OpenStack Compute Node (~idle) ▸ Ceph OSD node (10 OSDs + SSD Journal) ▸ PostgreSQL
  • 42. Services ▹ PostgreSQL 9.2.15 (single node) ▸ Default everything, except 300 connections vs 100(default) ▹ Ceph 10.2.2 (4 nodes, 1 monitoring, 3 OSD) ▸ 30 OSDs (1 TB disk), Journals share SSD, 2 replica, 2048 placement groups ▹ Gnocchi MetricD ▸ 3 nodes, shared with Ceph OSDs ▸ 24 workers per service