Loading...

CPU FortiGate Tăng Cao — Nguyên Nhân, Cách Kiểm Tra & Khắc Phục

CPU cao trên FortiGate là một trong những vấn đề phổ biến nhất khi vận hành firewall Fortinet. Triệu chứng thường gặp: mạng chậm không rõ nguyên nhân, VPN drop bất thường, latency tăng, hoặc FortiGate báo cảnh báo CPU cao trên dashboard.

Bài viết này tổng hợp đầy đủ nguyên nhân, cách xác định đúng process gây cao CPU, và giải pháp khắc phục — dựa hoàn toàn trên tài liệu chính thức từ Fortinet Documentation LibraryFortinet Community Knowledge Base.

Lưu ý: CPU cao không phải lúc nào cũng là sự cố. FortiGate cần CPU để xử lý các tính năng bảo mật — mức 70–80% trong giờ cao điểm có thể bình thường nếu traffic hợp lệ. Vấn đề thực sự xảy ra khi CPU cao liên tục và ảnh hưởng đến kết nối, dịch vụ.

Tổng hợp các nguyên nhân khiến CPU Firewall FortiGate tăng cao và cách khắc phục.



1. Cách kiểm tra CPU và xác định process đang chiếm tài nguyên

Kiểm tra qua GUI

Vào Dashboard > Status → xem widget CPU để theo dõi mức sử dụng CPU theo thời gian thực.

Kiểm tra chi tiết qua CLI

Để biết chính xác process nào đang chiếm CPU:

diagnose sys top

hoặc xem tất cả thread:

diagnose sys top-all

Kiểm tra hiệu năng tổng thể:

get system performance status

Kiểm tra session hiện tại:

diagnose sys session stat

Tham khảo: Technical Tip: Debugs for troubleshooting high CPU Issues — Fortinet Community

Các process thường chiếm CPU cao:

ProcessChức năngPhiên bản
ipsengine IPS engine — xử lý flow-based inspection Tất cả
wad WAD daemon — xử lý proxy-based inspection Tất cả
scanunitd Antivirus / content scanning Tất cả
sslvpnd SSL VPN daemon Tất cả
miglogd Logging daemon Tất cả
forticron Scheduled tasks (update, backup) Tất cả
httpsd HTTPS, REST API services và administrative web GUI Tất cả
http_authd Administrator web authentication — tách riêng khỏi httpsd FortiOS 7.6.4 trở lên
node GUI management, WebSockets, Web CLI, report Tất cả
cmdbsvr Configuration database server Tất cả
authd User authentication (FSSO, LDAP, RADIUS...) Tất cả

Tham khảo: Technical Tip: Short list of processes on the FortiGate — Fortinet Community · Technical Tip: In FortiOS 7.6.4 and later, administrator web authentication is handled by the http_authd process — Fortinet Community


2. Nguyên nhân và cách khắc phục

Nguyên nhân 1 — Quá nhiều tính năng bật đồng thời

Theo Fortinet Administration Guide: vấn đề kết nối xảy ra khi tài nguyên CPU FortiGate bị quá tải do triển khai quá nhiều tính năng FortiOS cùng lúc.

Khắc phục:

  • Vào System > Feature Visibility — tắt các tính năng không cần thiết
  • Đánh giá lại security profile trong firewall policy: có thực sự cần bật đồng thời Antivirus + IPS + Application Control + Web Filter + DNS Filter cho tất cả policy không?
  • Cân nhắc chuyển một số policy sang flow-based inspection thay vì proxy-based để giảm tải WAD

Tham khảo: Troubleshooting high CPU usage — FortiOS 7.6 Administration Guide


Nguyên nhân 2 — IPS Engine (ipsengine) chiếm CPU cao

IPS engine xử lý toàn bộ traffic flow-based inspection. Khi nghi ngờ IPS engine gây cao CPU, đưa IPS vào bypass mode để kiểm tra:

diagnose test application ipsmonitor 5

Lệnh trên đưa IPS vào bypass mode — IPS vẫn chạy nhưng không inspect traffic. Nếu CPU giảm rõ rệt, nguyên nhân là khối lượng traffic inspect quá cao so với khả năng của model. Tắt bypass bằng cùng lệnh:

diagnose test application ipsmonitor 5

Nếu IPS process không phản hồi hoặc tiếp tục chiếm CPU bất thường sau khi bypass, restart toàn bộ IPS engine:

diagnose test application ipsmonitor 98  <- Dừng tất cả IPS engine
diagnose test application ipsmonitor 97  <- Khởi động lại IPS engine

Lưu ý: Dừng IPS engine sẽ ngừng toàn bộ IPS inspection ngay lập tức. Chỉ thực hiện trong giờ bảo trì hoặc khi xử lý sự cố khẩn cấp, sau đó phải restart lại để khôi phục chức năng bảo mật.

Khắc phục dài hạn:

  • Bật hardware offloading (NP processor) để chuyển phần lớn traffic flow ra khỏi CPU phần mềm
  • Xem xét giới hạn IPS signature database từ extended xuống regular nếu không cần thiết

