반응형

[오류 분석] perf: interrupt took too long — kernel.perf_event_max_sample_rate 자동 조정 경고
🧩 원인
이 메시지는 커널 성능 분석 도구인 perf가 너무 높은 빈도로 이벤트를 샘플링하여, 커널이 스스로 샘플링 속도를 낮추는 보호 동작을 수행할 때 나타납니다.
perf: interrupt took too long (XXXX > XXXX), lowering kernel.perf_event_max_sample_rate to XXXX
- Perf 또는 eBPF 기반 툴이 과도한 샘플링을 수행
- CPU 부하가 높아 인터럽트 처리 지연 발생
- 가상화 환경에서 타이머 지연 또는 클럭 불일치
🔍 분석
커널은 샘플링 빈도를 kernel.perf_event_max_sample_rate 파라미터로 제어하며, 기본값은 100000(초당 10만 회)입니다.
성능 부하가 감지되면 자동으로 절반 이하로 낮춰 안정화합니다.
sysctl -a | grep perf_event_max_sample_rate
kernel.perf_event_max_sample_rate = 50000
이는 “시스템 부하에 따라 perf의 샘플링 속도를 자동으로 낮췄다”는 의미로, 심각한 오류가 아닌 보호 동작입니다.
⚙️ 조치
다음은 실제 점검 및 복구용 Bash 스크립트 예시입니다.
#!/bin/bash
# perf interrupt took too long 자동 진단 & 복구
echo "🔍 PERF INTERRUPT AUTO-DIAG START"
DATE=$(date "+%Y-%m-%d %H:%M:%S")
echo "실행 시각: $DATE"
RATE=$(sysctl -n kernel.perf_event_max_sample_rate)
if [ "$RATE" -lt 50000 ]; then
echo "⚠️ 샘플링 속도가 낮게 조정됨 (${RATE})"
sysctl -w kernel.perf_event_max_sample_rate=100000
echo "✅ 복구 완료"
else
echo "✅ 정상 (${RATE})"
fi
💡 해결 방안 요약
| 항목 | 내용 |
|---|---|
| 오류 의미 | Perf 이벤트가 과도하게 발생하여 자동으로 샘플링 속도 조정 |
| 시스템 영향 | 거의 없음, 일시적 경고 |
| 원인 | Perf/eBPF 과다 샘플링, CPU 과부하, 가상화 환경 |
| 해결 | 샘플링 주기 조정 또는 무시 가능 |
📈 결과
샘플링 속도 조정 후 perf 이벤트 부하는 완화되며, CPU 인터럽트 지연 경고는 사라집니다. 지속적인 발생 시 perf 또는 systemd 기반 모듈의 수집 주기를 재설정해야 합니다.
반응형
반응형
LIST
'경험 공유 > Server' 카테고리의 다른 글
| Critical - webkit2gtk3 (RLSA-2025:18070) (0) | 2025.11.02 |
|---|---|
| 리눅스 서버 대상 루트킷 악성코드 진단 (1) | 2025.11.02 |
| 서버 NIC Promiscuous 모드 설정 및 보안 주의사항 (1) | 2025.11.01 |
| VM Windows Server 비정상 재시작 & gpedit ADMX/ADML 오류 해결 (5) | 2025.10.21 |
| CentOS to Rocky Linux 설치 시 RAID GPT 오류 (PMBR / Backup GPT) (0) | 2025.10.20 |
