guv
Version:
Grid Utilization Virgilante
158 lines (155 loc) • 3.06 kB
YAML
-
name: 'no messages'
expect: 'should go to minimum'
result: 3
role: 'def'
config: |
'*': {min: 3}
def: {}
state:
messages: 0
-
name: 'huge number of messages'
expect: 'should go to maximum'
result: 40
role: 'def'
config: |
'*': {max: 40}
def: {}
state:
messages: 10000
-
name: 'many messages with role-specific processing/deadline'
expect: 'should go to maximum'
result: 5
config: |
'*': {min: 0}
my: {p:60, deadline: 240}
role: 'my'
state:
messages: 1000
# history based
-
name: 'history of high load, then one low load'
expect: 'should not scale down'
result: null
config: |
'*': {min: 0, max: 4}
my: {p:60, deadline: 240}
role: 'my'
current: 4
state:
messages: 10
history: [ 4, 4, 0 ]
-
name: 'history of high load, then many low load'
expect: 'should scale down'
result: 1
config: |
'*': {min: 0, max: 4}
my: {p:60, deadline: 240}
role: 'my'
current: 4
state:
messages: 10
history: [ 0, 0, 0 ]
-
name: 'history of varying loads, then one low'
expect: 'should not scale down'
result: null
config: |
'*': {min: 0, max: 4}
my: {p:60, deadline: 240}
role: 'my'
current: 4
state:
messages: 10
history: [ 4, 1, 4, 2 ]
-
name: 'history of medium loads, then one medium'
expect: 'should scale down a bit'
result: 2
config: |
'*': {min: 0, max: 4}
my: {p:60, deadline: 240}
role: 'my'
current: 3
state:
messages: 40
history: [ 1, 2, 1 ]
-
name: 'history of decreasing loads, then nothing'
expect: 'should scale down a bit'
config: |
'*': {min: 0, max: 4}
my: {p:60, deadline: 240}
role: 'my'
current: 12
state:
messages: 0
history: [ 10, 9, 8 ]
result: 10
-
name: 'impossible config'
expect: 'should scale up to max'
result: 4
config: |
'*': {min: 0, max: 4}
my: { processing: 60, deadline: 61}
role: 'my'
current: 0
state:
messages: 40
history: [ 1, 2, 1 ]
-
name: 'unrealistic config'
expect: 'should scale up to max'
result: 4
config: |
'*': {min: 0, max: 4}
my: { processing: 25, stddev: 12, deadline: 50}
role: 'my'
current: 0
state:
messages: 40
history: [ 1, 2, 1 ]
-
name: 'medium load, concurrency = 1'
expect: 'should start some workers'
result: 11
role: 'def'
config: |
'*': {max: 40}
def: { concurrency: 1 }
state:
messages: 40
-
name: 'medium load, concurrency = 3'
expect: 'should start ca 1/3 workers of concurrency=1'
result: 4
role: 'def'
config: |
'*': {max: 40}
def: { concurrency: 3 }
state:
messages: 40
-
name: 'low load, concurrency = 1'
expect: 'should start few workers'
result: 1
role: 'def'
config: |
'*': {max: 40, deadline: 90}
def: { concurrency: 1 }
state:
messages: 5
-
name: 'low load, concurrency = 3'
expect: 'should start same workers as concurrency=1'
result: 1
role: 'def'
config: |
'*': {max: 40, deadline: 90}
def: { concurrency: 3 }
state:
messages: 5