Back to Blog
CCNP Security21 min read

Cisco Secure Firewall High CPU Troubleshooting Guide

A
Admin
March 26, 2026
Firewall High CPUFTD TroubleshootingCisco Secure FirewallCCNP SecurityLINA Datapath

Cisco Secure Firewall High CPU Troubleshooting

Introduction

Picture this scenario: your monitoring dashboard lights up, users flood the help desk with connectivity complaints, and management sessions to your firewall start timing out. You check the device and discover CPU utilization sitting at 100 percent across all cores. Firewall high CPU is one of the most disruptive conditions a network security engineer can face, and if you do not approach it methodically, you risk chasing symptoms instead of the actual root cause.

Cisco Secure Firewall (formerly Firepower Threat Defense, or FTD) is a powerful platform that combines traditional stateful inspection with next-generation features such as application visibility, intrusion prevention, URL filtering, and SSL decryption. All of that processing power comes at a cost: CPU cycles. When the firewall's CPU is overloaded, the consequences are immediate and severe -- packet drops, increased latency, unresponsive management interfaces, and ultimately service disruption for your users.

In this article, we will walk through a structured troubleshooting methodology for Cisco Secure Firewall CPU issues. You will learn how to identify whether the problem lives in the LINA datapath, the control point, or the Snort inspection engine. We will cover the essential CLI commands, explain how to read health monitoring graphs, demonstrate how to calculate real-world throughput against platform capacity, and work through a detailed case study on an FPR4145 running in multi-instance mode. Whether you are preparing for the CCNP Security exam or managing production firewalls, this guide gives you a repeatable, expert-level process for FTD troubleshooting.

What Causes Firewall High CPU on Cisco Secure Firewall?

Before diving into commands and procedures, it is important to understand the common triggers and known symptoms of high CPU on Cisco Secure Firewall. At a high level, there are three broad categories of root causes:

  • Oversubscription -- The volume of traffic exceeds what the platform or instance can handle given its allocated resources.
  • Misconfigurations and bad practices -- Suboptimal rule design, excessive logging, unnecessary features, or poorly structured access control policies.
  • Defects -- Software bugs that cause unexpected CPU consumption in specific conditions.

When any of these triggers push CPU utilization beyond normal thresholds, the firewall exhibits well-known symptoms:

SymptomDescription
Packet DropsThe firewall cannot process packets fast enough, leading to dropped connections
Increased LatencyQueued packets wait longer for processing, causing noticeable delays
Unresponsive ManagementSSH, HTTPS, and SNMP sessions become slow or time out entirely
Service DisruptionEnd users experience application failures and connectivity loss

Understanding this cause-and-effect relationship is the first step. The second step is knowing exactly where in the firewall architecture the CPU pressure originates.

Understanding the Firewall Architecture: LINA vs. Snort

Cisco Secure Firewall processes traffic through two distinct engines, each responsible for different layers of the network stack. Recognizing which engine is consuming CPU is critical because the troubleshooting steps differ significantly between them.

LINA (Datapath)

The LINA engine handles Layer 2 through Layer 4 functionalities. This includes:

  • ARP processing
  • Routing decisions
  • Layer 3 and Layer 4 access control lists (ACLs)
  • Network Address Translation (NAT)
  • TCP state checking
  • Site-to-Site and Remote Access VPN

LINA also provides basic Layer 7 inspection capabilities. When people refer to the "datapath" on a Secure Firewall, they are talking about LINA.

Pro Tip: LINA CPU troubleshooting methodology is also applicable to ASA high CPU troubleshooting scenarios. If you have experience with the ASA platform, you can apply the same techniques.

Snort

The Snort engine handles Layer 7 functionalities and is where the "next-generation" features live:

  • Application identification and control
  • URL filtering
  • Intrusion Prevention System (IPS)
  • SSL/TLS decryption
  • Geolocation
  • User awareness
  • Security Intelligence

The Snort engine in current software versions is based on Snort 3, although the same troubleshooting methodology applies if you are running Snort 2.

