Performance Optimization Guide: Difference between revisions

Line 35: Line 35:
== Analyzer queues ==
== Analyzer queues ==


The '''Allegro Network Multimeter''' has a packet queue between I/O threads and the analyzer threads which distributes the incoming packets to the actual processing threads. There are two statistics describing the load of the queues and analyzer threads. If analyzer threads cannot process incoming packets fast enough, the corresponding queue will eventually overflow and packets must be skipped for processing.
The '''Allegro Network Multimeter''' has a packet queue between I/O threads and the analyzer threads which distributes the incoming packets to the actual processing threads. There are two statistics describing the load of the queues and analyzer threads. If analyzer threads cannot process incoming packets quickly enough, the corresponding queue will eventually overflow and packets must be skipped for processing.


<ol>
<ol>
<li>Graphs for skipped packets: You can check at the '''Interface stats''' per interface and check whether all I/O threads were able to push all packets to the analyzer queues or not. The corresponding counter is '''Not processed due to overload'''.<br />
<li>Graphs for skipped packets: You can check at the '''Interface stats''' per interface and check whether all I/O threads were able to push all packets to the analyzer queues or not. The corresponding counter is '''Not processed due to overload'''.<br />
[[File:Interface analyzer packet drop.png|400px]]<br />
[[File:Interface analyzer packet drop.png|400px]]<br />
Please note that high counters for a few seconds at the initial startup of the device are normal when it is started under high network load scenarios.
Note that high counters for a few seconds at the initial startup of the device are normal when it is started under high network load scenarios.
</li>
</li>
<li>Utilization of individual analyzer threads: The load of the analyzer threads can be checked at the '''Info''' → '''System Info''' → '''Load'''. Depending of your Allegro model, there can be two (Allegro 200, Allegro 500) or up to 120 (Allegro 5300 or 5500) analyzer threads.
<li>Utilization of individual analyzer threads: The load of the analyzer threads can be checked at the '''Info''' → '''System info''' → '''Load'''. Depending on the Allegro model, there can be two (Allegro 200, Allegro 500) or up to 120 (Allegro 5300 or 5500) analyzer threads.
The load graph gives an indication about the overall utilization of each thread but the important counter is the '''Not processed due to overload''' counter since this is the event when ultimately one or more packets could not be processed due to overload.
The load graph gives an indication about the overall utilization of each thread but the important counter is the '''Not processed due to overload''' counter since this is the event when ultimately one or more packets could not be processed due to overload.
</li>
</li>
</ol>
</ol>


There are 3 scenarios where the a queue overload can happen, which are described in the following sections.
There are 3 scenarios where the a queue overload can occur which are described in the following sections:


=== Skipped packets at high analyzer load ===
=== Skipped packets at high analyzer load ===


The '''Allegro Network Multimeter''' has reached its processing limit for a current traffic when the load of one or multiple analyzers reaches 100%.
The '''Allegro Network Multimeter''' has reached its processing limit for current traffic when the load of one or multiple analyzers reaches 100%.


There are a some options to reduce the analyzer load but it always comes with the penalty of no longer seeing the complete measurement data. You can '''disable''' some features or add a '''NIC filter''' to process only parts of the traffic.
There are a some options to reduce the analyzer load but it always comes with the penalty of no longer seeing the entire measurement data. You can '''disable''' some features or add a '''NIC filter''' to process only parts of the traffic.


