Xuefeng Tan 9e8ce6b72a perf: reduce data duplication (#2050) 1 tahun lalu
..
main.go 19e4950364 test(benchmark): benchmark test for multiple rules 3 tahun lalu
pub.go c6ad75afac style: sort go imports (#1844) 1 tahun lalu
readme.md 19e4950364 test(benchmark): benchmark test for multiple rules 3 tahun lalu
ruleCreator.go 9e8ce6b72a perf: reduce data duplication (#2050) 1 tahun lalu

readme.md

Test

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.

Run the test

Recommend to set kuiper.yaml ignoreCase to false, then start eKuiper and the mqtt broker.

  1. 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 open pub.go to set up the tps.
  2. Build the test util. In this directory, run go build -o pub100 . It will produce an executable pub100.
  3. Create rules: ./pub100 create which will create the rules. In eKuiper data/sqliteKV.db can be backed up. So in the future, just restore this file to create these rules.
  4. Run ./pub100. Monitor the CPU, memory usage and the mqtt sink topic demoSink metric to measure the workload.