Key Terminology

Throughout this guide, you will encounter several abbreviated terms. Here is a quick reference:

AbbreviationMeaning
TPThroughput
DPDatapath
CPControl Point
OGSObject Group Search
IOOInterface Object Optimization

How to Check CPU Usage: The Starting Flow Chart

When you suspect firewall high CPU, you need a systematic approach. The following decision tree provides a structured method to identify exactly where the problem lies.

Step 1: Is LINA CPU High?

Start with the most fundamental command:

firepower# show cpu usage

This command reports CPU utilization over 5-second, 1-minute, and 5-minute intervals. If this shows elevated values, proceed to the next step. If CPU is within normal ranges, then CPU is not the root cause of the reported issues and you should investigate elsewhere.

Step 2: Is the Problem in Datapath or Control Point?

firepower# show process cpu-usage sorted non-zero

This command breaks down CPU usage by individual process. Look at whether the high-consuming processes are DATAPATH threads or control-plane processes. This distinction determines which troubleshooting branch to follow.

Step 3: Is Snort CPU High?

firepower# show snort cpu

If Snort is the culprit, determine whether all Snort cores are elevated or just a subset. You can get per-thread visibility using the Linux-level command:

admin@firepower:~$ top -H

Step 4: Confirm with FMC Health Monitoring

Always cross-reference your CLI findings with the Firewall Management Center (FMC) health monitoring dashboard at System > Health > Monitor. The health monitoring interface provides historical graphs that reveal patterns CLI snapshots cannot show.

Pro Tip: If the CPU tab is not visible in the FMC health dashboard, you may need to enable it under System > Health > Policy.

Using FMC Health Monitoring for Firewall High CPU Analysis

The FMC health monitoring dashboard is an indispensable tool for CPU troubleshooting because it provides time-series data that shows patterns. A single CLI snapshot tells you what is happening right now; FMC graphs tell you when the problem started, how it correlates with traffic patterns, and whether the condition is sustained or intermittent.

What the CPU Dashboard Shows

The FMC CPU dashboard breaks down utilization into three categories, and critically, it shows the number of cores allocated to each:

CategoryDescriptionExample Allocation
Data Path (LINA)Cores dedicated to packet forwarding and L2-L4 processing3 Cores, Avg 18%
SnortCores dedicated to L7 inspection3 Cores, Avg 9%
SystemCores for management and OS-level tasks2 Cores, Avg 29%

The dashboard provides separate views for CP/DP utilization and Snort per-core utilization. This per-core view is especially valuable because it can reveal situations where one or two Snort cores are overloaded while others are idle -- a sign of unbalanced traffic distribution rather than overall capacity issues.

Reading Health Monitoring Graphs

When analyzing FMC graphs for a high CPU investigation, you should correlate multiple data sets:

  1. CPU utilization graph -- Identify when CPU spikes occur and whether they follow a pattern (e.g., business hours only)
  2. Connection count graph -- Determine if connection volume increases alongside CPU usage
  3. Throughput graph -- Check whether bandwidth increases correlate with CPU spikes

In many cases, you will find that CPU follows a daily pattern, climbing during business hours and dropping overnight. This is normal behavior and suggests traffic-driven CPU consumption. The key question is whether the peak utilization exceeds the platform's capacity.

How to Check CPU Core Allocation

Understanding how many cores are allocated to each engine is essential for capacity planning and troubleshooting. On Cisco Secure Firewall, the pmtool utility reveals the core allocation:

admin@firepower:~$ sudo pmtool show affinity

This command produces output showing exactly which CPU cores are assigned to LINA (datapath), Snort (detection engines), and system processes. Here is an example of what this output looks like:

Affinity Status
System CPU Affinity: 0-1 (desired: 0-1)

