본문 바로가기

전체 글137

eBPF로 특정 프로세스 트레이싱 eBPF 도구 출처 대상 설명아래 표는 보통 시스템 소프트웨어 성능에 사용되는 BPF 툴을 아래에 적었다.execsnoopBCC/BT스케줄러새로운 프로세스 실행 표시exitsnoopBCC스케줄러프로세스 수명과 종료 이유runqlatBCC / BT스케줄러CPU 실행 큐 지연 요약runqlenBCC / BT스케줄러CPU 큐 길이 요약runqslowerBCC스케줄러임계 값보다 더 느린 실행 큐 대기 출력cpudistBCC스케줄러on-CPU 시간 요약cpufreqGregg GitCPU프로세스별 CPU 클럭 속도 샘플링profileBCCCPUCPU 스택 트레이스 샘플링offcputimeBCC / 책스케줄러off-CPU 스택 트레이스 및 횟수 요약syscountBCC / BT시스템 콜유형 / 프로세스별 시스템 콜 .. 2026. 10. 18.
성능 분석에 대한 정의 및 방법론 목표일반적으로 성능 분석의 목표는 최종 사용자 성능을 개선하고 운영 비용을 절감하는데 있다.측정 대상은 아래와 같다.지연 시간: 요청이나 동작을 달성하는 데 소요된 시간, 일반적으로 밀리초로 측정한다.발생 비율: 초당 동작 비율 혹은 요청 비율스루풋 : 일반적으로 비트나 바이트 단위의 초당 데이터 이동량사용률 : 시간에 따른 리소스의 사용량으로, 퍼센트로 표현비용 : 가격 대 성능비 최종 사용자 성능은 애플리케이션이 사용자의 요청에 반응하늗네 걸리는 시간에 따라 정량화 할 수있고, 이 시간을 단축하는 것이 목표가 된다. 이처럼 대기 하는 데 소요된 시간을 '지연 시간' 이라 한다. 지연 식나은 요청 시간을 분석하고 각 시간을 컴포넌트별로 세분화함으로서 개선할 수 있는데 여기에는 CPU에서 동작하고 있는 .. 2026. 10. 12.
BPF의 기술배경 BPF = 커널 안에서 돌아가는 아주 작고 안전한 가상머신(VM)원래는 "어떤 패킷을 잡을지" 고르는 패킷 필터였다.지금(eBPF)은 패킷, 시스템콜, 커널 함수 등 커널의 거의 모든 곳에 작은 프로그램을 끼워 넣는 범용 실행 환경이 되었다.1. 출발점: tcpdump 필터는 사실 프로그램이다tcpdump -d host 127.0.0.1 and port 80-d를 붙이면 패킷을 잡지 않고, 필터가 어떤 BPF 명령어로 번역되는지만 보여준다.(000) ldh [12] ; 이더넷 타입 읽기(001) jeq #0x800 jt 2 jf 18 ; IPv4인가? 아니면 버림(002) ld [26] ; 출발지 IP 읽기(003) jeq #0x7f000001 jt 6 jf 4 ; 127.0.0.1인가?(004) ld .. 2026. 10. 12.
IRQ와 SoftIRQ 로 인한 성능 저하 판단 IRQ와 SoftIRQ의 기본 개념 및 동작 메커니즘리눅스 커널에서 하드웨어 장치(NIC, NVMe, 타이머 등)와 CPU가 상호작용할 때 핵심이 되는 인터럽트 처리 구조는 Top-half(Hard IRQ)와 Bottom-half(SoftIRQ)로 나뉜다.[Hardware Event] ──> (Top-half: Hard IRQ) ──> [Pending Bit 설정] │ ▼ (CPU 인터럽트 활성화 및 스케줄링) (Bottom-half: SoftIRQ / NAPI) ──> [실제 데이터 처리 / sk_buff 생성] 1. Hard IRQ (Top-half)정의: 하드웨어가.. 2026. 8. 31.