16
© 2017 Nokia 1 Mistral performance in numbers Will it blend? Andras Kovi [email protected] Denes Nemeth [email protected] 11-05-2017 Public http://tinyurl.com/osmistral Keep it open! Instant feedback to me!

Mistral performance in numbers - · PDF fileJmeter ☺ Tests Create ... /mistral/tools/docker/ build.sh start_....sh Public API Engine Exec Exec Rabbit MySQL. 15 © 2017 Nokia Quotes

Embed Size (px)

Citation preview

Page 1: Mistral performance in numbers - · PDF fileJmeter ☺ Tests Create ... /mistral/tools/docker/ build.sh start_....sh Public API Engine Exec Exec Rabbit MySQL. 15 © 2017 Nokia Quotes

© 2017 Nokia1

Mistral performance in numbersWill it blend?

• Andras Kovi [email protected]

• Denes Nemeth [email protected]

• 11-05-2017

Public

http://tinyurl.com/osmistral

Keep it open! Instant feedback to me!

Page 2: Mistral performance in numbers - · PDF fileJmeter ☺ Tests Create ... /mistral/tools/docker/ build.sh start_....sh Public API Engine Exec Exec Rabbit MySQL. 15 © 2017 Nokia Quotes

© 2017 Nokia2

http://tinyurl.com/osmistral

Instant feedback to me!

Play with us! Keep this page open during the presentation.

Public

1

Page 3: Mistral performance in numbers - · PDF fileJmeter ☺ Tests Create ... /mistral/tools/docker/ build.sh start_....sh Public API Engine Exec Exec Rabbit MySQL. 15 © 2017 Nokia Quotes

© 2017 Nokia3

Mistral

Workflow

• „orchestrated and repeatable pattern of business activity” – Wikipedia

Public

2http://tinyurl.com/osmistral

Page 4: Mistral performance in numbers - · PDF fileJmeter ☺ Tests Create ... /mistral/tools/docker/ build.sh start_....sh Public API Engine Exec Exec Rabbit MySQL. 15 © 2017 Nokia Quotes

© 2017 Nokia4

Measurement and PredictionsNumbers

• Memory

• CPU

• IO

• KPIs

Public

3

Page 5: Mistral performance in numbers - · PDF fileJmeter ☺ Tests Create ... /mistral/tools/docker/ build.sh start_....sh Public API Engine Exec Exec Rabbit MySQL. 15 © 2017 Nokia Quotes

© 2017 Nokia5

Performance, Reliability, ScalabilityNumbers

Number of tasks

Types of tasks

Sleep

CPU intensive

External communication

Data processing (filter, collect data from input)

Data flow between tasks

No data

Small documents

Large documents

Increasing size documents

Task dependencies

#of join

#of fork

Loops

Recursion

Type

spider web (entagled, radial (directed inward, directed outward))

Tree

Sequence length

Short sequence

Long sequence

Parallelism

Tasks

Sequential

Parallel

Workflows

Many at once

Few at once

Workflows

Flat

Hierarchical

Trigger types

on-demand

cron

Size of database

#API requests

create/delete

read

Public

Page 6: Mistral performance in numbers - · PDF fileJmeter ☺ Tests Create ... /mistral/tools/docker/ build.sh start_....sh Public API Engine Exec Exec Rabbit MySQL. 15 © 2017 Nokia Quotes

© 2017 Nokia6

ResponsibilitiesMistral services

• API (any number)

• Engine (any number )

• Executors (any number)

• Transport - RabbitMQ

• DB - MySQL

Public

API API API API

Engine Engine

Exec Exec Exec

Ra

bb

it

DB

Page 7: Mistral performance in numbers - · PDF fileJmeter ☺ Tests Create ... /mistral/tools/docker/ build.sh start_....sh Public API Engine Exec Exec Rabbit MySQL. 15 © 2017 Nokia Quotes

© 2017 Nokia7

Mistral services -API

Functions

REST Model query

Work initiation

Stats

Memory per instance (~70MB initial)

Load distribution (socket accept based)

1. fork()

2. accept()

Jmeter ☺

Tests

Create executions

List all

List limited

API traversal…