Process CPU Affinity:
CPU 0: snort3 (0-1, desired: 0-1,5-7)
CPU 1: snort3 (0-1, desired: 0-1,5-7)
CPU 2: lina (2-4, desired: 2-4)
CPU 3: lina (2-4, desired: 2-4)
CPU 4: lina (2-4, desired: 2-4)
CPU 5: snort3 (0-1, desired: 0-1,5-7)
CPU 6: snort3 (0-1, desired: 0-1,5-7)
CPU 7: snort3 (0-1, desired: 0-1,5-7)

Process Affinity:
lina (desired: 2-4, actual: 2-4)

In this example:

  • Snort is allocated CPUs 0, 1, 5, 6, and 7 (5 cores)
  • LINA is allocated CPUs 2, 3, and 4 (3 cores)
  • System uses CPUs 0 and 1 (shared with Snort)

Knowing these allocations becomes critical when running multi-instance deployments, where the total platform cores are divided among multiple FTD instances. Each instance receives only a fraction of the total platform resources.

Pro Tip: The show cpu detailed command provides CPU percentage on a per-core basis, breaking it down into DP% and CP% for each core. Use this when you need more granular visibility than the aggregate show cpu usage provides.

LINA Datapath High CPU: The Troubleshooting Methodology

When show process cpu-usage sorted non-zero reveals that DATAPATH processes are consuming most of the CPU, you need to follow a specific troubleshooting methodology. The LINA CPU investigation follows a five-step process.

Step 1: Identify the Problem

First, confirm which LINA processes are consuming CPU and distinguish between datapath and control point:

firepower# show cpu usage
CPU utilization for 5 seconds = 100%; 1 minute: 100%; 5 minutes: 100%
firepower# show process cpu-usage sorted non-zero

In a datapath-driven high CPU scenario, you will see multiple DATAPATH threads consuming near 100 percent each. The output will look similar to this:

PC Thread 5Sec 1Min 5Min Process
- - 100% 100.0% 100.0% DATAPATH-9-6828
- - 100% 99.9% 99.8% DATAPATH-7-6826
- - 99.9% 99.8% 99.8% DATAPATH-1-6820
- - 99.8% 99.9% 99.9% DATAPATH-4-6823
- - 99.7% 99.9% 99.8% DATAPATH-2-6821
- - 99.7% 99.8% 99.8% DATAPATH-6-6825
- - 99.0% 99.5% 99.5% DATAPATH-3-6822
- - 98.8% 99.5% 99.5% DATAPATH-8-6827
- - 97.7% 97.6% 96.8% DATAPATH-0-6819
- - 97.4% 97.5% 96.7% DATAPATH-5-6824

When every DATAPATH thread is at or near 100 percent, the problem is clearly in the data plane. Notice in this example that control-plane processes like ci/console, ARP Thread, and update_cpu_usage consume minimal CPU by comparison.

Step 2: Check for Oversubscription

Determine whether the firewall is simply receiving more traffic than it can handle. This involves:

  • Calculating actual throughput from CLI
  • Comparing against the platform datasheet capacity
  • Factoring in packet size (smaller packets mean more processing per megabit)

Step 3: Check Connections

Analyze connection patterns to identify:

  • Top talkers and elephant flows
  • Connection rates and totals
  • Whether connection counts correlate with CPU usage

Step 4: Extra Checks

Investigate additional potential causes:

  • ASP drops
  • Traffic loops
  • Layer 7 inspections sending excessive traffic to Snort
  • DoS or DDoS attack traffic

Step 5: Control Point Checks

If control-point processes are high rather than datapath, investigate:

  • Excessive logging
  • ACL compilation (particularly on versions prior to 7.4)
  • Excessive SNMP polling or traps
  • ARP-related issues
  • VPN-related processing

If none of these steps reveal the root cause, the issue may be related to a software defect, and opening a TAC case is recommended.

How to Calculate Real Throughput and Compare Against Platform Capacity

One of the most important skills in firewall high CPU troubleshooting is determining whether the device is oversubscribed. This requires calculating the actual throughput passing through the firewall and comparing it against the platform's rated capacity.

