컨텐츠
슈퍼블록 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유틸리티 사용법