Strace

From HPCWIKI
Revision as of 14:10, 17 July 2026 by Clara (talk | contribs) (Phase 0.5: Create Strace)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Strace

Template:Status

Template:TOC

Overview

Strace는 시스템 콜 추적 도구. 프로세스가 어떤 시스템 콜을 호출하는지 실시간 모니터링. 문제 분석 필수 도구.

Summary

  • * 무엇인가? 시스템 콜 추적 도구. 프로세스 동작 분석
  • * 왜 필요한가? 파일 접근, 네트워크, 권한 문제 디버깅
  • * 언제 사용하는가? 프로그램 오류 분석, 성능 병목 식별

---

Purpose

이 문서가 존재하는 이유

  • Goal: Strace의 개념, 사용법, 설정 가이드 제공
  • Scope: 기본 개념, 설치/설정, 사용 예제, 모범 사례
  • Non-goals: 고급 커스터마이징, 내부 소스 코드 분석

---

Key Concepts

Template:KeyConcepts

---

Architecture

strace는 ptrace 시스템 콜로 프로세스를 감시. 프로세스가 시스템 콜을 호출할 때마다 strace가 출력. -e로 필터링, -c로 통계, -T로 시간 측정.

---

Workflow

1. 1. strace로 프로그램 실행

2. 2. 시스템 콜 출력 확인

3. 3. -e로 특정 syscall 필터링

4. 4. -c로 통계 요약

5. 5. 문제 원인 식별

---

Configuration

# 기본 사용
strace -o trace.log ./myapp

# 특정 syscall만 추적
strace -e trace=open,read,write ./myapp

# 통계 요약
strace -c ./myapp

# 실행 중 프로세스 추적
strace -p 1234

# 시간 측정
strace -T -e trace=open,read,write ./myapp

# 파일 접근 추적
strace -e trace=open,openat,read,write -o file-access.log ./myapp

---

Best Practices

  • -e로 불필요한 syscall 필터링
  • -c로 빠른 통계 확인
  • -T로 syscall 시간 측정
  • file-access.log로 파일 접근 분석
  • 프로덕션에서는 -c만 사용 (출력량↓)

---

Limitations

  • 추적 대상 프로세스 성능 저하
  • 출력량이 많음 (대규모 프로그램)
  • 커널 5.0+에서 일부 syscall 미지원

---

References

---

Related Pages