Calculating Throughput from CLI

Use the show traffic command to gather per-interface statistics:

firepower# show traffic
Outside:
  received (in 1551382.754 secs):
    202917629910 packets  227769205918440 bytes
    130000 pkts/sec       146816002 bytes/sec
  transmitted (in 1551382.754 secs):
    154625525290 packets  85187660910838 bytes
    99002 pkts/sec        54910000 bytes/sec
  1 minute input rate 27651 pkts/sec, 28951571 bytes/sec
  1 minute output rate 13755 pkts/sec, 2995746 bytes/sec
  1 minute drop rate, 531 pkts/sec

Inside:
  received (in 1551383.234 secs):
    317381008069 packets  188655585405840 bytes
    204000 pkts/sec       121604001 bytes/sec
  transmitted (in 1551383.234 secs):
    316293619576 packets  257917899740238 bytes
    203000 pkts/sec       166250002 bytes/sec
  1 minute input rate 22456 pkts/sec, 13698739 bytes/sec
  1 minute output rate 17742 pkts/sec, 9533586 bytes/sec
  1 minute drop rate, 931 pkts/sec

Critical rule: Calculate total throughput by adding the 1-minute input bytes/sec values from each data interface. Do not add input and output values together, because that would count the same traffic twice -- a packet that arrives on the Outside interface and exits on the Inside interface is one flow, not two.

In this example:

  • Outside input: 28,951,571 bytes/sec x 8 = 231,612,568 bits/sec = approximately 231 Mbps
  • Inside input: 13,698,739 bytes/sec x 8 = 109,589,912 bits/sec = approximately 109 Mbps
  • Total throughput: approximately 340 Mbps

Understanding Packet Size Impact

Packet size has a dramatic impact on CPU utilization. Smaller packets require the firewall to process more packet headers per megabit of throughput, consuming more CPU cycles. You can calculate the average packet size from the show traffic output by dividing bytes/sec by pkts/sec:

  • Outside: 28,951,571 / 27,651 = 1,047 bytes/packet
  • Inside: 13,698,739 / 22,456 = 610 bytes/packet

To illustrate why this matters, consider that 1 MB of traffic comprised of 1,518-byte packets requires processing approximately 658 packets, while the same 1 MB of traffic at 400 bytes per packet requires approximately 2,500 packets -- nearly four times the processing overhead.

Pro Tip: When comparing observed throughput against datasheet numbers, the datasheet values are typically measured at 1024-byte packet sizes. If your average packet size is different, extrapolate accordingly. For example, if you observe 1.7 Gbps with an average packet size of 600 bytes, the equivalent throughput at 1024-byte packets would be: 1.7 x 1024 / 600 = 2.9 Gbps. Always normalize to the same packet size when comparing.

Calculating Performance for Multi-Instance Deployments

Multi-instance mode allows multiple FTD instances to run on a single hardware platform, each with its own allocated share of CPU, memory, and interfaces. When troubleshooting firewall high CPU in a multi-instance environment, you cannot compare throughput directly against the native platform datasheet numbers. Instead, you must calculate the proportional capacity based on the cores allocated to each instance.

The Performance Scaling Formula

For Snort throughput capacity:

Max Snort TP (1024B) = (Max_TP / Snort_Core_Count_Native) x Snort_Cores_Allocated_Instance

For datapath throughput capacity:

Max DP TP (1024B) = (Max_TP / DP_Core_Count_Native) x DP_Cores_Allocated_Instance

Worked Example: FPR4145 with 26-Core Instance

Consider an FPR4145 platform where a resource profile assigns 26 cores to an FTD instance. The platform datasheet shows 53 Gbps for FW+AVC throughput.

Snort capacity calculation:

  • Max_TP = 53 Gbps (datasheet value)
  • Snort_Core_Count_Native = 52 Snort cores (native device)
  • Snort_Cores_Allocated_Instance = 14 Snort cores (assigned to this instance)

