Questions related to performance testing

During the performance test, we found that the database resource consumption is relatively high. Are there any related configurations that can be optimized.

Environmental information:

  • The entire environment is deployed using Docker.
  • CPU: 8-core 16 threads
  • Memory: 16g
  • 2000 gateways, with one node under each gateway,each node pushes data every 10 seconds.

resource consumption

  • CPU:90%(The main reason is that the database occupies too much CPU resources)
  • Memory:3g

I think it’s because every time a node pushes data or the gateway has a heartbeat, it refreshes the ‘gateway’ and ‘device’ tables in the NS/AS database.If so, do you consider placing this frequently modified data in Redis for processing.Or what deployment suggestions are available when considering 1000k nodes.

If cluster deployment is considered, are there any relevant configuration examples

I can’t give you a direct answer, as I don’t know your internals (and versions you are using of ChirpStack), but many of the companies that I support have thousands of devices and are not experiencing performance issues.

Things you might want to look at is what is causing the high CPU usage. As well, look into your connection-pool settings in the ChirpStack configuration.

If everything is deployed within Docker, then maybe the storage can be an issue as well, in case PostgreSQL / Redis are storing the data within the Docker container? See also About storage drivers.

1 Like