Skip to main content

Causes of Performance Issues

Performance degradation can usually be caused by the following factors:
  • High traffic volume
  • Insufficient resource allocation (CPU, RAM)
  • Database query performance
  • Network delays
  • Policy execution times
  • Cache configuration issues

Performance Monitoring

To monitor performance metrics in Apinizer:
  1. Analytics Dashboard: You can get detailed information about API traffic and response times.
  2. Prometheus Metrics: You can monitor system resource usage and performance metrics.
  3. Log Analysis: You can detect slow responding requests from log files.

Performance Optimization

Resource Allocation

  • Allocate sufficient CPU and RAM resources to pods
  • Configure auto-scaling settings
  • Optimize JVM parameters

Database Optimization

  • Optimize database queries
  • Configure connection pooling settings
  • Check indexes

Cache Strategy

  • Use appropriate cache policies
  • Optimize cache TTL values
  • Set cache sizes

Policy Optimization

  • Remove unnecessary policies
  • Optimize policy execution order
  • Optimize script policies

DNS Resolution Performance

In systems with intensive environment usage or high number of rate limit definitions, the situation where some service addresses cannot be resolved instantly may be caused by insufficient DNS resolution performance.

Solution

1

Increase CoreDNS Resource Limits

CPU and RAM resources should be increased to enable processing more queries simultaneously.
2

Distribute CoreDNS Over Nodes

Deployment should be reconfigured so that there is one CoreDNS pod on each worker node. This way, DNS queries can be processed in a distributed manner without piling up at a central point.