Maximum Snort TP = (53 / 52) x 14 = approximately 14.26 Gbps

Datapath capacity calculation:

  • Max_TP = 53 Gbps (datasheet value)
  • DP_Core_Count_Native = 32 Data Plane cores (native device)
  • DP_Cores_Allocated_Instance = 10 Data Plane cores (assigned to this instance)

Maximum Data Plane TP = (53 / 32) x 10 = approximately 16.56 Gbps

In the case study, observed throughput was approximately 2.9 Gbps (after packet-size normalization), while the instance's datapath capacity was approximately 16 Gbps. The instance was clearly not oversubscribed from a throughput perspective, meaning the investigation needed to continue down other branches of the troubleshooting tree.

MetricValue
PlatformFPR4145
SoftwareFTD 7.2
Deployment ModeMulti-Instance
Instance Core Allocation26 cores
Observed Throughput~2.9 Gbps (normalized)
DP Capacity~16.56 Gbps
Snort Capacity~14.26 Gbps
Oversubscribed?No

Case Study: LINA on Fire -- FPR4145 at 100% CPU

Let us walk through a real-world scenario that demonstrates this methodology in practice. This case study involves a production environment with the following characteristics:

  • Hardware: FPR4145
  • Software: FTD 7.2
  • Deployment: Multi-Instance
  • Firewall Mode: Routed Mode
  • Redundancy: High Availability

Users reported general connectivity issues that had been ongoing for some time but had recently worsened.

Initial Assessment

The first command confirmed the severity:

firepower# show cpu usage
CPU utilization for 5 seconds = 100%; 1 minute: 100%; 5 minutes: 100%

CPU was pinned at 100 percent across all intervals. The next step was identifying which processes were responsible:

firepower# show process cpu-usage sorted non-zero
Hardware: FPR4K-SM-44S
Cisco Adaptive Security Appliance Software Version 9.18(4)210

The output revealed that all ten DATAPATH threads were consuming between 97 and 100 percent of their respective cores. The only other notable processes were ci/console at 3.7 percent and ARP Thread at 0.5 percent. This confirmed the problem was squarely in the datapath, not the control point or Snort.

Health Monitoring Analysis

FMC health monitoring graphs revealed several important patterns:

  1. LINA CPU (shown in blue) was significantly elevated, while Snort CPU (shown in purple) remained unaffected. This ruled out Snort-related causes.

  2. Connection counts increased alongside CPU utilization, but peak numbers of approximately 80,000 connections were not high for this platform -- certainly not enough to explain 100 percent CPU by volume alone. At peak, approximately 172,000 connections were observed, which is well within the platform's connection table capacity.

  3. Throughput graphs showed approximately 3 Gbps eight to ten days prior, but in the most recent four days, throughput had not exceeded 1.7 Gbps.

  4. A 10-day graph clearly showed that CPU spiked during business hours and dropped outside of them, confirming the issue was traffic-pattern driven.

Throughput and Packet Size Analysis

The average input packet size calculated from show traffic was approximately 600 bytes per packet. Since the datasheet throughput values are measured at 1024-byte packets, the observed 1.7 Gbps needed to be normalized:

1.7 x 1024 / 600 = 2.9 Gbps (equivalent throughput at 1024-byte packet size)

With 10 datapath cores allocated to the instance, the maximum datapath capacity was approximately 16.56 Gbps. The observed 2.9 Gbps was well below this ceiling, confirming the firewall was not oversubscribed from a raw throughput perspective.

What This Means

Since oversubscription was ruled out, the investigation would need to continue to the remaining branches:

  • Connection analysis -- Investigating top talkers, elephant flows, and connection patterns
  • ASP drops -- Checking for accelerated security path drops that could indicate loops or malformed traffic
  • Traffic loops -- Routing misconfigurations causing packets to traverse the firewall multiple times
  • Layer 7 inspection overhead -- Determining if specific inspection policies are causing disproportionate datapath load
  • DoS/DDoS -- Evaluating whether attack traffic is consuming resources
  • CPU profiling -- Using captures and debugs to pinpoint the exact function consuming CPU cycles