Responsiveness

Load distribution

Forked API processes

API traversal

Flat workflow

Sub-sub-sub

Public

4http://tinyurl.com/osmistral

Page 8: Mistral performance in numbers - · PDF fileJmeter ☺ Tests Create ... /mistral/tools/docker/ build.sh start_....sh Public API Engine Exec Exec Rabbit MySQL. 15 © 2017 Nokia Quotes

© 2017 Nokia8

Workflow CRUDResponsiveness

Public

#workflows

Create List limit=10

100 6.5/sec 30/sec

1000 7/sec 3/sec 50/sec

7000 7/sec 3/sec 913Kb 34/sec

Page 9: Mistral performance in numbers - · PDF fileJmeter ☺ Tests Create ... /mistral/tools/docker/ build.sh start_....sh Public API Engine Exec Exec Rabbit MySQL. 15 © 2017 Nokia Quotes

© 2017 Nokia9

Mistral services - Engine

Functions

Workflow processing

Data flow management

Input-output calculation

YAQL <% $.vm_ip %

JINJA {{ _.data }}

Data size

Move back actions to executor?

keep result ?

Redundant executors

Ongoing stability improvements

Public

Page 10: Mistral performance in numbers - · PDF fileJmeter ☺ Tests Create ... /mistral/tools/docker/ build.sh start_....sh Public API Engine Exec Exec Rabbit MySQL. 15 © 2017 Nokia Quotes

© 2017 Nokia10

Mistral services - Executor

Actions run here

Operation mode

RPC request

Work

Respond

Public

5

Page 11: Mistral performance in numbers - · PDF fileJmeter ☺ Tests Create ... /mistral/tools/docker/ build.sh start_....sh Public API Engine Exec Exec Rabbit MySQL. 15 © 2017 Nokia Quotes

© 2017 Nokia11

Long test

1 week

50 cron triggers (Mistral) (H/60 * * * *)

50 runs per minute

3000 runs per hour

72000 per day

~500000 runs total

Max executions policy

# < 700

Age < 1 day

Run

Create/Start dedicated container

Touch files

Cleanup files

Stop container

Public

Page 12: Mistral performance in numbers - · PDF fileJmeter ☺ Tests Create ... /mistral/tools/docker/ build.sh start_....sh Public API Engine Exec Exec Rabbit MySQL. 15 © 2017 Nokia Quotes

© 2017 Nokia12

Long test - results

Public

Diagrams

Page 13: Mistral performance in numbers - · PDF fileJmeter ☺ Tests Create ... /mistral/tools/docker/ build.sh start_....sh Public API Engine Exec Exec Rabbit MySQL. 15 © 2017 Nokia Quotes

© 2017 Nokia13

War stories

Size

Rally job

Expressions

YAQL -> Jinja

Big data

execution_field_size_limit_kb

mysqld -> max_allowed_packet value

Database trashing

execution_expiration_policy

max_executions

Public

Page 14: Mistral performance in numbers - · PDF fileJmeter ☺ Tests Create ... /mistral/tools/docker/ build.sh start_....sh Public API Engine Exec Exec Rabbit MySQL. 15 © 2017 Nokia Quotes

© 2017 Nokia14

Demo timeEvaluation setup

…/mistral/tools/docker/

build.sh

start_....sh

Public

API Engine Exec Exec

Rabbit MySQL

Page 15: Mistral performance in numbers - · PDF fileJmeter ☺ Tests Create ... /mistral/tools/docker/ build.sh start_....sh Public API Engine Exec Exec Rabbit MySQL. 15 © 2017 Nokia Quotes

© 2017 Nokia15

Quotes from the Summit

„Can I use Mistral to implement a VM expiration policy?”

„Absolutely”

„Cron jobs are one of the killer features we still don’t use in TripleO”

„Go ahead and do so”

„Masakari could call Mistral workflows…” - Openstack HA discussion

Public

Page 16: Mistral performance in numbers - · PDF fileJmeter ☺ Tests Create ... /mistral/tools/docker/ build.sh start_....sh Public API Engine Exec Exec Rabbit MySQL. 15 © 2017 Nokia Quotes