FortiGate CPU 사용률 높을 때 확인해야 할 항목
CLI 중심으로 원인을 분석하는 실무 점검 가이드
FortiGate를 운영하다 보면 "인터넷 속도가 갑자기 느려졌습니다.", "VPN 접속이 끊깁니다.", "웹페이지가 늦게 열립니다.", "방화벽 응답이 느립니다."와 같은 장애를 경험하는 경우가 있습니다.
이러한 장애가 발생하면 가장 먼저 확인하는 항목 중 하나가 CPU 사용률입니다.
하지만 CPU 사용률이 높다는 사실만으로는 정확한 원인을 알 수 없습니다. CPU를 사용하는 프로세스인지, 과도한 세션 때문인지, IPS나 SSL Inspection과 같은 보안 기능 때문인지, 혹은 NPU(Network Processing Unit)에서 처리하지 못하는 트래픽이 CPU로 전달되고 있는 것인지까지 함께 분석해야 합니다.
실무에서는 GUI보다 CLI를 이용한 점검을 우선적으로 수행합니다. GUI는 현재 사용률을 쉽게 확인할 수 있지만, 세부적인 원인 분석에는 한계가 있기 때문입니다.
이번 글에서는 FortiGate CPU 사용률이 높을 때 반드시 확인해야 하는 항목과 CLI를 활용한 분석 방법을 네트워크 엔지니어의 관점에서 자세히 설명하겠습니다.
FortiGate 문서를 찾아볼 때 GUI보다 CLI를 중점적으로 봐야 하는 이유
FortiGate 문서를 찾아볼 때 GUI보다 CLI를 중점적으로 봐야 하는 이유FortiGate 운영 및 장애 분석 실무 가이드네트워크 엔지니어가 FortiGate를 운영하다 보면 새로운 기능을 설정하거나 장애를 분석하
moebnoos.com

