Description

CPU utilisation observed on EX4300 switches.

This KB is written to point to known PRs that resolve the problem of High Usage for EX4300 and EX4300-VC switches.

 

 

Symptoms

If you check the CPU usage on the device that is upgraded to 21.4R3-S5.4 and above; the pfex process is seen to be high:

 


root@router> show version
fpc0:
--------------------------------------------------------------------------
Hostname: router
Model: ex4300-32f
Junos: 21.4R3-S5.4
JUNOS EX Software Suite [21.4R3-S5.4]
*** output shortened ***

root@router> show system processes extensive | except 0.00
last pid: 5999; load averages: 0.45, 1.52, 1.07 up 0+22:17:08 14:33:10
172 processes: 6 running, 142 sleeping, 1 zombie, 23 waiting

Mem: 1109M Active, 72M Inact, 151M Wired, 959M Cache, 112M Buf, 571M Free
Swap:

PID USERNAME PRI NICE SIZE RES STATE TIME WCPU COMMAND
10 root 155 52 0K 16K RUN 996:45 75.88% idle
4407 root 60 0 642M 228M RUN 7:55 15.67% pfex_junos --> this usage is more than expected.
5220 root 61 0 175M 65604K RUN 0:03 1.12% rpd
5802 root 61 0 37516K 23676K RUN 0:04 1.07% snmpd
4407 root -52 -52 642M 228M umtx 7:55 0.98% pfex_junos
4360 root 40 0 73400K 36544K select 0:33 0.88% chassisd

Solution

Root Cause of the problem:

 

  • PFEX consists of two threads: fp_thread and ukern_thread. The fp_thread operates at the highest priority.
  • The watchdog counter is tickled whenever the ukern_thread yields the CPU. Since only one of these threads can run at a time, access is synchronized using a mutex lock, ensuring mutual exclusion.
  • Analysis of the watchdog tracebacks from the two core files indicates that the fp_thread was still making progress during the failure. This suggests that PFEX was not blocked at any specific code path within fp_thread.
  • However, the ukern_thread did not receive any CPU cycles when the issue occurred. A likely explanation is that another higher-priority process or thread monopolized the CPU, preventing ukern_thread from being scheduled.
  • Notably, this issue has been observed only on devices where thread profiling is enabled.
  • The following VTY command can be used to verify whether the device supports thread profiling:
  • vty# show halp-pkt profile-fp-thread

 

  • If the command is supported and returns valid output, thread profiling is enabled on the device.

Solution: Upgrade the device to latest junos:21.4R3-SX version: https://supportportal.juniper.net/s/article/Junos-Software-Versions-Suggested-Releases-to-Consider-and-Evaluate

Modification History

2025-11-28 : Article Created

2026-08-02: Added additional information on Symptoms and solution.