This case study demonstrates why a methodical approach is essential. Without calculating actual throughput against platform capacity, you might waste hours investigating oversubscription when the real cause lies elsewhere.

Day-Zero Information: Establishing Your Baseline

Effective firewall high CPU troubleshooting does not start when the alarm fires. It starts on Day Zero, when you first deploy the device. The concept of Day-Zero Information encompasses three critical elements:

1. Device Data

Document the hardware platform, software version, deployment mode (native vs. multi-instance), firewall mode (routed vs. transparent), and high availability configuration. This information determines which datasheet numbers to reference and which troubleshooting steps apply.

2. Throughput Baseline

Capture baseline throughput measurements during normal operations. Knowing what "normal" looks like makes it much easier to identify anomalies when issues arise. Record:

  • Typical traffic volume by time of day
  • Average packet sizes per interface
  • Connection counts during peak and off-peak hours

3. CPU Baseline

Establish what normal CPU utilization looks like for your specific deployment. A firewall running at 40 percent CPU during business hours is not necessarily a problem -- but if it normally runs at 15 percent and suddenly jumps to 40 percent, something has changed.

Pro Tip: The FMC health monitoring system retains historical data. Use it to compare current behavior against historical norms. The ability to overlay current metrics against a 10-day or 30-day history is invaluable for identifying when a change occurred.

Control Point High CPU: Common Causes

When show process cpu-usage sorted non-zero reveals that control-point processes are the primary consumers rather than DATAPATH threads, the troubleshooting focus shifts to a different set of potential causes:

CauseDescription
Excessive LoggingHigh-volume syslog or event logging can consume significant control-plane CPU
ACL CompilationOn software versions prior to 7.4, access control list compilation can spike CPU during policy deployments
ARP-Related IssuesExcessive ARP processing, possibly due to large broadcast domains or misconfigurations
Excessive SNMP Polling/TrapsOverly aggressive SNMP polling intervals or a high volume of trap generation
VPN-Related ProcessingCertificate operations, tunnel negotiations, or large numbers of concurrent tunnel setups

Each of these causes has distinct signatures in the show process cpu-usage output. For example, excessive logging will show elevated CPU in syslog-related processes, while SNMP issues will show the SNMP process consuming disproportionate cycles.

When troubleshooting control-point CPU consumption, the cpu profile feature can be used to sample which functions are consuming the most cycles. However, captures and debugs should be used judiciously on a production device, as they themselves consume CPU and can worsen the condition.

Snort High CPU: How to Investigate

When the show snort cpu command indicates elevated Snort utilization, the troubleshooting approach depends on whether all Snort cores are affected or only a subset.

All Snort Cores High

When every Snort core is elevated, the problem is typically related to:

  • Overall traffic volume exceeding Snort inspection capacity
  • Overly broad or complex inspection policies
  • SSL decryption processing on a large percentage of flows
  • IPS rules matching on high-volume traffic patterns

Use the top -H command at the Linux shell to see per-thread CPU consumption and confirm which Snort threads are affected.

One or a Few Snort Cores High

When only specific Snort cores are elevated, the issue is more likely related to traffic distribution. Snort uses a load-balancing mechanism to distribute flows across cores, and certain traffic patterns can result in uneven distribution -- a few large flows landing on the same core, for example.

The FMC health monitoring per-core view is especially useful here, as it shows the utilization of each individual Snort core over time.

Pro Tip: The FMC CPU dashboard shows the number of cores allocated to Data Path, Snort, and System. Always reference these numbers when evaluating whether utilization percentages represent a real problem or are expected given the hardware allocation.

Frequently Asked Questions

What is the first command to run when troubleshooting firewall high CPU?

The first command should be show cpu usage, which provides a quick snapshot of overall CPU utilization across 5-second, 1-minute, and 5-minute intervals. If this shows high values, proceed to show process cpu-usage sorted non-zero to identify which specific processes are consuming the CPU. This two-step approach immediately tells you whether the problem is in the datapath, control point, or elsewhere.

