I’m trying to perform some stress test, and one part is to schedule big number of workflows.
Right now, in (3xCassandra + 3xTemporal + workers) configuration I was able to reach ~80 rps per node for client.SignalWithStartWorkflow() with Go SDK.
So total number of workflows created is below 240 per second.
All workflows are created for single task queue.
I run image temporalio/auto-setup:1.3.2 with NUM_HISTORY_SHARDS=512 env and dynamic config:
matching.numTaskqueueReadPartitions:
- value: 10
constraints: {}
matching.numTaskqueueWritePartitions:
- value: 10
constraints: {}
Cassandra cluster doesn’t seems to be overloaded. Workers are capable to deal with load.
Can I somehow improve the rate number per individual Temporal server?
> docker exec -ti temporal tctl --ad 192.168.5.7:7233 taskqueue list-partition --tq EV_SENDER_TASK_QUEUE
WORKFLOWTASKQUEUEPARTITION | HOST
EV_SENDER_TASK_QUEUE | 192.168.5.9:7235
/_sys/EV_SENDER_TASK_QUEUE/1 | 192.168.5.9:7235
/_sys/EV_SENDER_TASK_QUEUE/2 | 192.168.5.8:7235
/_sys/EV_SENDER_TASK_QUEUE/3 | 192.168.5.7:7235
/_sys/EV_SENDER_TASK_QUEUE/4 | 192.168.5.8:7235
/_sys/EV_SENDER_TASK_QUEUE/5 | 192.168.5.8:7235
/_sys/EV_SENDER_TASK_QUEUE/6 | 192.168.5.9:7235
/_sys/EV_SENDER_TASK_QUEUE/7 | 192.168.5.9:7235
/_sys/EV_SENDER_TASK_QUEUE/8 | 192.168.5.7:7235
/_sys/EV_SENDER_TASK_QUEUE/9 | 192.168.5.8:7235
ACTIVITYTASKQUEUEPARTITION | HOST
EV_SENDER_TASK_QUEUE | 192.168.5.9:7235
/_sys/EV_SENDER_TASK_QUEUE/1 | 192.168.5.9:7235
/_sys/EV_SENDER_TASK_QUEUE/2 | 192.168.5.8:7235
/_sys/EV_SENDER_TASK_QUEUE/3 | 192.168.5.7:7235
/_sys/EV_SENDER_TASK_QUEUE/4 | 192.168.5.8:7235
/_sys/EV_SENDER_TASK_QUEUE/5 | 192.168.5.8:7235
/_sys/EV_SENDER_TASK_QUEUE/6 | 192.168.5.9:7235
/_sys/EV_SENDER_TASK_QUEUE/7 | 192.168.5.9:7235
/_sys/EV_SENDER_TASK_QUEUE/8 | 192.168.5.7:7235
/_sys/EV_SENDER_TASK_QUEUE/9 | 192.168.5.8:7235
and
> docker exec -ti temporal tctl --ad 192.168.5.7:7233 adm tq desc --taskqueue EV_SENDER_TASK_QUEUE
READ LEVEL | ACK LEVEL | BACKLOG | LEASE START TASKID | LEASE END TASKID
34500 | 34500 | 0 | 1 | 100000
WORKFLOW POLLER IDENTITY | LAST ACCESS TIME
27472@p-10-web@ | 2020-12-02T15:34:03Z
25445@p-12-web@ | 2020-12-02T15:34:03Z
28313@p-11-web@ | 2020-12-02T15:34:03Z
25665@p-12-web@ | 2020-12-02T15:34:03Z
28203@p-11-web@ | 2020-12-02T15:34:03Z
27363@p-10-web@ | 2020-12-02T15:34:03Z
27582@p-10-web@ | 2020-12-02T15:34:03Z
25555@p-12-web@ | 2020-12-02T15:34:03Z
28093@p-11-web@ | 2020-12-02T15:34:03Z
My goal is ability to process spikes with 1000 new workflows per second.
Thanks!