Description

This article addresses observed high memory utilization in Alpha Block 1 of the KHT memory on a Juniper PTX10001-36MR device running Junos EVO.


The KHT stores hashed representations of filter keys used to match packet headers against configured policies.

Alpha memory blocks are used to distribute and balance these filters across multiple memory slices and replicas to optimize performance and redundancy.

The system uses a make-before-break approach during filter updates, meaning new filters are installed before old ones are removed to ensure uninterrupted packet forwarding.

Symptoms

Memory utilization on Alpha Block 1 reaches 82%, while Alpha Block 0 remains low.


Example output from the affected device:

FPC0:PIC0:NPU0 mem-util-flt-alpha-kht-slice-0-rep-0-block-1-utilization 82
FPC0:PIC0:NPU0 mem-util-flt-alpha-kht-slice-0-rep-1-block-1-utilization 82
FPC0:PIC0:NPU0 mem-util-flt-alpha-1-kht-utilization 82


Lab replication shows balanced utilization initially:

alpha-0-kht-utilization: 41
alpha-1-kht-utilization: 41

After modifying a prefix list and changing a firewall filter term from accept to discard, the imbalance reappears:

alpha-0-kht-utilization: 1
alpha-1-kht-utilization: 82


Solution


This behavior is expected and is a result of the system's make-before-break logic during filter updates:


  • When a filter is updated, the system installs the new version before removing the old one.
  • If Filter A resides on alpha-0 and Filter B on alpha-1, an update to Filter B may place the new version on alpha-0 next to Filter A.
  • This can temporarily cause high utilization on one block, even though the system continues to function correctly.
  • The memory usage typically rebalance automatically over time or during future updates.
  • No immediate action is required unless performance degradation is observed.
  • Monitor memory utilization trends and allow time for the system to rebalance.

You can monitor Alpha memory utilization using commands like:


request pfe execute command "show npu memory info | match kht-utilization" target fpc0


Modification History

2025-10-31 : Article Created