How do I determine if my Cisco Secure Firewall is oversubscribed?

Calculate your actual throughput by adding the 1-minute input bytes/sec values from each data interface (using show traffic), then convert to bits per second. Normalize the result to 1024-byte packet size by multiplying your observed throughput by 1024 and dividing by your average packet size. Compare this normalized value against the platform datasheet. For multi-instance deployments, scale the datasheet numbers proportionally based on the cores allocated to your instance using the formula: Max Instance TP = (Datasheet TP / Native Core Count) x Instance Cores.

Does LINA CPU troubleshooting apply to Cisco ASA as well?

Yes. LINA CPU troubleshooting methodology is directly applicable to ASA high CPU troubleshooting scenarios. The LINA engine on Secure Firewall (FTD) shares its heritage with ASA, and the same CLI commands and investigation techniques apply to both platforms. Commands like show cpu usage, show process cpu-usage sorted non-zero, and show traffic work identically on ASA.

Why should I avoid adding input and output bytes when calculating throughput?

Because a single packet traversing the firewall is counted once on the input side of the ingress interface and once on the output side of the egress interface. If you add both values, you are counting the same traffic twice, which gives you an artificially inflated throughput number. Always sum only the input values across your data interfaces to get the true volume of traffic being processed.

How can I check which CPU cores are assigned to LINA, Snort, and System?

Use the command sudo pmtool show affinity from the FTD Linux shell. This displays the core allocation map, showing exactly which CPU numbers are assigned to Snort (detection engines), LINA (datapath), and system processes. This is especially important in multi-instance deployments where cores are partitioned across multiple FTD instances.

What should I do if CPU is high but traffic volume is within platform capacity?

If throughput is well within the platform's rated capacity, the issue is not oversubscription. Continue investigating by checking connection patterns (top talkers and elephant flows), ASP drops, potential traffic loops, DoS/DDoS traffic, and Layer 7 inspection overhead. For control-point CPU issues, investigate excessive logging, ACL compilation, SNMP polling, ARP issues, and VPN-related processing. If the root cause remains elusive, CPU profiling or opening a TAC case may be necessary.

Conclusion

Troubleshooting firewall high CPU on Cisco Secure Firewall demands a structured, methodical approach. Jumping to conclusions or applying random fixes wastes time and can make the situation worse. The key takeaways from this guide are:

  1. Start with the flow chart. Always begin with show cpu usage and then determine whether the problem is in the LINA datapath, control point, or Snort engine before diving deeper.

  2. Understand the architecture. LINA handles L2-L4 processing while Snort handles L7 features. The troubleshooting steps are different for each engine, and misidentifying the source leads you down the wrong path.

  3. Use FMC Health Monitoring. CLI commands give you snapshots; health monitoring graphs give you trends and correlations. The ability to see CPU, connections, and throughput side by side over a 10-day window is invaluable.

  4. Calculate, do not assume. Always calculate actual throughput from show traffic, normalize for packet size, and compare against platform capacity. For multi-instance deployments, scale the datasheet numbers using the core allocation formula.

  5. Establish Day-Zero baselines. Document your normal operating parameters when the device is healthy so you have a point of comparison when issues arise.

  6. Follow the five-step LINA methodology. Identify the problem, check for oversubscription, analyze connections, perform extra checks (ASP drops, loops, DoS), and investigate control-point processes.

Mastering these techniques is essential for anyone managing Cisco Secure Firewalls in production environments and for those preparing for CCNP Security certification. The ability to quickly and accurately diagnose high CPU conditions separates reactive troubleshooting from true operational expertise.

To deepen your knowledge of Cisco Secure Firewall and CCNP Security topics, explore the training resources available at NHPREP. Our courses cover firewall platforms, security architectures, and advanced troubleshooting techniques that build on the methodology described in this article.