Tham khảo: Technical Tip: How to verify if high CPU is caused by the IPS engine process — Fortinet Community


Nguyên nhân 3 — WAD Daemon chiếm CPU cao

WAD (Web Application Daemon) xử lý toàn bộ proxy-based inspection: SSL Deep Inspection, Web Filter proxy mode, explicit proxy. Mỗi kết nối được proxy tạo ra hai half-session — tốn CPU và memory nhiều hơn đáng kể so với flow-based.

Kiểm tra WAD process:

diagnose test application wad 2

Khắc phục:

  • Chuyển từ proxy-based sang flow-based inspection cho các policy không bắt buộc cần proxy
  • Nếu đang bật SSL Deep Inspection toàn bộ — đánh giá lại, chỉ áp dụng cho traffic thực sự cần thiết
  • Tránh chạy real-time debug WAD trong giờ cao điểm

Tham khảo: Technical Tip: Reduce memory and CPU usage by limiting WAD processes — Fortinet Community


Nguyên nhân 4 — Traffic volume vượt ngưỡng phần cứng / Dấu hiệu tấn công

Thiết bị đang xử lý nhiều traffic hơn thông số thiết kế, hoặc đang bị tấn công flood (SYN flood, UDP flood...) khiến số session tăng đột biến.

Kiểm tra:

get system performance status
diagnose sys session stat

Vào FortiView > Sources hoặc FortiView > Threats để xác định nguồn traffic bất thường.

Khắc phục:

  • Bật hardware acceleration để offload traffic, IPsec encryption/decryption, 802.3ad link aggregation và SSL khỏi CPU phần mềm. Chọn interface port phù hợp để tối đa hóa tỷ lệ session được hardware accelerate
  • Nếu phát hiện flood attack: cấu hình DoS Policy và bật hardware-based DoS protection (trên model có NP processor) để drop traffic tại lớp phần cứng trước khi chạm CPU phần mềm
  • Kiểm tra model có NP processor không: get hardware status

Tham khảo: Hardware Acceleration — FortiOS 7.4 Admin Guide · DoS Policy — Fortinet Documentation


Nguyên nhân 5 — Session tích tụ, timer quá dài

Mỗi traffic flow đi qua FortiGate tạo ra một session được duy trì trong bộ nhớ cho đến khi timer hết hạn. Càng ít session FortiGate phải quản lý, càng ít CPU được sử dụng.

Khắc phục — Tối ưu global timer:

config system global
    set tcp-halfclose-timer 30    <- Mặc định 120s
    set tcp-halfopen-timer 5      <- Mặc định 10s
    set tcp-timewait-timer 0      <- Mặc định 1s
    set udp-idle-timer 60         <- Mặc định 180s
end

Tối ưu session TTL mặc định (per VDOM):

config system session-ttl
    set default 300               <- Mặc định 3600s
end

DNS tạo rất nhiều session ngắn — nên set timer DNS riêng:

config system session-ttl
    config port
        edit 0
            set protocol 17
            set timeout 10
            set end-port 53
            set start-port 53
        end
    end
end

Lưu ý: Rút ngắn timer mặc định và tăng timer riêng cho ứng dụng cần session dài (Oracle, Citrix, SSH) thay vì giữ timer cao cho tất cả.

Tham khảo: Technical Tip: FortiGate CPU resource optimization configuration steps — Fortinet Community


Nguyên nhân 6 — DNS session helper không cần thiết

Nếu lượng DNS transaction đi qua FortiGate lớn và FortiGate không dùng Virtual IP cho DNS, DNS translation hay DNS server — dns-udp session helper nên được tắt để giảm tải kernel.

Kiểm tra session helper hiện tại và tìm entry của dns-udp:

config system session-helper
    show
end

Xóa entry dns-udp (ví dụ entry 14):

config system session-helper
    delete 14
end

Tham khảo: Technical Tip: FortiGate CPU resource optimization configuration steps — Fortinet Community


Nguyên nhân 7 — Logging mức quá chi tiết hoặc log vào local disk

Logging tạo I/O và CPU overhead liên tục. Cân nhắc tăng severity threshold và giảm packet logging trên policy hoặc sniffer.

Khắc phục:

  • Ưu tiên log đến FortiAnalyzer, FortiCloud hoặc syslog server — tránh dùng memory hoặc local disk
  • Vào Log & Report > Log Settings — tăng severity threshold nếu đang log ở mức information
  • Tắt log cho policy ít quan trọng

Tham khảo: Technical Tip: FortiGate CPU resource optimization configuration steps — Fortinet Community


Nguyên nhân 8 — Tính năng và GUI widget không cần thiết đang bật

Mỗi tính năng được bật đều có chi phí tài nguyên. Một số tính năng ảnh hưởng đáng kể:

  • HA session synchronization cho session web browsing: không cần thiết, có thể tắt
  • Log and Archive Statistic trên GUI Dashboard: tính năng content-summary đẩy session vào proxy tạo thêm tải
  • Widget "Top Sessions": liên tục quét toàn bộ session table để cập nhật, đặc biệt tốn tài nguyên khi session table lớn