<ol>
<ol>
<li>You can reduce the level of analysis at '''Settings''' -> '''Global Settings'''.<br />
<li>You can reduce the level of analysis at '''Settings''' -> '''Global settings'''.<br />
[[File:Detail of traffic analysis.png|600px]]<br />
[[File:Detail of traffic analysis.png|600px]]<br />
Every level reduction will reduce the amount of analyzed data and saves database operations, see [[Global_settings#Limit_module_processing]] for more details of this option. It is possible to adjust the setting so that live traffic is stored as fast possible to the ring buffer without further analysis and re-analyze parts of the recorded traffic with full analysis by using the [[Parallel packet processing]].</li>
Every level reduction will reduce the amount of analyzed data and saved database operations, see [[Global_settings#Limit_module_processing]] for more details of this option. It is possible to adjust the setting so that live traffic is stored as fast possible to the ring buffer without further analysis and re-analyze parts of the recorded traffic with full analysis by using the [[Parallel packet processing]].</li>
<li>The NIC filter can be used to reduce the amount of monitored traffic. It excludes traffic from the analyzers for the cost of not-seeing all traffic of the link. See the [[Filter|interface filter]] for more details.</li>
<li>The NIC filter can be used to reduce the amount of monitored traffic. It excludes traffic from the analyzers for the cost of not seeing all traffic of the link. See the [[Filter|interface filter]] for more details.</li>
</ol>
</ol>


Line 66: Line 66:
=== Skipped packets at low analyzer load ===
=== Skipped packets at low analyzer load ===


The '''Allegro Network Multimeter''' conserves energy in very low traffic situations. Large bursts of packets can lead to a high traffic situation so the analyser threads cannot keep up with the incoming packets fast enough during the period of power adjustment. After that small period of time, the analyser threads are again fast enough to process the traffic.
The '''Allegro Network Multimeter''' conserves energy in very low traffic situations. Large packet bursts can lead to a high traffic situation so the analyser threads cannot keep up with the incoming packets fast enough during the period of power adjustment. After that small period of time, the analyzer threads are again fast enough to process the traffic.


This can be identified if packets are not processed while the load of the system is still not very high at the same time.  
This can be identified if packets are not processed while the load of the system is still not very high at the same time.  


If this occurs, the option '''Analyzer queue overcommit''' at '''Settings''' → '''Global settings''' → '''Expert settings''' can be enabled. This option can only be used in '''Sink mode''' and it increases the queue size to be able to buffer network burts during a small time period. The disadvantage is that the queues are overcommitted so it can happen that the network card does not have enough buffers available for incoming packets.
If this occurs, the option '''Analyzer queue overcommit''' at '''Settings''' → '''Global settings''' → '''Expert settings''' can be enabled. This option can only be used in '''Sink mode''' and it increases the queue size to be able to buffer network burts during a short time period. The disadvantage is that the queues are overcommitted so it can happen that the network card does not have enough buffers available for incoming packets.


[[File:Queue overcommit.png|600px]]
[[File:Queue overcommit.png|600px]]
Line 76: Line 76:
=== Skipped packets due to analyzer load imbalance ===
=== Skipped packets due to analyzer load imbalance ===


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.  
By default, the Allegro load balances the traffic between the analyzers based on the IP addresses of the client and server. This provides a good balancing in most situations.  


The network packets cannot distributed equally among all analyzer threads if there are many connections between only few IP addresses. An example is 2 SIP trunks with many RTP connections.
Network packets cannot distributed equally among all analyzer threads if there are many connections between only few IP addresses. An example is 2 SIP trunks with many RTP connections.


The load statistics will show parts of the analyzers with a constant high load and others with a significant lower load.
The load statistics will show parts of the analyzers with a constant high load and others with a significantly lower load.


The load balancing behavior of the '''Allegro Network Multimeter''' can be changed to flow based load balancing mode at '''Settings''' -> '''Global Settings''' → '''Expert Settings'''.
The load balancing behavior of the '''Allegro Network Multimeter''' can be changed to flow-based load balancing mode at '''Settings''' -> '''Global settings''' → '''Expert settings'''.


[[File:Flow load balancing.png|600px]]
[[File:Flow load balancing.png|600px]]


This mode improves the performance only for imbalanced traffic. Use the option only if required as it has a negative performance impact on balanced traffic.
This mode improves the performance only for imbalanced traffic. Use the option only if required since it has a negative performance impact on balanced traffic.


== Database queues ==
== Database queues ==
inactive
369

edits