미쳐 알지 못했던 Kernel까지 Observability 향상시키기 리뷰

미쳐 알지 못했던 Kernel까지 Observability 향상시키기 리뷰

CPU 사용률

  • 전체 시간에서 busy state가 사용했던 시간을 백분율로 나타낸 것
    • memory I/O도 고려해야

Memory IO

Malloc으로 추적 -> 페이지 폴트로 매핑

페이지 폴트를 flamegraph로 표현

NUMA

  • multi socket cpu
  • 채널을 쪼개서 CPU별로 로컬메모리를 부착해 채널의 한계를 극복한 것
  • local access와 remote access
  • remote access
    • 비효율적으로 작동할 수 있음
    • local dram과 remote dram의 합의 40%가 remote access가 차지
  • cpuset_cpu
  • cpuset_memory
  • 값을 조절해서 하드웨어 조정 가능

socket pinnigng

  • numa 0과 numa1에 정해지는 memory load를 고정

cloudflare의 ebpf exporter

  • numa metric값 분석으로 NUMA 감시

REDIS latency 이상현상 파악

  • redis latency에 가끔 튀는 메트릭이 발생
  • perf trace로 로그 분석 시도
  • bpftrace와 bcc tool 사용 시도
    • bcc: funclatency.py netif_rx
  • pixie (오픈소스 ebpf 모니터링 툴)
    • syscall_probe_entry_readv
    • syscall_probe_ret_readv

ipvs

  • nflatency.py
    • IPTable의 훅 종류, TCP/UDP 분석
    • RIQ의 timer_softirq가 느림