Description |
This article explains the reason behind high CPU utilization on FortiGate Virtual Machines (VMs) when DPDK (Data Plane Development Kit) is enabled. |
Scope |
FortiOS with DPDK support. |
Solution |
On a FortiGate VM with DPDK, all ipsengine processes show ~99% CPU usage and overall CPU usage appears extremely high even during low traffic conditions.
When DPDK is enabled, FortiGate switches from an interrupt-driven model to a poll mode driver (PMD) model for packet processing. In this mode CPU cores are assigned to continuously poll network interfaces for packets. This is expected behavior by design and is optimized for low-latency and high-throughput environments. Because of this:
erbium-kvm70 # get system performance status
90U, 0N, 9S, 1I, 0WA, 0HI, 0SI, 0ST; 9012T, 4380F
In DPDK-enabled mode, FortiGate uses busy polling, which keeps cores active.
Application (ipsengine) (Polls for Packets)
DPDK does not reduce IPS workload, but it removes kernel overhead. As a result, the IPS engine might get hit with more granular traffic and can gets busier than expected. This is why its CPU usage can go high after DPDK is enabled. This is not an unexpected behavior, as stated in Enhancing FortiGate-VM performance with DPDK and vNP offloading - KVM documentation guide.
Use 'diagnose dpdk performance show' in DPDK-enabled VMs. This provides actual DPDK engine-level CPU usage statistics, which are much more accurate for FortiGate VMs using DPDK.
erbium-kvm70 # diagnose dpdk performance show
|
The Fortinet Security Fabric brings together the concepts of convergence and consolidation to provide comprehensive cybersecurity protection for all users, devices, and applications and across all network edges.
Copyright 2025 Fortinet, Inc. All Rights Reserved.