Latency Analyzer (LANZ)
Arista Networks’ Latency Analyzer (LANZ) is a family of EOS features that provide enhanced visibility into network dynamics, particularly in areas related to the delay packets experience through the network. The LANZ feature is available on the FM6000, Arad, Trident II, Trident 3, Jericho, Tomahawk and XP80 switch platforms.
Introduction to LANZ
LANZ tracks interface congestion and queuing latency with real-time reporting. With LANZ application layer event export, external applications can predict impending congestion and latency. This enables the application layer to make traffic routing decisions with visibility into the network layer.
With LANZ, network operations teams and administrators have near real-time visibility into the network, enabling early detection of microbursts. LANZ continually monitors congestion, allowing for rapid detection of congestion and sending of application layer messages.
LANZ Overview
LANZ monitors output queue lengths to provide congestion information for individual interfaces. This allows for more detailed analysis of congestion events, and allows identification of potential latency problems before they arise. On some platforms, LANZ also monitors global buffer usage.
Output queues for each port are monitored, and information about queue congestion events can be accessed in the form of system log messages, reports, or streaming.
LANZ Monitoring Mechanism
LANZ provides congestion data by continuously monitoring each port’s output queue lengths. When the length of an output queue exceeds the upper threshold for that port, LANZ generates an over-threshold event.
Notifying and Polling Modes
Notifying Mode
- Start event is generated when any queue on an interface exceeds the upper threshold.
- Update events are generated periodically while the congested queue remains above the lower threshold. The interval at which Update events are generated is configured using the queue-monitor length update-interval command.
- End event is generated when the congested queue drops below the lower threshold.
Polling Mode
Polling Mode is available only on Arad and Jericho switches. On these switches, LANZ can be configured to use Notifying Mode, but it operates in Polling Mode by default. In Polling Mode, LANZ polls the most congested queue in each ASIC and continues to report an over-threshold state every 800 microseconds until all queue lengths for the port pass below the lower threshold.
LANZ Logging
Over-threshold events generated by LANZ can be logged as system log messages. Log messages are generated for events on all ports, at a maximum rate of one message per second per interface. The interval between messages can be configured globally.
Log messages indicate the time of the event, the interface affected, the threshold set for that interface, and the actual number of entries in the port’s queue.
LANZ Reporting
Detailed LANZ data can be viewed through the CLI or exported as a CSV-formatted report.
A circular FIFO event buffer is dynamically shared by all interfaces. When an interface begins generating LANZ over-threshold events it can fill all available buffer space. However, each interface is guaranteed sufficient resources for a minimum of 500 entries.
LANZ Streaming
On some platforms, external client applications can also receive congestion event information as a data stream. The switch can stream LANZ data to up to 100 clients via TCP through port 50001.
Streamed data is in Google protocol buffer format, and includes both over-threshold events and LANZ configuration information.
Configuring LANZ
LANZ is disabled by default and must be enabled to function. Upper and lower queue-length thresholds can be defined for individual interfaces.
Enabling and Disabling LANZ
LANZ is enabled by default on Sand platform switches (those with Arad, Jericho, or Qumran chipsets), allowing the switch to collect and display latency information. LANZ is disabled by default on all other switches. If LANZ is disabled, the queue-monitor length (global configuration mode) command enables LANZ with the current settings, or with the default settings if none have been configured.
- syslog data (see queue-monitor length log)
- CLI display or CSV-format output (see show queue-monitor length)
- data stream (see queue-monitor streaming)
To disable LANZ globally, enter the no queue-monitor length command in global configuration mode. Disabling LANZ globally also discards LANZ log data, but retains settings. To disable LANZ on an individual interface, enter the no queue-monitor length command in interface Ethernet configuration mode.
Examples
-
This command enables LANZ on the switch.
switch(config)# queue-monitor length switch(config)#
-
This command disables LANZ on the switch.
switch(config)# no queue-monitor length switch(config)#
-
These commands disable LANZ on Ethernet interface 7.
switch(config)# interface ethernet 7 switch(config-if-Et7)# no queue-monitor length switch(config-if-Et7)#
Specifying the LANZ Mode on Jericho and Arad Switches
On Jericho and Arad switches, LANZ operates by default in Polling Mode, which provides congestion data for the most congested queue per ASIC. They also support Notifying Mode (the LANZ mode used on all other switches), which generates Start, Update, and End events for all queues.
Notifying Mode is enabled using the queue-monitor length notifying command.
Examples
- This command enables Notifying Mode on a Jericho or Arad
switch.
switch(config)# queue-monitor length notifying
- This command disables Notifying Mode on a Jericho or Arad switch, returning LANZ
to the default Polling
Mode.
switch(config)# no queue-monitor length notifying
Configuring LANZ Congestion Thresholds
When LANZ is enabled on the switch, it generates over-threshold events when queue lengths on any monitored interface exceed the upper threshold value and continues generating them until all the queue lengths on that interface drop back below the lower threshold.
Setting the Congestion Update Interval
-
This command sets the time between congestion updates to 10 seconds.
switch(config)# queue-monitor length update-interval 10000000 switch(config)#
-
This command resets the time between congestion updates to its default value of 5 seconds.
switch(config)# default queue-monitor length update-interval switch(config)#
Congestion Thresholds on FM6000, Trident II, Trident 3, and Tomahawk Switches
Queue lengths are measured in 480-byte segments on FM6000 switches, in 208-byte segments on Trident II and Tomahawk switches, and in 256-byte segments on Trident 3 switches. The default threshold values are 512 segments and 256 segments. To change the threshold values for a specific interface, use the queue-monitor length thresholds command.
FM6000 switches can also monitor global buffer usage. Global buffers are measured in 160-byte segments; the default threshold values are 10940 segments and 4376 segments. To enable global buffer monitoring, use the queue-monitor length global-buffer command. To change the threshold values for global buffer usage monitoring on the switch, use the queue-monitor length global-buffer thresholds command.
Examples
-
These commands set the upper and lower queue-length thresholds on interface ethernet 5 to 300 segments and 200 segments.
switch(config)# interface ethernet 5 switch(config-if-Et5)# queue-monitor length thresholds 300 200 switch(config-if-Et5)#
-
These commands enable global buffer monitoring on the switch and set the upper and lower thresholds to 9000 segments and 4000 segments.
switch(config)# queue-monitor length global-buffer switch(config)# queue-monitor length global-buffer thresholds 9000 4000 switch(config)#
Congestion Thresholds on Arad Switches
Queue lengths are measured in bytes. The top threshold value can be between 2 and 52428800 bytes (the default value is 52428800 bytes). To change the upper threshold value for a specific interface, use the queue-monitor length threshold (Arad/Jericho/Qumran) command.
Example
switch(config)# interface ethernet 5
switch(config-if-Et5)# queue-monitor length thresholds 2614400
switch(config-if-Et5)#
CPU Port Congestion Thresholds
CPU port queue lengths are also monitored on selected platforms. All CPU ports share common threshold values, which are configured using the queue-monitor length cpu thresholds command. Individual CPU port congestion thresholds cannot be separately configured.
Examples
-
This command sets the upper queue-length threshold for congestion monitoring on all CPU ports to 1000 segments and the lower limit to 300 segments.
switch(config)# queue-monitor length cpu thresholds 1000 300 switch(config)#
-
This command resets the queue-length thresholds for CPU port congestion to the default values of 512 and 256.
switch(config)# default queue-monitor length cpu thresholds switch(config)#
Fabric Port Congestion Thresholds
Fabric port queue lengths are also monitored on selected platforms. All fabric ports share common threshold values, which are configured using the queue-monitor length fabric thresholds command. Individual fabric port congestion thresholds cannot be separately configured.
Examples
-
This command sets the upper queue-length threshold for congestion monitoring on all fabric ports to 1000 segments and the lower limit to 300 segments.
switch(config)# queue-monitor length fabric thresholds 1000 300 switch(config)#
-
This command resets the queue-length thresholds for fabric port congestion to the default values of 512 and 256.
switch(config)# default queue-monitor length fabric thresholds switch(config)#
Setting LANZ Traffic Sampling
The switch can be configured to automatically send congested traffic to either the CPU or an Ethernet egress interface destination when a queue threshold is crossed by enabling LANZ mirroring through the queue-monitor length mirror command. The CPU or an egress interface mirror destination is then configured through the queue-monitor length mirror destination command. LANZ traffic sampling includes exporting congested traffic to a packet capture device or another tool for analysis, or directly to the switch CPU for inspection through the tcpdump queue-monitor command.
Examples
- This command enables LANZ traffic
sampling.
switch(config)# queue-monitor length mirror switch(config)#
- This command disables LANZ traffic
sampling.
switch(config)# no queue-monitor length mirror switch(config)#
- This command configures LANZ traffic sampling
for a CPU interface mirror
destination.
switch(config)# queue-monitor length mirror destination cpu switch(config)#
- This command configures LANZ traffic sampling
for an Ethernet interface mirror destination for ports
1 through
5.
switch(config)# queue-monitor length mirror destination Ethernet 1-5 switch(config)#
- This command configures LANZ traffic sampling
for an Ethernet interface mirror destination for ports
6, 10, and
12 through
14.
switch(config)# queue-monitor length mirror destination Ethernet 6,10,12-14 switch(config)#
- This command inspects traffic on the
switch.
switch(config)# tcpdump queue-monitor tcpdump: WARNING: lanz: no IPv4 address assigned tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on lanz, link-type EN10MB (Ethernet), capture size 65535 bytes ... 0 packets captured 0 packets received by filter 0 packets dropped by kernel switch(config)#
Logging LANZ Congestion Events
To generate syslog messages when queue lengths on an interface exceed its upper threshold, enable logging with the queue-monitor length log command. When logging is enabled, a log message is generated each time one or more queues on an interface exceed the upper threshold value for that interface (see queue-monitor length threshold (Arad/Jericho/Qumran) or queue-monitor length thresholds). Once an interface is over threshold, additional messages are generated at a maximum rate of one per interval as long as the queue length remains above the lower threshold for that interface. No syslog message is generated when queue length drops back under threshold.
Queue length information is not included in log messages, but can be accessed by displaying LANZ data or exporting reports.
On FM6000 platforms, log messages can also be created whenever global buffer usage exceeds its upper threshold value (see queue-monitor length global-buffer thresholds). To enable global buffer monitoring, use the queue-monitor length global-buffer command. To log over-threshold events for the global buffer, use the queue-monitor length global-buffer log command.
- This command enables queue-length over-threshold logging
with a minimum interval of
10 seconds between
messages for a given
interface.
switch(config)# queue-monitor length log 10
- This command disables queue-length over-threshold
logging on the
switch.
switch(config)# queue-monitor length log 0
- This is an example of a queue-length log
message.
Oct 27 12:48:22 switch QUEUE_MONITOR-6-LENGTH_OVER_THRESHOLD: Interface Ethernet6 queue length is over threshold of 512, current length is 1024.
- This command enables global buffer over-threshold
logging on the switch with a minimum interval of
60 seconds between
messages.
witch(config)# queue-monitor length global-buffer log 60
Viewing LANZ Data
LANZ status, and the data stored in the LANZ data buffer, can be viewed using the CLI. Output varies by switch platform, and can be limited to a specified number of records.
Viewing LANZ Data on Arad Platform Switches
When LANZ is enabled on an Arad platform switch, the show queue-monitor length command displays a report of recent over-threshold events for a range of interfaces or for all interfaces. By default, the command displays data for all interfaces, limited to the last 1000 records, with the most recent events listed first. To view a subset of the LANZ data, limited to a specified number of records, use the show queue-monitor length limit command.
Example
This command displays the last 100 records for Ethernet interfaces 6 through 8.
switch# show queue-monitor length ethernet 6-8 limit 100
Report generated at 2010-01-01 12:56:13
Time Interface Queue length (segments, 1 to 512 bytes)
-------------------------------------------------------------------------------
0:00:07.43393 ago Et6 1049
0:00:39.22856 ago Et7 2039
1 day, 4:33:23.12345 ago Et6 1077
To view the current LANZ configuration for the switch and for each interface, use the show queue-monitor length status command.
Example
switch(config)# show queue-monitor length status
Per-Interface Queue Length Monitoring
-------------------------------------
Queue length monitoring is enabled
Maximum queue length in bytes : 52428800
Port threshold in bytes:
Port High threshold
Et3/1 5242880
Et3/2 5242880
Et3/3 5242880
Et3/4 5242880
Et3/5 5242880
Viewing LANZ Data on FM6000, Trident II, Trident 3, and Tomahawk Platform Switches
When LANZ is enabled on an FM6000, Trident II, Trident 3, or Tomahawk platform switch, the show queue-monitor length command displays a report of recent over-threshold events for a range of interfaces or for all interfaces. By default, the command displays data for all interfaces, limited to the last 1000 records, with the most recent events listed first. To view a subset of the LANZ data, limited to a specified number of records, use the show queue-monitor length limit command.
Example
switch# show queue-monitor length ethernet 6-8 limit 100
Report generated at 2010-01-01 12:56:13
Time Interface Queue length (segments, 1 to 512 bytes)
-------------------------------------------------------------------------------
0:00:07.43393 ago Et6 1049
0:00:39.22856 ago Et7 2039
1 day, 4:33:23.12345 ago Et6 1077
To view the current LANZ configuration for the switch and for each interface, use the show queue-monitor length status command.
Example
switch(config)# show queue-monitor length status
queue-monitor length enabled
Global Buffer Monitoring
------------------------
Global buffer monitoring is enabled
Segment size in bytes : 160
Total buffers in segments : 36864
High threshold : 10940
Low threshold : 4376
Per-Interface Queue Length Monitoring
-------------------------------------
Queue length monitoring is enabled
Segment size in bytes : 480
Maximum queue length in segments : 3647
Port thresholds in segments:
Port High threshold Low threshold
Et1 512 256
Et2 512 256
Et3 512 256
Et4 512 256
Et5 512 256
To view all available LANZ records, use the show queue-monitor length all command.
Example
switch> show queue-monitor length all
Report generated at 2013-04-01 13:23:13
E-End, U-Update, S-Start, TC-Traffic Class
GH-High, GU-Update, GL-Low
Segment size for E, U and S congestion records is 480 bytes
Segment size for GL, GU and GH congestion records is 160 bytes
* Max queue length during period of congestion
+ Period of congestion exceeded counter
-------------------------------------------------------------------------------
-
Type Time Intf Congestion Queue Time of Max
(TC) duration length Queue length
(usecs) (segments) relative to
congestion
start
(usecs)
-------------------------------------------------------------------------------
-
E 0:00:00.07567 ago Et22(7) >=71 mins 20* 30us
GU 0:00:00.15325 ago N/A N/A 5695 N/A
U 0:00:00.19859 ago Et4(1) N/A 5693 N/A
GU 0:00:00.95330 ago N/A N/A 5696 N/A
U 0:00:00.99859 ago Et4(1) N/A 5695 N/A
E 0:00:01.28821 ago Et44(1) 9672us 2502* 7294us
S 0:00:01.17591 ago Et22(7) N/A 26 N/A
U 0:00:03.08248 ago Et44(1) N/A 50 N/A
S 12days,8:56:44.07567 ago Et44(1) N/A 20 N/A
switch>
On the FM6000, Trident II, Trident 3, and Tomahawk platforms, information is also available for the number of dropped packets (see show queue-monitor length drops) and transmission latency (see show queue-monitor length tx-latency); global buffer usage can also be viewed on FM6000 platforms (see show queue-monitor length global-buffer).
Streaming LANZ Data
To support analysis of latency conditions, the switch can be configured to stream LANZ congestion and configuration data. The switch streams LANZ data via TCP in Google protocol buffer format through port 50001 and through the management interface.
You must create a client application to receive the streaming data. By default, the switch will accept up to 10 client connections for streaming LANZ data. This limit can be configured up to a maximum of 100. Maximum connections can be configured when LANZ is disabled.
Enabling and Disabling LANZ Data Streaming
LANZ data streaming is disabled by default. To enable streaming, issue the no show queue-monitor streaming clients command in queue-monitor streaming configuration mode. To disable streaming, use the show queue-monitor streaming clients command.
When streaming is disabled, a message is sent to any connected clients and the connections are closed.
To ensure client access to LANZ data, add a rule to any relevant ACL permitting traffic destined for the LANZ port (50001) before initiating a client connection for streaming from a remote host. A static rule (sequence number 130) in the default control plane ACL permits LANZ traffic, but a similar rule must be added to any user-created ACL.
Examples
-
These commands enable the streaming of LANZ data from the switch.
switch(config)# queue-monitor streaming switch(config-qm-streaming)# no shutdown switch(config-qm-streaming)#
-
These commands disable LANZ data streaming.
switch(config)# queue-monitor streaming switch(config-qm-streaming)# shutdown switch(config-qm-streaming)#
Configuring Maximum Connections
By default, the switch will accept a maximum of 10 client connections for LANZ data streaming. This maximum can be configured using the max-connections command. If a client connects to the switch after the limit has been reached, an error message is sent and the connection is closed.
Example
switch(config-qm-streaming)# max-connections 50
LANZ Streaming Messages
When streaming is enabled, LANZ sends a message whenever a congestion event or a configuration event occurs. The messages are streamed in Google protocol buffer format.
Configuration Messages
A configuration message is sent whenever a change is made to the LANZ configuration settings on the switch. The switch also sends a configuration message when a new client connection is established.
- timestamp time of change in configuration in tens of microseconds (UTC).
- lanzVersion LANZ feature version.
- numOfPorts number of ports in the switch.
- segmentSize segment size.
- maxQueueSize maximum queue size in segments.
- qLenInterval frequency of updates.
- intfName name of the port.
- switchId ID of the chip on a multi-chip system.
- portId ID of the port.
- internalPort “true” if it is an internal port.
- highThreshold higher threshold value.
- lowThreshold lower threshold value.
Congestion Messages
A congestion message is sent whenever LANZ generates an over-threshold event.
- timestamp time of congestion in micro-seconds (UTC).
- intfName name of the port.
- switchId ID of the chip on a multi-chip system.
- portId ID of the port.
- queueSize queue size in segments at time of congestion.
Creating the LANZ Client
For a client device to receive streaming data from the LANZ server, it must be running a client application designed to receive LANZ data. Client programs must be based on the Google protocol buffer schema file describing the structure of the congestion and configuration messages which LANZ streams.
Google Protocol Buffers
Google protocol buffers provide an efficient mechanism for serializing LANZ data for streaming. A protocol buffer package is needed in order to run a LANZ client.
The latest version of the Google protocol buffer source code is available at this address: http://code.google.com/p/protobuf/downloads/list
LANZ Message Schema
LANZ client applications must be designed based on the LANZ protocol buffer schema, which defines the format and contents of the streamed messages. The schema file is shown below, and is also available in the Extensions/LANZ directory on this page: https://www.arista.com/en/support/software-download
package LanzProtobuf;
message ConfigRecord {
required uint64 timestamp = 1; // Time of change in configuration in
micro-seconds (UTC)
required uint32 lanzVersion = 2; // LANZ feature version
required uint32 numOfPorts = 3; // Num of ports in the switch
required uint32 segmentSize = 4; // Segement size
required uint32 maxQueueSize = 5; // Maximum queue size in segments
optional uint32 qLenInterval = 10; // Frequency of update
message PortConfigRecord {
required string intfName = 1; // Name of the port
required uint32 switchId = 2; // Id of the chip on a multi-chip system
required uint32 portId = 3; // Id of the port
required bool internalPort = 4; // 'True' if it's an internal port
required uint32 highThreshold = 5; // Higher threshold
required uint32 lowThreshold = 6; // Lower threshold
}
repeated PortConfigRecord portConfigRecord = 6; // Lanz config details of each
port
}
message CongestionRecord {
required uint64 timestamp = 1; // Time of congestion in micro-seconds
(UTC)
required string intfName = 2; // Name of the port
required uint32 switchId = 3; // Id of the chip on a multi-chip system
required uint32 portId = 4; // Id of the port
required uint32 queueSize = 5; // Queue size in segments at time of
congestion
}
message ErrorRecord {
required uint64 timestamp = 1; // Time of event in micro-seconds (UTC)
required string errorMessage = 2; // Text message
}
message LanzRecord {
optional ConfigRecord configRecord = 1;
optional CongestionRecord congestionRecord = 2;
optional ErrorRecord errorRecord = 3;
}
Implementation Procedure
The following steps create and install a functional client to receive streamed LANZ data. This procedure assumes a functional Python programming environment.
- Download the example client (lanz_client.py) from the Arista website. It is available in the Extensions/LANZ directory on this page: https://www.arista.com/en/support/software-download
- Decompress the GPB archive to a directory.
- Run the GPB C++ compilation and install. With default flags using GCC on *nix platforms, this will produce a binary called “protoc” in your /usr/local/bin directory.
- From the archive root, cd to python, and run the following commands:
- python setup.py build
- python setup.py test
- Next, use the protoc compiler to convert the Lanz.proto file into a Python
program called Lanz_pb2.py, used by the client. The command to do so is:
- protoc --python_out=. Lanz.proto
- The --python_out=. flag drops the compiled Python program in the directory where you ran the command.
- Run lanz_client.py -h to activate the LANZ client.
LANZ Commands
LANZ Commands: Global Configuration
- clear queue-monitor length statistics
- queue-monitor length (global configuration mode)
- queue-monitor length cpu thresholds
- queue-monitor length fabric thresholds
- queue-monitor length global-buffer
- queue-monitor length global-buffer log
- queue-monitor length global-buffer thresholds
- queue-monitor length log
- queue-monitor length mirror
- queue-monitor length mirror destination
- queue-monitor length notifying
- queue-monitor length update-interval
- queue-monitor streaming
- tcpdump queue-monitor
LANZ Commands: Interface Ethernet Configuration Mode
LANZ Commands: Queue-Monitor Streaming Configuration Mode
LANZ Display Commands
- show queue-monitor length
- show queue-monitor length all
- show queue-monitor length cpu
- show queue-monitor length csv
- show queue-monitor length drops
- show queue-monitor length ethernet
- show queue-monitor length global-buffer
- show queue-monitor length limit
- show queue-monitor length statistics
- show queue-monitor length status
- show queue-monitor length tx-latency
- show queue-monitor streaming clients
clear queue-monitor length statistics
The clear queue-monitor length statistics command resets the occurrences of all over-threshold events on the switch including global buffer information (if supported).
Command Mode
Privileged EXEC
Command Syntax
clear queue-monitor length statistics
Example
switch# clear queue-monitor length statistics
switch#
max-connections
The max-connections command sets the maximum number of client connections the switch accepts for streaming LANZ data. The default maximum is 10 connections. To stream LANZ data, you must use the queue-monitor streaming command to enable LANZ data streaming.
Command Mode
Queue-Monitor-Streaming Configuration
Command Syntax
max-connections connections
Parameter
connections maximum number of simultaneous LANZ streaming client connections the switch will accept. Values range from 1 through 100.
Example
switch(config-qm-streaming)# max-connections 50
switch(config-qm-streaming)#
queue-monitor length (global configuration mode)
The queue-monitor length (global configuration mode) command enables LANZ with the current settings, or with the default settings if LANZ has not yet been configured. LANZ is enabled by default on Sand platform switches (those with Arad, Jericho, or Qumran chipsets), and disabled by default on all other switches.
- syslog data (see queue-monitor length log).
- CLI display or CSV-format output (see show queue-monitor length).
- data stream (see queue-monitor streaming).
- logging settings (see queue-monitor length log).
- queue length thresholds (see queue-monitor length threshold (Arad/Jericho/Qumran) or queue-monitor length thresholds).
- data streaming settings (see queue-monitor streaming).
To disable LANZ on an interface, use the no queue-monitor length command in interface configuration mode.
Command Mode
Global Configuration
Command Syntax
queue-monitor length
no queue-monitor length
default queue-monitor length
- This command enables LANZ on the
switch.
switch(config)# queue-monitor length switch(config)#
- This command disables LANZ on the switch and discards LANZ data but
maintains
configurations.
switch(config)# no queue-monitor length switch(config)#
- This command disables LANZ on Ethernet interface
3/30.
switch(config)# interface ethernet 3/30 switch(config-if-Et3/30)# no queue-monitor length switch(config-if-Et3/30)#
queue-monitor length cpu thresholds
The queue-monitor length cpu thresholds command sets the queue length threshold to define “congested” on all CPU ports for purposes of LANZ reporting. If LANZ is enabled (see queue-monitor length (global configuration mode)), an over-threshold event is generated when one or more queues on a CPU interface exceed the upper threshold, and over-threshold events continue to be generated until all queue lengths on the interface drop below the lower threshold. (To log these events, use the queue-monitor length log command.) Different monitoring thresholds cannot be set for individual CPU ports.
The no queue-monitor length cpu thresholds and default queue-monitor length cpu thresholds commands reset thresholds to the default values (high: 512 segments; low: 256 segments).
Command Mode
Global Configuration
Command Syntax
queue-monitor length cpu thresholds [upper_limit | lower_limit]
no queue-monitor length cpu thresholds
default queue-monitor length cpu thresholds
- upper_limit is the queue length in segments that triggers an over-threshold event. Values range from 8 to 16382. Default setting is 512. Segment size varies by platform.
- lower_limit When logging is enabled, an over-threshold interface continues generating over-threshold events until all its queues drop back below this length. Must be lower than upper_limit. Values range from 1 to 16382. Default setting is 256.
- This command sets the upper queue-length threshold for congestion monitoring
on all CPU ports to 1000 segments and the lower
limit to 300
segments.
switch(config)# queue-monitor length cpu thresholds 1000 300 switch(config)#
- This command resets the queue-length thresholds for CPU port congestion to
the default values of 512 and
256.
switch(config)# default queue-monitor length cpu thresholds switch(config)#
queue-monitor length fabric thresholds
The queue-monitor length fabric thresholds command sets the queue-monitor length thresholds to define “congested” on all fabric ports for purposes of LANZ reporting. If LANZ is enabled (see queue-monitor length (global configuration mode)), an over-threshold event is generated when one or more queues on a fabric interface exceed the upper threshold, and over-threshold events continue to be generated until all queue lengths on the interface drop below the lower threshold. (To log these events, use the queue-monitor length log command.) Different monitoring thresholds cannot be set for individual fabric ports.
The no queue-monitor length fabric thresholds and default queue-monitor length fabric thresholds commands reset thresholds to the default values (high: 512 segments; low: 256 segments).
Command Mode
Global Configuration
Command Syntax
queue-monitor length fabric thresholds [upper_limit | lower_limit]no queue-monitor length fabric thresholds
default queue-monitor length fabric thresholds
- upper_limit is the queue length in segments that triggers an over-threshold event. Values range from 8 to 16382. Default setting is 512. Segment size varies by platform.
- lower_limit When logging is enabled, an over-threshold interface continues generating over-threshold events until all its queues drop back below this length. Must be lower than upper_limit. Values range from 1 to 16382. Default setting is 256.
- This command sets the upper queue-length threshold for congestion monitoring
on all fabric ports to 1000 segments and the lower
limit to 300
segments.
switch(config)# queue-monitor length fabric thresholds 1000 300 switch(config)#
- This command resets the queue-length thresholds for fabric port congestion
to the default values of 512 and
256.
switch(config)# default queue-monitor length fabric thresholds switch(config)#
queue-monitor length global-buffer log
The queue-monitor length global-buffer log command enables logging of global buffer over-threshold events. When logging is enabled, a log message is generated each time the contents of the global buffer exceed the upper threshold value set for the switch (see queue-monitor length global-buffer thresholds). Once the global buffer is over the threshold, additional messages are generated at a maximum rate of one per interval as long as the buffer value remains above the lower threshold for the switch.
Global buffer logging is disabled by default.
Log messages do not include buffer usage or congestion information. To view this information, use the show queue-monitor length global-buffer command.
The no queue-monitor length global-buffer log and default queue-monitor length global-buffer log commands disable global buffer logging by removing the corresponding queue-monitor length global-buffer log command from running-config. The queue-monitor length global-buffer log command with an interval value of 0 also disables global buffer logging.
Command Mode
Global Configuration
Command Syntax
queue-monitor length global-buffer log interval
no queue-monitor length global-buffer log
default queue-monitor length global-buffer log
Parameters
- 0 global buffer logging is disabled on the switch (the default setting).
- 1 to 65535 minimum logging interval (in seconds).
Guidelines
This command is available on FM6000 platform switches.
- This command enables global buffer logging with a minimum interval of
10 seconds between
messages.
switch(config)# queue-monitor length global-buffer log 10
- This command disables global buffer logging on the
switch.
switch(config)# no queue-monitor length global-buffer log
queue-monitor length global-buffer thresholds
The queue-monitor length global-buffer thresholds command sets global buffer thresholds for the switch. An over-threshold event is generated when usage of the global buffer exceeds the upper threshold, and over-threshold events continue to be generated until usage drops below the lower threshold. (To log these events, use the queue-monitor length global-buffer log command.)
The no queue-monitor length global-buffer and default queue-monitor length global-buffer commands disable global buffer reporting.
The no queue-monitor length global-buffer thresholds and default queue-monitor length global-buffer thresholds commands erase custom global buffer threshold settings.
Command Mode
Global Configuration
Command Syntax
queue-monitor length global-buffer thresholds max_segments min_segments
no queue-monitor length global-buffer log
default queue-monitor length global-buffer log
- max_segments upper threshold in 160-byte segments. Value ranges from 2 to 36864. Default is 10940.
- min_segments lower threshold in 160-byte segments. Value ranges from 1 to 36864. Default is 4376.
- This command sets the upper and lower global buffer thresholds to
9000 segments and
3000
segments.
switch(config)# queue-monitor length global-buffer thresholds 9000 3000 switch(config)#
- This command resets the upper and lower global buffer thresholds to their
default
values.
switch(config)# no queue-monitor length global-buffer thresholds 9000 3000 switch(config)#
queue-monitor length global-buffer
The queue-monitor length global-buffer command includes global buffer usage in LANZ reporting.
When global buffer reporting is enabled, over-threshold events are generated when global buffer usage exceeds the upper threshold. To set the threshold value, use the queue-monitor length global-buffer thresholds command. Usage data may be viewed using the show queue-monitor length global-buffer command. To view status and threshold information, use the show queue-monitor length status command.
Global buffer usage is measured in segments of 160 bytes.
The no queue-monitor length global-buffer and default queue-monitor length global-buffer commands disable global buffer usage reporting by removing the corresponding queue-monitor length global-buffer command from running-config.
Command Mode
Global Configuration
Command Syntax
queue-monitor length global-buffer
no queue-monitor length global-buffer
default queue-monitor length global-buffer
Guidelines
This command is available on FM6000 platform switches.
- This command enables global buffer monitoring on the
switch.
switch(config)# queue-monitor length global-buffer switch(config)#
- This command disables global buffer monitoring on the
switch.
switch(config)# no queue-monitor length global-buffer switch(config)#
queue-monitor length log
The queue-monitor length log command enables logging of queue-length over-threshold events when LANZ is enabled on the switch (see queue-monitor length (global configuration mode)). When logging is enabled, a log message is generated each time one or more queues on an interface exceed the upper threshold value for that interface (see queue-monitor length threshold (Arad/Jericho/Qumran)). Once an interface is over threshold, additional messages are generated at a maximum rate of one per interval as long as the queue length remains above the lower threshold for that interface. No syslog message is generated when queue length drops back under threshold.
Logging is disabled by default.
Log messages do not include queue length information. To view queue length information, use the show queue-monitor length command.
The queue-monitor length log command with an interval value of 0 disables event logging.
Command Mode
Global Configuration
Command Syntax
queue-monitor length log interval
Parameters
- 0 queue-length logging is disabled on the switch (the default setting).
- 1 to 65535 minimum logging interval (in seconds).
- This command enables over-threshold logging with a minimum interval of
10 seconds between messages for a given
interface.
switch(config)# queue-monitor length log 10
- This command disables queue-length over-threshold logging on the
switch.
switch(config)# queue-monitor length log 0
- This is an example of a queue-length log
message.
Oct 27 12:48:22 switch QUEUE_MONITOR-6-LENGTH_OVER_THRESHOLD: Interface Ethernet6 queue length is over threshold of 512, current length is 1024.
queue-monitor length mirror
The queue-monitor length mirror command enables LANZ mirroring. As a result, the switch is configured to automatically send congested traffic to either the CPU or an Ethernet egress interface destination, once a queue threshold is crossed. To set the destination for the mirrored traffic, use the queue-monitor length mirror destination command.
Command Mode
Global Configuration
Command Syntax
queue-monitor length mirror
- This command enables LANZ traffic
sampling.
switch(config)# queue-monitor length mirror switch(config)#
- This command disables LANZ traffic
sampling.
switch(config)# no queue-monitor length mirror switch(config)#
queue-monitor length mirror destination
The queue-monitor length mirror destination command results in automatically sending traffic experiencing congestion to either the CPU or an Ethernet egress interface destination, once a queue threshold is crossed. Before using this command, first enable LANZ mirroring through the command queue-monitor length mirror.
Command Mode
Global Configuration
Command Syntax
queue-monitor length mirror destination cpu | ports
Parameter
ports any combination of Ethernet ports 1 through 24.
- This command configures LANZ traffic sampling for a CPU interface mirror
destination.
switch(config)# queue-monitor length mirror destination cpu switch(config)#
- This command configures LANZ traffic sampling for an Ethernet interface
mirror destination for ports 3,
11, and 15
through
20.
switch(config)# queue-monitor length mirror destination Ethernet 3,11,15-20 switch(config)#
queue-monitor length notifying
The queue-monitor length notifying command enables Notifying Mode on Arad and Jericho switches. By default, LANZ operates in Polling Mode on Arad and Jericho switches. On all other switches, LANZ operates only in Notifying Mode.
When Notifying Mode is enabled, the switch provides detailed congestion information including Start, Update, and End events, rather than only polling the most congested queue in each ASIC. Notifying Mode uses both upper and lower threshold values. Both can be set with the queue-monitor length thresholds command. While a queue is congested, the maximum queue size is updated every five seconds by default; this interval can be configured using the queue-monitor length update-interval command.
The no queue-monitor length notifying and default queue-monitor length notifying commands reset LANZ to the default Polling Mode.
Command Mode
Global Configuration
Command Syntax
queue-monitor length notifying
no queue-monitor length notifying
default queue-monitor length notifying
- Polling mode is available only on Arad and Jericho platform switches.
- On Jericho platforms, LANZ will revert to Polling Mode if there are not enough counter resources to operate in Notifying Mode.
- On Arad platforms, Notifying Mode is incompatible with SSO. Enabling SSO while Notifying Mode is enabled will cause LANZ to revert to Polling Mode.
- On Arad platforms, Notifying Mode is not available for CPU queues. Use Polling Mode when monitoring congestion on CPU queues on Arad switches.
- If the switch is rebooted while Notifying Mode is enabled, queue threshold values may be lost.
- This command enables Notifying Mode on an Arad or Jericho
switch.
switch(config)# queue-monitor length notifying switch(config)#
- This command disables Notifying Mode on an Arad or Jericho switch, returning
LANZ to the default Polling
Mode.
switch(config)# no queue-monitor length notifying switch(config)#
queue-monitor length thresholds
The queue-monitor length thresholds command sets both upper and lower queue length thresholds to define “congested” on the command-mode interface for purposes of LANZ reporting. If LANZ is enabled (see queue-monitor length (global configuration mode)), an over-threshold event is generated when one or more queues on the interface exceed the upper threshold, and over-threshold events continue to be generated until all queue lengths on the interface drop below the lower threshold. (To log these events, use the queue-monitor length log command.)
Entering the no queue-monitor length command in interface configuration mode disables LANZ on the interface. Entering either the queue-monitor length command or the default queue-monitor length command in interface configuration mode enables LANZ on the interface by removing the no queue-monitor length command from the configuration.
The no queue-monitor length thresholds and default queue-monitor length thresholds commands in interface configuration mode both erase custom queue length threshold settings for the interface.
Command Mode
Interface-Ethernet Configuration
Command Syntax
queue-monitor length thresholds upper_limit lower_limit
no queue-monitor length
default queue-monitor length
- upper_limit queue length in segments that triggers an over-threshold event. Must be higher than lower_limit. The minimum value is 2. The maximum is the largest number of segments which can be queued before packets are dropped, and varies based on factors including flow control state and private buffer settings. Default setting is 512.
- lower_limit lower queue length threshold in segments. When logging is enabled, an over-threshold interface continues generating over-threshold events until all its queues drop back below this length. Must be lower than upper_limit. Values range from 1 to 4806. Default setting is 256.
Guidelines
Queue lengths are measured in 480-byte segments on FM6000 switches, in 208-byte segments on Trident II and Tomahawk switches, in 256-byte segments on Trident 3 switches, and in bytes on Arad and Jericho switches. Default thresholds vary by platform. Both upper and lower thresholds are configurable.
- These commands set the upper and lower queue-length thresholds on
interface ethernet 5 to
300 segments and
200
segments.
switch(config)# interface ethernet 5 switch(config-if-Et5)# queue-monitor length thresholds 300 200 switch(config-if-Et5)#
- These commands reset the upper and lower queue-length thresholds on
interface ethernet 5 to their default
values.
switch(config)# interface ethernet 5 switch(config-if-Et5)# default queue-monitor length thresholds switch(config-if-Et5)#
queue-monitor length threshold (Arad/Jericho/Qumran)
The queue-monitor length threshold command sets the upper queue-length threshold on Arad, Jericho, and Qumran platforms to define “congested” on the command-mode interface for purposes of LANZ reporting. If LANZ is enabled (see queue-monitor length (global configuration mode)), an over-threshold event is generated when one or more queues on the interface exceed the upper threshold, and over-threshold events continue to be generated until all queue lengths on the interface drop below the lower threshold. (To log these events, use the queue-monitor length log command.)
Entering the no queue-monitor length command in interface configuration mode disables LANZ on the interface. Entering either the queue-monitor length threshold command or the default queue-monitor length threshold command enables LANZ on the interface by removing the no queue-monitor length command from the configuration.
The no queue-monitor length threshold and default queue-monitor length threshold commands erase custom queue length threshold settings for the interface.
Command Mode
Interface-Ethernet Configuration
Command Syntax
queue-monitor length threshold upper_limit
no queue-monitor length
default queue-monitor length
Parameters
upper_limit is the queue length in bytes that triggers an over-threshold event. Values range from 40962 to 52428800 bytes. Default setting is 52428800.
Guidelines
On Arad, Jericho, and Qumran platforms, the queue length is measured in bytes. Only the upper threshold is configurable using this command, and it is set at a default value of 52428800 bytes. Both upper and lower thresholds can be set using the queue-monitor length thresholds command.
- These commands set the upper queue-length threshold on interface
ethernet 3/30 to 40000000
bytes.
switch(config)# interface ethernet 3/30 switch(config-if-Et3/30)# queue-monitor length threshold 40000000 switch(config-if-Et3/30)#
- These commands reset the upper queue-length threshold on
interface ethernet 3/30 to its default
value of 52428800
bytes.
switch(config)# interface ethernet 3/30 switch(config-if-Et3/30)# default queue-monitor length threshold switch(config-if-Et3/30)#
queue-monitor length update-interval
The queue-monitor length update-interval command sets the interval between congestion updates when LANZ is in Notifying Mode.
The no queue-monitor length update-interval and default queue-monitor length update-interval commands reset the update interval to its default value of 5000000 (5 seconds).
Command Mode
Global Configuration
Command Syntax
queue-monitor length update-interval interval
no queue-monitor length
default queue-monitor length
Parameters
interval is the time in microseconds between congestion updates. Values range from 80-10000000; default setting is 5000000 (5 seconds).
- This command sets the time between congestion updates to
10
seconds.
switch(config)# queue-monitor length update-interval 10000000 switch(config)#
- This command resets the time between congestion updates to its default value
of 5
seconds.
switch(config)# default queue-monitor length update-interval switch(config)#
queue-monitor streaming
The queue-monitor streaming command places the switch in queue-monitor-streaming configuration mode. Queue-monitor-streaming configuration mode is not a group change mode; running-config is changed immediately upon command entry. The exit command does not affect running-config.
To enable LANZ data streaming on the switch, use the no show queue-monitor streaming clients command.
The exit command returns the switch to global configuration mode.
Command Mode
Global Configuration
Command Syntax
queue-monitor streaming
Example
switch(config)# queue-monitor streaming
switch(config-qm-streaming)#
show queue-monitor length
The show queue-monitor length command displays a report of recent over-threshold events for all interfaces, limited to the last 1000 records, with the newest events listed first.
LANZ must be enabled to use this command (see queue-monitor length (global configuration mode)). If LANZ is disabled, the command displays “queue-monitor is disabled.”
To limit the output to a specified number of seconds and/or records, use the show queue-monitor length limit command.
Command Mode
EXEC
Command Syntax
show queue-monitor length
- This command displays the last 1000 LANZ records
on an Arad or Jericho platform switch in Polling
Mode.
switch> show queue-monitor length Report generated at 2017-03-10 16:04:28 E-End, S-Start, P-Polling, TC-Traffic Class * Max queue length during period of congestion Type Time Intf(TC) Queue Duration Ingress Length Port-set (bytes) (usecs) ---------- ----------------------- ------------- ---------- ----------- -------- P 0:00:04.81587 ago Et15(3) 36126720 4030092 Et1-24 switch>
- This command displays the last 1000 LANZ records
on an Arad or Jericho platform switch in Notifying
Mode.
switch> show queue-monitor length Report generated at 2017-03-10 16:08:58 E-End, S-Start, P-Polling, TC-Traffic Class * Max queue length during period of congestion Type Time Intf(TC) Queue Duration Ingress Length Port-set (bytes) (usecs) ---------- ----------------------- -------------- ---------- --------- -------- E 0:00:03.11739 ago Et24(2) 36126720* 20700629 Et9-20,54/1-4 U 0:00:04.01513 ago Et24(2) 36126720 N/A Et9-20,54/1-4 U 0:00:08.94918 ago Et24(2) 36126720 N/A Et9-20,54/1-4 U 0:00:13.88323 ago Et24(2) 36126720 N/A Et9-20,54/1-4 U 0:00:18.81728 ago Et24(2) 36126720 N/A Et9-20,54/1-4 U 0:00:23.74758 ago Et24(2) 36126720 N/A Et9-20,54/1-4 S 0:00:23.81802 ago Et24(2) 36126720 N/A Et9-20,54/1-4 switch>
- This command displays the last 1000 LANZ records
on an FM6000, Trident II, Trident 3, or Tomahawk platform
switch.
switch> show queue-monitor length Report generated at 2017-03-10 14:57:12 E-End, U-Update, S-Start, TC-Traffic Class Segment size for E, U and S congestion records is 208 bytes * Max queue length during period of congestion + Period of congestion exceeded counter ----------------------------------------------------------------------------------------- Type Time Interface Congestion Queue Time of Max Fabric (TC) duration length Queue length Peer (usecs) (segments) relative to congestion start (usecs) ----------------------------------------------------------------------------------------- E 0:08:04.45352 ago Et23/3(13) 22704753 5743* 0 U 0:08:07.10807 ago Et23/3(13) N/A 5742 N/A U 0:08:12.10808 ago Et23/3(13) N/A 5742 N/A U 0:08:17.10809 ago Et23/3(13) N/A 5742 N/A U 0:08:22.10810 ago Et23/3(13) N/A 5742 N/A U 0:08:27.10810 ago Et23/3(13) N/A 5742 N/A U 0:08:27.11311 ago Et23/3(13) N/A 5741 N/A U 0:08:27.11811 ago Et23/3(13) N/A 5742 N/A U 0:08:27.12312 ago Et23/3(13) N/A 5742 N/A U 0:08:27.12812 ago Et23/3(13) N/A 5743 N/A U 0:08:27.13315 ago Et23/3(13) N/A 5743 N/A U 0:08:27.13816 ago Et23/3(13) N/A 5743 N/A U 0:08:27.14319 ago Et23/3(13) N/A 5742 N/A U 0:08:27.14822 ago Et23/3(13) N/A 5743 N/A U 0:08:27.15322 ago Et23/3(13) N/A 5742 N/A S 0:08:27.15828 ago Et23/3(13) N/A 2064 N/A switch>
show queue-monitor length all
The show queue-monitor length all command displays all available over-threshold event records on the switch including global buffer information, with the most recent events listed first.
LANZ must be enabled to use this command (see queue-monitor length (global configuration mode)). If LANZ is disabled, the command displays “queue-monitor is disabled.”
Command Mode
EXEC
Command Syntax
show queue-monitor length all
Guidelines
This command is available on FM6000 platform switches.
Example
switch> show queue-monitor length all
Report generated at 2013-04-01 13:23:13
E-End, U-Update, S-Start, TC-Traffic Class
GH-High, GU-Update, GL-Low
Segment size for E, U and S congestion records is 480 bytes
Segment size for GL, GU and GH congestion records is 160 bytes
* Max queue length during period of congestion
+ Period of congestion exceeded counter
------------------------------------------------------------------------------
Type Time Intf Congestion Queue Time of Max
(TC) duration length Queue length
(usecs) (segments) relative to
congestion
start
(usecs)
------------------------------------------------------------------------------
E 0:00:00.07567 ago Et22(7) >=71 mins 20* 30us
GU 0:00:00.15325 ago N/A N/A 5695 N/A
U 0:00:00.19859 ago Et4(1) N/A 5693 N/A
GU 0:00:00.95330 ago N/A N/A 5696 N/A
U 0:00:00.99859 ago Et4(1) N/A 5695 N/A
E 0:00:01.28821 ago Et44(1) 9672us 2502* 7294us
S 0:00:01.17591 ago Et22(7) N/A 26 N/A
U 0:00:03.08248 ago Et44(1) N/A 50 N/A
S 12days,8:56:44.07567 ago Et44(1) N/A 20 N/A
switch>
show queue-monitor length cpu
The show queue-monitor length cpu command displays LANZ data for CPU ports on the switch. On Trident II and Tomahawk platforms, the “Interface” column identifies the CPU port by its card slot and chip index.
LANZ must be enabled to use this command (see queue-monitor length (global configuration mode)). If LANZ is disabled, the command displays “queue-monitor is disabled.”
Command Mode
EXEC
Command Syntax
- This command displays LANZ data for CPU ports on a Trident II or Tomahawk
switch.
switch> show queue-monitor length cpu Report generated at 2017-03-10 15:24:11 E-End, U-Update, S-Start, TC-Traffic Class Segment size for E, U and S congestion records is 208 bytes * Max queue length during period of congestion + Period of congestion exceeded counter ---------------------------------------------------------------------------------------- Type Time Interface Congestion Queue Time of Max Fabric (TC) duration length Queue length Peer (usecs) (segments) relative to congestion start (usecs) ---------------------------------------------------------------------------------------- E 0:02:24.19153 ago Cpu0/0(39) 16669811 271* 0 U 0:02:25.81126 ago Cpu0/0(39) N/A 270 N/A U 0:02:30.81126 ago Cpu0/0(39) N/A 270 N/A U 0:02:35.81128 ago Cpu0/0(39) N/A 270 N/A U 0:02:40.81129 ago Cpu0/0(39) N/A 270 N/A U 0:02:40.81630 ago Cpu0/0(39) N/A 270 N/A U 0:02:40.82130 ago Cpu0/0(39) N/A 270 N/A U 0:02:40.82631 ago Cpu0/0(39) N/A 270 N/A U 0:02:40.83132 ago Cpu0/0(39) N/A 270 N/A U 0:02:40.83632 ago Cpu0/0(39) N/A 270 N/A U 0:02:40.84132 ago Cpu0/0(39) N/A 270 N/A U 0:02:40.84633 ago Cpu0/0(39) N/A 270 N/A U 0:02:40.85133 ago Cpu0/0(39) N/A 270 N/A U 0:02:40.85634 ago Cpu0/0(39) N/A 270 N/A S 0:02:40.86134 ago Cpu0/0(39) N/A 271 N/A
- This command displays LANZ data for CPU ports on an FM6000
switch.
switch> show queue-monitor length cpu Report generated at 2017-03-10 15:17:57 E-End, U-Update, S-Start, TC-Traffic Class GH-High, GU-Update, GL-Low Segment size for E, U and S congestion records is 480 bytes Segment size for GL, GU and GH congestion records is 160 bytes * Max queue length during period of congestion + Period of congestion exceeded counter ------------------------------------------------------------------------------- Type Time Intf Congestion Queue Time of Max (TC) duration length Queue length (usecs) (segments) relative to congestion start (usecs) ------------------------------------------------------------------------------- E 0:04:41.17456 ago Cpu(11) 29 1024* 0 S 0:04:41.17459 ago Cpu(11) N/A 1024 N/A E 0:04:41.17463 ago Cpu(11) 15926108 206* 33872 U 0:04:42.09651 ago Cpu(11) N/A 205 N/A U 0:04:47.09710 ago Cpu(11) N/A 205 N/A U 0:04:52.09769 ago Cpu(11) N/A 205 N/A U 0:04:57.09826 ago Cpu(11) N/A 205 N/A
- This command displays LANZ data for CPU ports on an Arad or Jericho switch
in Polling
Mode.
switch> show queue-monitor length cpu Report generated at 2017-03-10 16:04:28 E-End, S-Start, P-Polling, TC-Traffic Class * Max queue length during period of congestion Type Time Intf(TC) Queue Duration Ingress Length Port-set (bytes) (usecs) ---- ------------------ ---------------------- ---------- ---------- -------- P 0:00:31.48474 ago CoppSystemL2Ucast(5) 10486080 20184965 Et1-24
- This command displays LANZ data for CPU ports on an Arad or Jericho switch
in Notifying
Mode.
switch> show queue-monitor length cpu Report generated at 2017-03-10 16:08:58 E-End, S-Start, P-Polling, TC-Traffic Class * Max queue length during period of congestion Type Time Intf(TC) Queue Duration Ingress Length Port-set (bytes) (usecs) ----- ------------------ ----------------------- ----------- ---------- -------- E 0:00:03.11739 ago CoppSystemL2Ucast(5) 10485760* 20700629 Et1-24 U 0:00:04.01513 ago CoppSystemL2Ucast(5) 10485760 N/A Et1-24 U 0:00:08.94918 ago CoppSystemL2Ucast(5) 10485760 N/A Et1-24 U 0:00:13.88323 ago CoppSystemL2Ucast(5) 10485760 N/A Et1-24 U 0:00:18.81728 ago CoppSystemL2Ucast(5) 10485760 N/A Et1-24 U 0:00:23.74758 ago CoppSystemL2Ucast(5) 10485760 N/A Et1-24 S 0:00:23.81802 ago CoppSystemL2Ucast(5) 10485760 N/A Et1-24
show queue-monitor length csv
The show queue-monitor length csv command displays LANZ records in Comma-Separated Value (CSV) format with the oldest samples displayed first.
LANZ must be enabled to use this command (see queue-monitor length (global configuration mode)). If LANZ is disabled, the command displays “queue-monitor is disabled.”
Command Mode
EXEC
Command Syntax
show queue-monitor length csv
Example
switch> show queue-monitor length csv
Report generated at 2016-02-09 22:57:50
Type,Time,Interface,Duration(usecs),Queue-Length,Time-Of-Max-Queue(usecs),Laten
cy(usecs),Tx-Drops
S,2016-02-09 22:53:05.70596,Et29(11),N/A,2590,N/A,60.088,0
U,2016-02-09 22:53:05.71098,Et29(11),N/A,2590,N/A,60.088,216555
U,2016-02-09 22:53:05.71600,Et29(11),N/A,2590,N/A,60.088,215546
switch>
show queue-monitor length drops
The show queue-monitor length drops command displays a report of cumulative transmission drop totals for a range of interfaces or for all interfaces. Output can be limited to a specified number of seconds or records. The most recent events are listed first. By default, the command displays data for all interfaces, limited to the last 1000 records. Newest events are listed first.
LANZ must be enabled to use this command (see queue-monitor length (global configuration mode)). If LANZ is disabled, the command displays “queue-monitor is disabled.”
Command Mode
EXEC
Command Syntax
show queue-monitor length [INTERFACES][FACTOR] drops
- INTERFACES interface type and number for report.
Values include:
- no parameter displays information for all interfaces.
- ethernet e-range e-range formats include a number, number range, or comma-delimited list of numbers and ranges.
- FACTOR limiting parameter for report. Values
include:
- no parameter displays the last 1000 records.
- limit number samples displays the last number records.
- limit number seconds displays all records generated during the last number seconds. Value of number ranges from 1 to 1000000.
Guidelines
This command is available on FM6000, Trident II, Trident 3, and Tomahawk platform switches.
- This command displays the last 10 records of
transmission drop data on an FM6000
switch.
switch> show queue-monitor length limit 10 samples drops Report generated at 2017-03-10 15:25:29 Time Interface TX Drops ----------------------------------------------------------------- 0:12:13.34425 ago Cpu 419 0:12:13.34428 ago Cpu 371 0:12:13.34433 ago Cpu 9913826 0:12:14.26621 ago Cpu 53775812 0:12:19.26680 ago Cpu 53775740 0:12:24.26738 ago Cpu 53775714 0:12:29.26796 ago Cpu 1073 0:12:29.26806 ago Cpu 1068 0:12:29.26816 ago Cpu 1074 0:12:29.26825 ago Cpu 1071
- This command displays the last 10 records of
transmission drop data on a Trident II or Tomahawk
switch.
switch> show queue-monitor length limit 10 samples drops Report generated at 2017-03-10 15:25:34 Time Interface(TC) TX Drops ----------------------------------------------------------------- 0:03:47.06553 ago Cpu0/0(39) 17419818 0:03:48.68527 ago Cpu0/0(39) 53773707 0:03:53.68527 ago Cpu0/0(39) 53773770 0:03:58.68528 ago Cpu0/0(39) 53773763 0:04:03.68529 ago Cpu0/0(39) 53878 0:04:03.69030 ago Cpu0/0(39) 53777 0:04:03.69530 ago Cpu0/0(39) 53917 0:04:03.70031 ago Cpu0/0(39) 53880 0:04:03.70532 ago Cpu0/0(39) 53786 0:04:03.71032 ago Cpu0/0(39) 53782 switch>
show queue-monitor length ethernet
The show queue-monitor length ethernet command displays a report of recent over-threshold events for a range of interfaces, with the newest events listed first.
LANZ must be enabled to use this command (see queue-monitor length (global configuration mode)). If LANZ is disabled, the command displays “queue-monitor is disabled.”
Command Mode
EXEC
Command Syntax
show queue-monitor length ethernet e-range
Parameters
e-range the range of interfaces to be included in the report; formats include a number, number range, or comma-delimited list of numbers and ranges
- This command displays the last 1000 records for
interface ethernet 9 on an FM6000 platform
switch.
switch> show queue-monitor length ethernet 9 Report generated at 2017-03-10 15:33:35 E-End, U-Update, S-Start, TC-Traffic Class GH-High, GU-Update, GL-Low Segment size for E, U and S congestion records is 480 bytes Segment size for GL, GU and GH congestion records is 160 bytes * Max queue length during period of congestion + Period of congestion exceeded counter ------------------------------------------------------------------------------- Type Time Intf Congestion Queue Time of Max (TC) duration length Queue length (usecs) (segments) relative to congestion start (usecs) ------------------------------------------------------------------------------- E 0:00:24.82515 ago Et9(1) 22737967 5623* 26651 U 0:00:27.55841 ago Et9(1) N/A 5620 N/A U 0:00:32.55899 ago Et9(1) N/A 5620 N/A U 0:00:37.55957 ago Et9(1) N/A 5621 N/A U 0:00:42.56015 ago Et9(1) N/A 5621 N/A U 0:00:47.56073 ago Et9(1) N/A 5621 N/A U 0:00:47.56083 ago Et9(1) N/A 5620 N/A U 0:00:47.56093 ago Et9(1) N/A 5620 N/A U 0:00:47.56103 ago Et9(1) N/A 5620 N/A U 0:00:47.56113 ago Et9(1) N/A 5620 N/A switch>
- This command displays the last 1000 records for
interface ethernet 23/3 on a Trident II or
Tomahawk platform
switch.
switch> show queue-monitor length Ethernet 23/3 Report generated at 2017-03-10 15:38:01 E-End, U-Update, S-Start, TC-Traffic Class Segment size for E, U and S congestion records is 208 bytes * Max queue length during period of congestion + Period of congestion exceeded counter ----------------------------------------------------------------------------------------------- Type Time Interface Congestion Queue Time of Max Fabric (TC) duration length Queue length Peer (usecs) (segments) relative to congestion start (usecs) ----------------------------------------------------------------------------------------------- E 0:00:29.49376 ago Et23/3(1) 22388908 7879* 365268 U 0:00:31.83332 ago Et23/3(1) N/A 7877 N/A U 0:00:36.83288 ago Et23/3(1) N/A 7877 N/A U 0:00:41.83289 ago Et23/3(1) N/A 7877 N/A U 0:00:46.83289 ago Et23/3(1) N/A 7877 N/A U 0:00:51.83260 ago Et23/3(1) N/A 7877 N/A U 0:00:51.83760 ago Et23/3(1) N/A 7877 N/A U 0:00:51.84261 ago Et23/3(1) N/A 7878 N/A U 0:00:51.84762 ago Et23/3(1) N/A 7877 N/A U 0:00:51.85263 ago Et23/3(1) N/A 7877 N/A U 0:00:51.85763 ago Et23/3(1) N/A 7877 N/A U 0:00:51.86264 ago Et23/3(1) N/A 7877 N/A U 0:00:51.86765 ago Et23/3(1) N/A 7878 N/A U 0:00:51.87265 ago Et23/3(1) N/A 7877 N/A U 0:00:51.87766 ago Et23/3(1) N/A 7877 N/A S 0:00:51.88267 ago Et23/3(1) N/A 1710 N/A switch>
- This command displays the last 1000 records for
interface ethernet 24 on an Arad or
Jericho platform switch in Polling
Mode.
switch> show queue-monitor length Ethernet 24 Report generated at 2017-03-10 16:04:28 E-End, S-Start, P-Polling, TC-Traffic Class * Max queue length during period of congestion Type Time Intf(TC) Queue Duration Ingress Length Port-set (bytes) (usecs) ---------- ----------------------- --------------- -------------- ----------- -------- P 0:00:04.81587 ago Et24(3) 36126720 4030092 Et1-24 switch>
- This command displays the last 1000 records for
interface ethernet 24 on an Arad or
Jericho platform switch in Notifying
Mode.
switch> show queue-monitor length Ethernet 24 Report generated at 2017-03-10 16:08:58 E-End, S-Start, P-Polling, TC-Traffic Class * Max queue length during period of congestion Type Time Intf(TC) Queue Duration Ingress Length Port-set (bytes) (usecs) ---------- ----------------------- ----------- --------------- -------------- -------- E 0:00:03.11739 ago Et24(2) 36126720* 20700629 Et9-20,54/1-4 U 0:00:04.01513 ago Et24(2) 36126720 N/A Et9-20,54/1-4 U 0:00:08.94918 ago Et24(2) 36126720 N/A Et9-20,54/1-4 U 0:00:13.88323 ago Et24(2) 36126720 N/A Et9-20,54/1-4 U 0:00:18.81728 ago Et24(2) 36126720 N/A Et9-20,54/1-4 U 0:00:23.74758 ago Et24(2) 36126720 N/A Et9-20,54/1-4 S 0:00:23.81802 ago Et24(2) 36126720 N/A Et9-20,54/1-4 switch>
Note: The non-sequential listing of ingress ports shown here is specific to Jericho switches; interfaces on Arad switches are always displayed sequentially.
show queue-monitor length global-buffer
The show queue-monitor length global-buffercommand displays a report of recent high usage, low usage and update events for the global buffer. Newest events are listed first.
LANZ must be enabled to use this command (see queue-monitor length (global configuration mode)). If LANZ is disabled, the command displays “queue-monitor is disabled.”
Command Mode
EXEC
Command Syntax
show queue-monitor length global-buffer
Guidelines
This command is available on FM6000 platform switches.
Example
switch> show queue-monitor length global buffer
Report generated at 2013-04-01 14:30:07
GH-High, GU-Update, GL-Low
Segment size = 160 bytes
* Max buffer usage during period of congestion
-------------------------------------------------------------------------------
-
Type Time Buffer Congestion Time of Max
usage duration buffer usage
(segments) (usecs) relative to
GH (usecs)
-------------------------------------------------------------------------------
-
GE 0:04:04.49547 ago 3121* 20786516 3418
GU 0:04:05.27967 ago 3120 N/A N/A
GU 0:04:10.27968 ago 3120 N/A N/A
GU 0:04:25.28163 ago 3118 N/A N/A
GU 0:04:25.28173 ago 3118 N/A N/A
GU 0:04:25.28182 ago 2963 N/A N/A
GU 0:04:25.28192 ago 1916 N/A N/A
GS 0:04:25.28201 ago 913 N/A N/A
switch>
show queue-monitor length limit
The show queue-monitor length limit command displays a report of recent over-threshold events for a range of interfaces or for all interfaces, limited by a specified number of records.
LANZ must be enabled to use this command (see queue-monitor length (global configuration mode)). If LANZ is disabled, the command displays “queue-monitor is disabled.”
Command Mode
EXEC
Command Syntax
show queue-monitor length limit [INTERFACES] number
- INTERFACES interface type and number for report. Values
include:
- no parameter displays information for all interfaces.
- ethernet e-range e-range formats include a number, number range, or comma-delimited list of numbers and ranges.
- number number of records to display. Values range from 1 to 1000000.
Example
switch># show queue-monitor length ethernet 6-8 limit 100 samples
Report generated at 2010-01-01 12:56:13
Time Interface Queue length (segments, 1 to 512 bytes)
----------------------------------------------------------------------------
0:00:07.43393 ago Et6 1049
0:00:39.22856 ago Et7 2039
1 day, 4:33:23.12345 ago Et6 1077
switch>
show queue-monitor length statistics
The show queue-monitor length statistics command displays LANZ statistics for all interfaces, showing the traffic class and number of recorded congestion events for each interface.
LANZ must be enabled to use this command (see queue-monitor length (global configuration mode)). If LANZ is disabled, the command displays “queue-monitor is disabled.”
Command Mode
EXEC
Command Syntax
show queue-monitor length statistics
Example
switch> show queue-monitor length statistics
Report generated at 2016-02-09 22:59:56
Interface Traffic Class Count
---------------------------------------------------------
Et29 11 1
show queue-monitor length status
The show queue-monitor length status command displays the current LANZ configuration for the switch and for each interface. On certain platforms, the status of global buffer monitoring and per-linecard LANZ mode are displayed.
Command Mode
EXEC Global Configuration
Command Syntax
show queue-monitor length status
Guidelines
On FM6000 platform switches, this command includes status information about global buffer monitoring.
On Arad and Jericho based linecards, if LANZ is globally enabled (using the queue-monitor length (global configuration mode) command), the command displays the monitoring mode per-linecard.
- On Arad-based linecards, LANZ falls back to Polling Mode when SSO redundancy
mode is configured on the card (here, the mode is shown as “polling due to
SSO configured”).
- On Jericho-based linecards, LANZ may run in Polling Mode when many features that use the switch’s statistic capabilities have been configured (here, the mode is shown as “polling due to counters exhausted”).
- This command displays the current LANZ configuration on an FM6000
device.
switch# show queue-monitor length status queue-monitor length enabled queue-monitor length packet sampling is disabled queue-monitor length update interval in micro seconds: 5000000 Global Buffer Monitoring ------------------------ Global buffer monitoring is enabled Segment size in bytes : 160 Total buffers in segments : 49152 High threshold : 16862 Low threshold : 6745 Per-Interface Queue Length Monitoring ------------------------------------- Queue length monitoring is enabled Segment size in bytes : 480 Maximum queue length in segments : 5621 Port thresholds in segments: Port High threshold Low threshold Mirroring Enabled Cpu 512 256 True Et1 512 256 True Et2 512 256 True Et3 512 256 True Et4 512 256 True Et5 512 256 True Et6 512 256 True Et7 512 256 True switch#
- This command displays the current LANZ configuration on a Trident II or
Tomahawk
device.
switch# show queue-monitor length status queue-monitor length enabled queue-monitor length packet sampling is disabled queue-monitor length update interval in micro seconds: 5000000 Per-Interface Queue Length Monitoring ------------------------------------- Queue length monitoring is enabled Segment size in bytes : 208 Maximum queue length in segments : 16382 Port thresholds in segments: Port High threshold Low threshold Cpu 512 256 Et1/1 512 256 Et1/2 512 256 Et1/3 512 256 Et1/4 512 256 Et2/1 512 256 Et2/2 512 256 Et2/3 512 256 switch#
- This command displays the current LANZ configuration on an Arad or Jericho
device.
switch# show queue-monitor length status queue-monitor length enabled queue-monitor length packet sampling is disabled queue-monitor length update interval in micro seconds: 5000000 Per-Interface Queue Length Monitoring ------------------------------------- Queue length monitoring is enabled Queue length monitoring mode is notifying Queue length monitoring status is: Linecard3 polling due to SSO configured Linecard4 polling due to SSO configured Linecard5 polling due to SSO configured Linecard6 polling due to SSO configured Maximum queue length in bytes : 524288000 Port thresholds in bytes: Port High threshold Low threshold Warnings Cpu 65536 32768 Et3/1/1 5242880 2621440 Et3/1/2 5242880 2621440 Et3/1/3 5242880 2621440 Et3/1/4 5242880 2621440 Et3/1/5 5242880 2621440 Et3/1/6 5242880 2621440 Et3/1/7 5242880 2621440 Et3/1/8 5242880 2621440
- This command displays the current LANZ configuration on an Arad or Jericho
device with LANZ disabled globally. Per-linecard LANZ mode status is not
displayed.
switch(config)# show queue-monitor length status queue-monitor length disabled queue-monitor length packet sampling is disabled queue-monitor length update interval in micro seconds: 5000000 Per-Interface Queue Length Monitoring ------------------------------------- Queue length monitoring is disabled Queue length monitoring mode is notifying Maximum queue length in bytes : 524288000 Port thresholds in bytes: Port High threshold Low threshold Warnings Cpu 65536 32768 Et3/1/1 5242880 2621440 Et3/1/2 5242880 2621440 Et3/1/3 5242880 2621440 Et3/1/4 5242880 2621440 Et3/1/5 5242880 2621440 Et3/1/6 5242880 2621440 Et3/1/7 5242880 2621440 Et3/1/8 5242880 2621440
show queue-monitor length tx-latency
The show queue-monitor length tx-latency command displays the latency data of recent LANZ events for a range of interfaces or for all interfaces. Output can be limited to a specified number of seconds or records. The most recent events are listed first. By default, the command displays data for all interfaces, limited to the last 1000 records. Newest events are listed first.
LANZ must be enabled to use this command (see queue-monitor length (global configuration mode)). If LANZ is disabled, the command displays “queue-monitor is disabled.”
Command Mode
EXEC
Command Syntax
show queue-monitor length [INTERFACES][FACTOR] tx-latency
- INTERFACES interface type and number for report.
Values include:
- no parameter displays information for all interfaces.
- ethernet e-range e-range formats include a number, number range, or comma-delimited list of numbers and ranges.
- FACTOR limiting parameter for report. Values
include:
- no parameter displays the last 1000 records.
- limit number samples displays the last number records.
- limit number seconds displays all records generated during the last number seconds. Value of number ranges from 1 to 1000000.
Guidelines
This command is available on FM6000, Trident II, Trident 3, and Tomahawk platform switches.
Example
switch> show queue-monitor length tx-latency
Report generated at 2017-03-10 15:40:02
Time Interface(TC) Tx-Latency (usecs)
-----------------------------------------------------------------
0:02:29.99222 ago Et23/3(1) 724.868
0:02:32.33178 ago Et23/3(1) 724.684
0:02:37.33134 ago Et23/3(1) 724.684
0:02:42.33135 ago Et23/3(1) 724.684
0:02:47.33135 ago Et23/3(1) 724.684
0:02:52.33106 ago Et23/3(1) 730.985
switch>
show queue-monitor streaming clients
The show queue-monitor streaming clients command displays the number of presently connected clients through LANZ streaming, and also displays their host-names. Ensure that both LANZ and LANZ streaming are enabled in order to use this command.
Command Mode
EXEC
Command Syntax
show queue-monitor streaming clients
Example
switch# show queue-monitor streaming clients
Number of clients connected: 3
--------------------------------
172.20.63.161:6565
172.24.17.58:42
172.38.54.142:333
shutdown (queue-monitor-streaming configuration)
The shutdown command disables the streaming of LANZ data to external clients. The no shutdown command enables LANZ data streaming. Streaming is disabled by default.
Command Mode
Queue-Monitor-Streaming Configuration
Command Syntax
shutdown
no shutdown
Example
These commands enable the streaming of LANZ data on the switch.
switch(config)# queue-monitor streaming
switch(config-qm-streaming)# no shutdown
switch(config-qm-streaming)#
tcpdump queue-monitor
The tcpdump queue-monitor command exports congested traffic to a packet capture device or another tool for analysis, or directly to the switch CPU for inspection.
Command Mode
Global Configuration
Command Syntax
tcpdump queue-monitor [file | filecount | filter | lookup-names | max-file-size | packet-count | size | verbose]
-
file output file.
-
certificate: certificate file.
- file: standard file.
- flash: flash file.
- sslkey: sslkey file.
- usb1: usb1 file.
-
- filecount specify the number of output files: 1 to 100.
- filter set the filtering expression to select which packets will be dumped.
- lookup-names enable reverse DNS lookups.
- max-file-size specify the maximum file size by entering 1 to 100 million bytes.
- packet-count specify 1 to 10000 packets to capture.
- size specify the maximum number of bytes to dump per packet with a size of 1 to 65536 bytes.
- verbose enable verbose mode.
Example
switch(config)# tcpdump queue-monitor
tcpdump: WARNING: lanz: no IPv4 address assigned
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on lanz, link-type EN10MB (Ethernet), capture size 65535 bytes
...
0 packets captured
0 packets received by filter
0 packets dropped by kernel
switch(config)#