Performance Optimization Guide: Difference between revisions

no edit summary
No edit summary
Line 17: Line 17:
The following queues can be monitored to see where you need to change settings in the Allegro:
The following queues can be monitored to see where you need to change settings in the Allegro:


=== Interface hardware queues ===
== Interface hardware queues ==


The interface hardware queue is between the interfaces and I/O threads of the central processing unit. Whenever the I/O threads are too slow to consume all packets from the built-in or extension interfaces, the '''hardware miss''' counter of the interface statistics will increase over time.  
The interface hardware queue is between the interfaces and I/O threads of the central processing unit. Whenever the I/O threads are too slow to consume all packets from the built-in or extension interfaces, the '''hardware miss''' counter of the interface statistics will increase over time.  
Line 38: Line 38:
Allegro recommends to test with HT enabled and 2 or 4 threads for I/O. If you disable the load on the analyzers ( see [[#High analyzer load]] ), you can also test with 4 I/O Threads without HT for maximum performance.
Allegro recommends to test with HT enabled and 2 or 4 threads for I/O. If you disable the load on the analyzers ( see [[#High analyzer load]] ), you can also test with 4 I/O Threads without HT for maximum performance.


=== Analyzer queues ===
== Analyzer queues ==


The Allegro has a packet queue between I/O threads and the analyzer threads.  Please note that the increasing counters at the initial startup of the Allegro can be normal under high load scenarios for a few seconds. You can check at the '''Interface stats''' per interface all I/O threads could push all packets to the analyzer queues or not. The counter is '''Not processed due to overload'''.
The Allegro has a packet queue between I/O threads and the analyzer threads.  Please note that the increasing counters at the initial startup of the Allegro can be normal under high load scenarios for a few seconds. You can check at the '''Interface stats''' per interface all I/O threads could push all packets to the analyzer queues or not. The counter is '''Not processed due to overload'''.
Line 48: Line 48:
There are 3 scenarios where the an queue overload can happen.
There are 3 scenarios where the an queue overload can happen.


==== Overload at low analyzer load ====
=== Overload at low analyzer load ===


This happens if the analyzers of the Allegro are in a powersafe mode and a very high and large burst of one connection arrives at the Allegro. This issue has happened at customer installations with 40G Links, an average saturation less than 5GBit/s and connection bursts above 10GBit/s. This can lead to minor packet drops as the wakeup of the analyzers is not fast enough. The solution is to use the [[#Sink Mode]] and to activate the '''Analyzer queue overcommit''' at '''Settings''' → '''Global settings''' → '''Expert settings'''. This mode allows to buffer network bursts. This mode is not available for the bridge mode.
This happens if the analyzers of the Allegro are in a powersafe mode and a very high and large burst of one connection arrives at the Allegro. This issue has happened at customer installations with 40G Links, an average saturation less than 5GBit/s and connection bursts above 10GBit/s. This can lead to minor packet drops as the wakeup of the analyzers is not fast enough. The solution is to use the [[#Sink Mode]] and to activate the '''Analyzer queue overcommit''' at '''Settings''' → '''Global settings''' → '''Expert settings'''. This mode allows to buffer network bursts. This mode is not available for the bridge mode.
Line 54: Line 54:
[[File:Queue overcommit.png|600px]]
[[File:Queue overcommit.png|600px]]


==== Overload and high analyzer load ====
=== Overload and high analyzer load ===


The Allegro has reached its processing limit for a traffic when the load of one or multiple analyzers reaches 100 %.
The Allegro has reached its processing limit for a traffic when the load of one or multiple analyzers reaches 100 %.
Line 70: Line 70:
If this is not applicable, you need to upgrade the Allegro to a higher class with more performance ( Allegro 1000 to 3000 or 3000 to 5000 ).
If this is not applicable, you need to upgrade the Allegro to a higher class with more performance ( Allegro 1000 to 3000 or 3000 to 5000 ).


==== Overload and not-balanced analyzer load ====
=== Overload and not-balanced analyzer load ===


By default, the Allegro load balances the traffic between the analyzers based on the IP addresses of the client and server IP. This provides a very good balancing in most situations. The load distribution could be not balanced if there are many connections and load between 2 IP addresses. An example are 2 SIP trunks with many RTP connections. The statistics will show a part of the analyzers with a constant high load and others with a significant lower load.
By default, the Allegro load balances the traffic between the analyzers based on the IP addresses of the client and server IP. This provides a very good balancing in most situations. The load distribution could be not balanced if there are many connections and load between 2 IP addresses. An example are 2 SIP trunks with many RTP connections. The statistics will show a part of the analyzers with a constant high load and others with a significant lower load.
Line 80: Line 80:
This mode improves the performance only for unbalanced traffic. Please use it only if required as it has a negative performance impact on balanced traffic.
This mode improves the performance only for unbalanced traffic. Please use it only if required as it has a negative performance impact on balanced traffic.


=== Database queues ===
== Database queues ==


The database mode is an extension for large Allegros with NUMA setups and it is disabled by default. This mode is only recommended for Allegro 3500 rev1 and Allegro 5500 rev1. It helps improving very high database loads ( millions of open connections and new connections ) over multiple cpus. See [[DB mode]] for more details.
The database mode is an extension for large Allegros with NUMA setups and it is disabled by default. This mode is only recommended for Allegro 3500 rev1 and Allegro 5500 rev1. It helps improving very high database loads ( millions of open connections and new connections ) over multiple cpus. See [[DB mode]] for more details.


If enabled, you can check if there are message drops between the analyzer threads and the DB threads in the load statistics.
If enabled, you can check if there are message drops between the analyzer threads and the DB threads in the load statistics.
404

edits