CPU 사용률이 높으면 어떤 문제가 발생하는가
CPU가 지속적으로 높은 상태를 유지하면 다음과 같은 증상이 나타날 수 있습니다.
- 인터넷 응답 속도 저하
- VPN 연결 불안정
- 웹 접속 지연
- 패킷 Drop 증가
- SSL VPN 속도 저하
- 관리 GUI 접속 지연
- CLI 응답 속도 저하
- 로그 처리 지연
- IPS 및 보안 검사 성능 저하
일시적으로 CPU가 상승하는 것은 정상일 수 있지만, 장시간 80~90% 이상을 유지한다면 반드시 원인을 분석해야 합니다.
현재 CPU 사용률 확인
가장 먼저 실행하는 명령어입니다.
get system performance status
출력 예시입니다.
CPU states: 12% user 5% system 83% idle
Memory: 46%
Sessions: 15432
Uptime: 23 days
여기서 확인해야 하는 항목은 다음과 같습니다.
- CPU User
- CPU System
- CPU Idle
- Memory 사용률
- 현재 Session 수
특히 CPU Idle이 매우 낮다면 CPU가 지속적으로 사용되고 있다는 의미입니다.
실시간 CPU 사용률 확인
순간적인 CPU 변화를 확인하려면 다음 명령어를 사용합니다.
diagnose sys top
Linux의 top 명령과 유사하게 실시간 CPU 사용 현황을 확인할 수 있습니다.
출력 예시입니다.
PID CPU% MEM%
ipsengine 68%
httpsd 12%
miglogd 5%
이 명령을 통해 어떤 프로세스가 CPU를 많이 사용하는지 즉시 확인할 수 있습니다.
실무에서는 가장 많이 사용하는 명령어 중 하나입니다.
CPU를 사용하는 프로세스 확인
CPU 사용률이 높다면 어떤 프로세스가 원인인지 확인해야 합니다.
대표적으로 많이 확인되는 프로세스는 다음과 같습니다.
프로세스설명
| ipsengine | IPS 및 Application Control 검사 |
| httpsd | GUI 관리 서비스 |
| sslvpnd | SSL VPN 서비스 |
| miglogd | 로그 처리 |
| wad | Web Proxy 및 Proxy Inspection |
| scanunitd | 안티바이러스 검사 |
예를 들어 ipsengine의 CPU 사용률이 높다면 IPS 정책이나 시그니처 검사가 영향을 주고 있을 가능성이 있습니다.
현재 세션 수 확인
CPU 사용률과 세션 수는 밀접한 관계가 있습니다.
확인 명령어입니다.
diagnose sys session stat
출력 예시입니다.
Current Sessions
15324
세션 수가 장비 권장 수준을 크게 초과하면 CPU 사용률도 함께 증가할 수 있습니다.
특히 대량의 NAT 세션이나 VPN 세션이 생성되는 환경에서는 지속적인 모니터링이 필요합니다.
NPU(Offloading) 동작 여부 확인
FortiGate는 대부분의 일반 트래픽을 NPU(Network Processing Unit)에서 처리합니다.
하지만 다음과 같은 경우에는 CPU가 직접 트래픽을 처리합니다.
- Proxy Inspection
- SSL Deep Inspection
- IPS 검사
- Traffic Shaping
- 일부 VPN 트래픽
- 특정 정책 설정
NPU Offloading 여부를 확인하려면 세션 정보를 확인합니다.
diagnose sys session list
출력 내용에서 Offloading 관련 정보를 확인할 수 있습니다.
예시입니다.
npu_state=0x000001
모든 세션이 CPU에서 처리되는 환경이라면 CPU 사용률이 높아질 가능성이 큽니다.
IPS 및 SSL Inspection 확인
CPU 사용률이 높은 환경에서는 보안 프로파일도 함께 확인해야 합니다.
다음 정책을 점검합니다.
- IPS
- Antivirus
- Web Filter
- Application Control
- SSL Inspection
특히 SSL Deep Inspection은 암호화 트래픽을 복호화하여 검사하기 때문에 CPU 사용량이 크게 증가할 수 있습니다.
필요한 경우 정책별 적용 범위를 검토하는 것이 좋습니다.
메모리 사용률도 함께 확인
CPU뿐 아니라 메모리 상태도 확인해야 합니다.
get system performance status
예시입니다.
Memory usage
82%
메모리 부족이 발생하면 CPU 사용률도 함께 증가할 수 있으며, 프로세스 응답 속도가 저하될 수 있습니다.
인터페이스 오류도 함께 확인
CPU가 높다고 해서 항상 CPU 자체가 원인은 아닙니다.
인터페이스 오류로 인해 재전송이 증가하면서 CPU 사용률이 높아지는 경우도 있습니다.
확인 명령어입니다.
diagnose hardware deviceinfo nic port1
다음 항목을 확인합니다.
- RX Errors
- TX Errors
- CRC Errors
- Dropped Packets
CRC Error가 증가한다면 케이블, 광 모듈, Speed/Duplex 설정도 함께 점검해야 합니다.
Packet Sniffer를 활용한 분석
CPU가 높아지는 시점의 트래픽을 분석하는 것도 중요합니다.
diagnose sniffer packet any "host 192.168.10.100" 4
또는
diagnose sniffer packet any "port 443" 4
과도한 트래픽, 반복적인 재전송, 특정 IP의 과도한 연결 요청 등을 확인할 수 있습니다.
GUI에서도 확인할 수 있을까
GUI에서도 CPU 사용률을 확인할 수 있습니다.
일반적으로 다음 메뉴에서 확인 가능합니다.
- Dashboard → Status
- Dashboard → FortiView
- System → Performance
다만 FortiOS 버전에 따라 GUI 메뉴의 이름과 경로는 달라질 수 있으며, 모델과 라이선스에 따라 제공되는 정보에도 차이가 있습니다.
GUI는 현재 상태를 빠르게 확인하는 용도로는 유용하지만, 프로세스별 CPU 사용률이나 세션 분석 등은 CLI가 훨씬 상세한 정보를 제공합니다.
CPU 사용률이 높을 때 실무 점검 순서
실제 운영 환경에서는 다음 순서로 점검하는 것을 권장합니다.
- 현재 CPU 및 메모리 사용률 확인
get system performance status
- 실시간 프로세스 확인
diagnose sys top
- 현재 세션 수 확인
diagnose sys session stat
- 인터페이스 오류 확인
diagnose hardware deviceinfo nic port1
- 트래픽 분석
diagnose sniffer packet any "host IP주소" 4
- 보안 프로파일 및 정책 검토
- IPS
- SSL Inspection
- Antivirus
- Web Filter
- NPU Offloading 여부 확인
diagnose sys session list
이 순서대로 점검하면 대부분의 CPU 관련 장애 원인을 빠르게 좁힐 수 있습니다.
실제 장애 사례
한 고객사에서 오전 9시부터 11시 사이에 인터넷과 ERP 접속이 매우 느려진다는 문의가 접수되었습니다.
초기 점검 결과는 다음과 같았습니다.
- 회선 정상
- 방화벽 정책 정상
- 라우팅 정상
- 인터페이스 오류 없음
CPU 상태를 확인했습니다.
get system performance status
CPU Idle이 5% 이하로 확인되었습니다.
이후 실시간 프로세스를 확인했습니다.
diagnose sys top
ipsengine가 CPU의 약 70%를 사용하고 있었습니다.
정책을 검토한 결과, 내부 서버 백업 구간에도 IPS와 SSL Deep Inspection이 모두 적용되어 있었으며, 대용량 백업 트래픽이 모두 CPU 기반 검사 대상으로 처리되고 있었습니다.
백업 VLAN에 적용된 정책을 분리하여 SSL Deep Inspection을 제외하고, 필요한 IPS 프로파일만 적용하도록 조정한 결과 CPU 사용률은 90% 수준에서 35% 수준으로 감소했습니다.
다른 사례에서는 CPU 사용률이 높았지만 diagnose sys top 결과 특정 프로세스가 아니라 세션 수가 비정상적으로 증가한 것이 원인이었습니다.
확인 결과 내부 장비의 비정상적인 재접속으로 짧은 시간에 수십만 개의 세션이 생성되고 있었고, 해당 장비를 조치한 뒤 CPU와 세션 수가 모두 정상 수준으로 회복되었습니다.
이처럼 CPU 사용률이 높다고 해서 항상 장비 성능 부족을 의미하는 것은 아닙니다. 프로세스, 세션, 인터페이스, 보안 정책, NPU Offloading 여부를 함께 분석해야 정확한 원인을 찾을 수 있습니다.
네트워크 엔지니어가 자주 사용하는 CLI 명령어
현재 시스템 상태 확인
get system performance status
실시간 CPU 사용률 확인
diagnose sys top
현재 세션 통계 확인
diagnose sys session stat
세션 상세 확인
diagnose sys session list
인터페이스 오류 확인
diagnose hardware deviceinfo nic port1
실시간 패킷 캡처
diagnose sniffer packet any "host IP주소" 4
마무리
FortiGate에서 CPU 사용률이 높다고 해서 무조건 장비 성능이 부족하거나 교체가 필요한 것은 아닙니다. 실제 운영 환경에서는 프로세스 과부하, 과도한 세션 수, IPS 및 SSL Inspection 정책, NPU Offloading 미적용, 인터페이스 오류 등 다양한 원인이 복합적으로 작용하는 경우가 많습니다.
실무에서는 get system performance status, diagnose sys top, diagnose sys session stat, diagnose sys session list, diagnose hardware deviceinfo nic 명령어를 중심으로 단계적으로 분석하면 대부분의 원인을 빠르게 파악할 수 있습니다.
GUI에서도 CPU와 메모리 상태를 확인할 수 있지만, FortiOS 버전에 따라 메뉴 경로와 제공되는 정보가 달라질 수 있으므로 참고용으로 활용하는 것이 좋습니다. 실제 장애 분석과 운영 환경에서는 CLI를 중심으로 시스템 자원, 세션, 프로세스, 보안 정책을 함께 확인하는 것이 가장 정확하고 효율적인 방법입니다.