Skip to Content
TroubleshootingPerformance

Performance

This page covers server-side and client-side performance tuning for Inspire.

Server Performance

Database

SymptomCauseSolution
Slow page loadsMissing indexesCheck PostgreSQL query plans; indexes are created automatically but custom queries may need tuning
High CPU on databaseToo many concurrent queriesIncrease connection pool size or add read replicas
Growing disk usageSnapshot retention too longReduce snapshot retention in DataPool settings

Edge Service

SymptomCauseSolution
Slow API responsesHigh loadScale horizontally with multiple Edge containers
Memory growthLarge tenant dataIncrease container memory limit; check for memory leaks in logs
Slow image uploadsDisk I/O bottleneckUse SSD storage; consider object storage for media

DataPool Service

SymptomCauseSolution
Data push delaysToo many concurrent streamsScale DataPool service horizontally
Redis memory fullToo many cached valuesIncrease Redis memory limit or reduce cache TTL
SignalR connection limitsToo many connected devicesAdd more DataPool instances behind load balancer

Client Performance

Display Devices

OptimisationDetails
Use appropriate resolutionDo not render 4K content on 1080p displays
Optimise imagesResize images to display size before uploading
Limit concurrent videosEach video stream uses significant bandwidth and CPU
Use components over raw elementsComponents are pre-rendered and cached efficiently
Reduce DataPool subscriptionsOnly bind to fields you actually display

Web UI

OptimisationDetails
Use a modern browserChrome or Edge latest for best performance
Close unused Designer tabsEach open Designer tab maintains a live connection
Limit canvas elementsScenes with 100+ elements may be slow to edit — consider using components

Scaling

Horizontal Scaling

Inspire services can be scaled horizontally:

ServiceScale MethodConsiderations
EdgeMultiple containers behind load balancerSession affinity required
DataPoolMultiple containers with shared RedisSignalR backplane via Redis
RendererClient-side, no scaling neededOne renderer per device

Redis Clustering

For large deployments (500+ devices), configure Redis in cluster mode:

  1. Set up a Redis cluster with 3+ nodes
  2. Update REDIS_URL to point to the cluster
  3. Restart Edge and DataPool services
  4. Verify connections in service logs

Most installations (up to 200 devices) run comfortably on a single server with default settings. Only consider scaling when you observe sustained resource pressure.

Monitoring

Use the built-in admin dashboard (Settings > System Health) to monitor:

  • CPU, memory, and disk usage per service
  • Database query performance
  • Active WebSocket connections
  • Data throughput (items/second)
  • Error rates
Last updated on