Khắc phục: Vào System > Feature Visibility — disable tính năng không dùng. Xóa bớt widget Dashboard không cần thiết, đặc biệt trên model entry-level.

Tham khảo: Technical Tip: FortiGate CPU resource optimization configuration steps — Fortinet Community


Nguyên nhân 9 — Traffic bị scan nhiều lần

Traffic không cần scan lại nếu đã vào FortiGate qua một interface, ra interface khác rồi quay lại — đây là lãng phí tài nguyên không cần thiết.

Khắc phục: Kiểm tra lại topology và routing để tránh traffic đi qua FortiGate nhiều lần. Review policy để không áp dụng security profile trùng lặp cho cùng một luồng traffic.

Tham khảo: Troubleshooting high CPU usage — FortiOS 7.6 Administration Guide


3. Quy trình xử lý CPU cao theo bước

Bước 1 — Xác định process đang chiếm CPU:

diagnose sys top

Bước 2 — Kiểm tra hiệu năng tổng thể:

get system performance status
diagnose sys session stat
diagnose hardware sysinfo memory

Bước 3 — Xác định nguồn traffic: Vào FortiView > Sources / Destinations / Threats để tìm traffic bất thường hoặc dấu hiệu tấn công.

Bước 4 — Xử lý theo nguyên nhân (xem Mục 2).

Bước 5 — Thiết lập monitoring và alerting:

  • Dùng SNMP để monitor CPU liên tục. Cấu hình SNMP community tại System > SNMP
  • Cấu hình Automation Stitch để tự động gửi alert hoặc thực hiện action khi CPU vượt ngưỡng

Tham khảo: Technical Tip: Execute a CLI script based on HIGH CPU — Fortinet Community · Technical Tip: High memory and High CPU general script using Tera Term — Fortinet Community


4. Best practices phòng ngừa

Hành độngLợi íchNguồn
Bật hardware acceleration (NP processor) Offload traffic, IPsec, SSL khỏi CPU Hardware Acceleration Guide
Chỉ bật tính năng thực sự cần thiết Giảm overhead mỗi session CPU Optimization — Fortinet Community
Flow-based thay proxy-based khi có thể WAD tốn CPU/memory hơn ipsengine Troubleshooting high CPU — FortiOS Admin Guide
Log đến FortiAnalyzer/FortiCloud Giảm I/O và CPU logging trên thiết bị CPU Optimization — Fortinet Community
Lên lịch update AV/IPS vào giờ thấp điểm Tránh gián đoạn giờ cao điểm CPU Optimization — Fortinet Community
Tối ưu session timer Dọn session cũ nhanh hơn CPU Optimization — Fortinet Community
Xóa GUI widget không cần thiết Giảm polling tài nguyên liên tục CPU Optimization — Fortinet Community
Cấu hình DoS Policy Drop flood attack tại phần cứng DoS Policy — FortiOS Admin Guide
Automation Stitch cho CPU alert Phát hiện sớm, phản ứng tự động Automation Stitch for HIGH CPU — Fortinet Community
Cập nhật FortiOS mới nhất Latest patch fix bug, cải thiện hiệu năng Fortinet Support — Download Firmware

5. Câu hỏi thường gặp

CPU FortiGate bao nhiêu % là bình thường? — Không có ngưỡng tuyệt đối. Fortinet khuyến nghị duy trì CPU trung bình dưới 70–80% trong giờ cao điểm để còn headroom xử lý đột biến. CPU 90%+ liên tục trong nhiều phút là dấu hiệu cần xử lý ngay.

Flow-based và proxy-based inspection khác nhau về CPU như thế nào? — Proxy-based (WAD) tạo ra hai half-session cho mỗi kết nối, inspect sâu hơn nhưng tốn CPU và memory đáng kể hơn flow-based (ipsengine). Môi trường cần hiệu năng cao nên ưu tiên flow-based trừ khi tính năng inspection bắt buộc phải dùng proxy-based.

Hardware acceleration hoạt động trên model nào? — Chỉ model có NP processor (NP6, NP6Lite, NP7, NP7Lite) mới hỗ trợ hardware offloading. Các model entry-level (40F, 60F...) không có NP processor — toàn bộ xử lý do CPU phần mềm đảm nhiệm. Kiểm tra: get hardware status.

Có nên restart process khi CPU cao không? — Chỉ restart khi đã xác định process bị lỗi (bug, memory leak), không phải do traffic hợp lệ. Restart wad hoặc ipsengine trong giờ cao điểm sẽ drop toàn bộ session đang được inspect. Nên thực hiện ngoài giờ và thông báo trước.

Khi nào cần nâng cấp thiết bị? — Khi CPU trên 80% liên tục dù đã áp dụng đầy đủ best practices, hardware acceleration đã bật, và traffic đang trong ngưỡng thiết kế của model — đây là dấu hiệu cần upgrade lên model mạnh hơn hoặc triển khai HA active-active.


Xem thêm:

>> Checklist Bảo Mật FortiGate 2025: 14 Cấu Hình Bắt Buộc Để Tránh Bị Hack

>> CPU FortiGate tăng cao do bật HTTP/HTTPS trên WAN – Nguyên nhân và cách xử lý