컨텐츠

슈퍼블록 Percpu_rw_semaphore 교착 상태 디버깅

2025-02-12 20:00 언젠가 읽기

문제 상황

  • 특정 작업의 122초 이상 멈춤 발생
  • PID 2449 "peer local sock"과 PID 1914 "mariadbd" 작업 정지

분석 방법

  • 커널 덤프 파일 분석 선택
  • kdump 트리거 및 crash 유틸리티 사용

백트레이스 확인

  • veeamblksnap에서 슈퍼블록 동결 시 교착 상태 발생
  • percpu_down_write() 함수가 세마포어 획득 대기

교착 상태 원인

  • percpu_rw_semaphore 세마포어 획득 상호 대기
  • veeamblksnap 모듈에서 발생

세마포어 상태 확인

  • 세마포어 주소 확인 및 상태 점검
  • writer 필드에 PID 2449 존재, block 카운터 1 설정

대기 중인 작업 찾기

  • 세마포어 대기를 기다리는 작업 추가 분석 수행

결론

  • veeamblksnap 모듈의 적절한 세마포어 획득 실패로 교착 상태 발생
  • 추가 모니터링과 세마포어 사용 방식 재검토 필요

함께 읽으면 좋은 자료

  • 리눅스 커널 교착 상태 분석
  • 세마포어와 뮤텍스의 이해
  • crash 유틸리티 사용법
푸딩캠프 뉴스레터를 구독하면 학습과 성장, 기술에 관해 요약된 컨텐츠를 매주 편하게 받아보실 수 있습니다.