In this multiple rules scenario benchmark, we will create a shared stream and multiple rules on that single stream. By default, there will be 300 rules with 500 tps which means 150000 processing happen per second.
Recommend to set kuiper.yaml ignoreCase to false, then start eKuiper and the mqtt broker.
- Setting variables: open
ruleCreator.go
, modify the const variables to set up the eKuiper url, mqtt broker url and how many rules to create. Then openpub.go
to set up the tps. - Build the test util. In this directory, run
go build -o pub100 .
It will produce an executablepub100
. - Create rules:
./pub100 create
which will create the rules. In eKuiperdata/sqliteKV.db
can be backed up. So in the future, just restore this file to create these rules. - Run
./pub100
. Monitor the CPU, memory usage and the mqtt sink topicdemoSink
metric to measure the workload.