You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@storm.apache.org by Marc MADAULE <ma...@thales-services.fr> on 2017/12/01 14:26:34 UTC

Preferred supervison in resource allocation?

 

Hello, 

I have the following cluster : 

Hardware:
Hosts srv01 and
srv03 have 256 Gb of RAM while srv02 and srv04 have 128 Gb of RAM. They
all have 28 cores.
Hosts srv01 and srv02 are in the same chassis while
srv03 and srv04 are in another one. 

Supervisor configuration :
Host
srv01, 1 supervisor with 1 SLOT, cpu capacity 2800 and memory capacity
100000
Host srv02, 1 supervisor with 1 SLOT, cpu capacity 2800 and
memory capacity 100000
Host srv03, 1 supervisor with 1 SLOT, cpu
capacity 2800 and memory capacity 100000
Host srv04, 1 supervisor with 4
SLOTS, cpu capacity 2800 and memory capacity 100000 

I have a test
Trident topology with the following total needs : cpu 150 and memory
1920 

I'm using Storm 1.0.3 (also tested with same results on 1.1.1)
and ResourceAwareScheduler. 

When I submit the topology with
setTopologyWorkerMaxHeapSize(512) I get the following resource
assignment : 

srv01 gets 1 worker
srv02 gets 1 worker
srv03 gets no
worker
srv04 gets 2 workers 

QUESTION 1 - I WAS EXPECTING THAT STORM
WOULD SCHEDULE ALL 4 WORKERS TO SRV04. INSTEAD STORM CHOSE A SOLUTION
THAT SEEMS SUB-OPTIMAL TO ME. COULD YOU PLEASE EXPLAIN WHY ? AND MAYBE
WAYS TO MAKE IT BETTER ? 

Now if I stop the topology, stop the cluster
and change the Supervisors configuration to allocate 4 workers on srv02
instead of srv04, then Storm schedules my topology like that : 

srv01
gets no worker
srv02 gets 4 workers
srv03 gets no worker
srv04 gets no
worker 

QUESTION 2 - I FIND IT STRANGE THAT SCHEDULING DOES NOT HAPPEN
THE SAME WAY. STORM SEEMS TO 'PREFER' SRV02. COULD YOU PLEASE EXPLAIN TO
ME WHY THIS IS HAPPENING OR MAYBE PROPOSE WAYS TO MITIGATE THIS ?


Thank you, 

Marc