리눅스 스케줄링 확인 도구

EEEFFEE·2023년 12월 7일
0

Linux 환경

목록 보기
9/9

23.12.07 최초 작성

1. uptime

  • load average (실행 가능 + 대기 상태) 출력
  • 인터럽트 불가한 시간 포함 (BPF의 offcputime 사용)

uptime [(n)core]	//n개 cpu의 load average 출력 (1분, 5분, 15분 기준)

2. top, htop

  • 시스템을 요약해 출력

  • 잠깐 생성되고 소멸되는 프로세스 감시 불가 (BPF 사용)

  • top

  • htop : 파란색 (user 영역) 빨간색 (kernel 영역)

3. mpstat

  • cpu별 지표 검사

sudo apt install sysstat
sysstat

4. BPF

  • 여러 프로파일링 기능을 지원하는 툴
  • 커널 컴파일 전에 config 설정해 사용

sudo apt install bpfcc-tools
sudo apt install bpftrace

4.1 execsnoop, exitsnoop

  • execsnoop : 프로세스 생성을 시스템 전역에 걸쳐 감시
  • exitsnoop : 프로세스 소멸을 시스템 전역에 걸쳐 감시

sudo execsnoop-bpfcc
sudo exitsnoop-bpfcc

  • execsnoop : 터미널 실행
  • exitsnoop : 터미널 종료

4.2 runqlat

  • cpu 스케줄러 지연 측정

sudo runqlat.bt 10 1

  • runqlat : 2 ~ 4ms지연이 많이 발생

4.3 profile

  • 정해진 간격으로 스택 트레이스를 샘플링
  • 스택 트레이스 빈도수 집계를 리포트

sudo profile-bpfcc

4.4 offcputime

  • off-CPU가 된 스레드들에 의해 소모된 시간을 요약
  • FlameGraph와 같이 사용 가능

sudo offcputime-bpfcc 5

4.5 syscount

  • 시스템 콜을 집계

sudo syscount-bpfcc -i 1

  • syscount

4.5 argdist

  • 이벤트를 원하는 방식으로 감시

sudo argdist-bpfcc -H 't:syscalls:sys_enter_read():int:args->count'
sudo argdist-bpfcc -H 't:syscalls:sys_exit_read():int:args->ret'

  • sudo argdist-bpfcc -H 't:syscalls:sys_enter_read():int:args->count'

4.6 funccount

  • 이벤트 발생 빈도 집계

// perf 설치
sudo apt-get install linux-tools-$(uname -r)

sudo funccount-perf 'tcp_*'

4.7 softirqs

  • 소프트웨어 IRQ 처리 시간 감시

sudo softirqs-bpfcc 10 1

4.8 hardirqs

  • 하드 IRQ 처리 시간 감시

sudo hardirqs-bpfcc 10 1

4.9 llcstat

  • 캐시 미스율 / 히트율 표시

sudo llcstat-bpfcc

0개의 댓글

관련 채용 정보