방법론이 필요
- 주니어 -> 어디서부터 시작하고, 어떻게 진행해야 하는지에 대한 안내
- 시니어 -> 빠뜨린 세부 사항이 없는지 검사하기 위한 체크리스트
성능 이슈 분석 방법론
- USE (Utilization Saturation Error) 방법
- RED (request Rate, request Error, request Duration) 방법
- 과학적 접근 방법
- 지연시간 분석
USE 방법론
- 모든 자원에 대해, 사용률/포화도/오류를 확인
- 인프라 레벨의 성능 분석에 적합
. Utilization(사용률)
- 자원을 바쁘게 사용한 시간
- 예) CPU 하나가 90% 사용률로 동작
. Saturation(포화도)
- 처리되지 못한 자원이 있는 수준 (대기 큐의 길이로 확인)
- 예) CPU의 대기열의 평균 길이가 4
. Errors(오류)
- 발생한 오류의 횟수
- 예) 디스크 컨트롤러에서 오류가 발생
RED 방법론
- USE 방법론은 서비스 단위로는 맞지 않음
- 분산, MSA 환경에 맞는 방법론
- 해당 지표들을 기반으로 alert 생성 및 대시보드 생성
. request Rate (사용률)
- 처리하고 있는 초당 요청의 개수
. request Errors (오류)
- 초당 요청이 실패한 개수
. request Duration(지속시간)
- 요청을 처리하는데 걸린 시간
+ Saturation(포화상태)
- 요청을 처리하지 못하고 대기하는 상태
- 클라우드 환경에서는 모든 자원에 제한이 있음
과학적 방법론
- 가설을 수립하고 검증하면서 분석
- 질문 -> 가설 -> 예측 -> 테스트 -> 분석
(예) 질문: 데이터베이스의 질의를 느리게 만드는 원인은?
가설: 파일시스템 I/O의 성능이 문제
예측: 파일 시스템 I/O의 지연시간을 질의 중간에 측정해 본다면,
느린 파일 시스템이 질의 속도를 느리게 하는 원인임을 알 수 있을 것이다
테스트: 파일 시스템 지연시간을 질의 지연시간으로 나누어 보니 전체 시간의 5%가 안됨
분석: 파일 시스템이나 디스크가 원인은 아님
-> 새로운 가설을 세우고 추가적인 실험을 지속적으로 진행
지연시간 분석
- 어떤 연산을 완료하기까지 걸린 시간을 분석
-> 그 후, 근본원인을 식별할 수 있을 때까지 더 작은 요소로 나눠서 파악
예) 전체 지연시간(2s) -> A 지연시간 (1.5) + B 지연시간 (0.5) -> C(1) + D(0.5) + B(0.5)
-> 소프트웨어 스택의 각 단계를 조사
어플케이션에서 운영체제, 라이브러리, 시스템콜, 커널, 드라이버
예) MySQL 질의 지연시간
- CPU 시간 vs. CPU외 시간
- CPU외 시간의 주 대기시간? -> 파일 I/O 시간
- 파일 I/O 시간 -> 디스크 I/O? 락 획득 시간?
- 디스크 I/O 시간 -> 데이터 전송 시간? 임의 접근 시간?
방법론의 종류
- USE 방법론
. 사용률, 포화도, 오류를 기준으로 시스템 자원을 분석
- RED 방법론
. 요청빈도, 오류, 지속 시간을 기준으로 서비스를 분석
- 과학적 방법론
. 가설을 수립하고 검증하면서 분석
- 지연시간 분석
. 어떤 연산을 완료하기까지 걸린 시간을 세부적으로 분석
- 그 외에도 다양한 접근 방법이 존재
. 드릴다운 분석: 문제를 좀 더 높은 수준으로 보고, 관심 대상을 깊이 파고드는 방식
. 이벤트 추적: 통계적 정보가 아닌 개별적으로 이벤트를 분석하여 문제를 해결 (예, 네트워크 이슈 tcpdump이용)
. 워크로드 특성 평가: 시스템에 가해진 입력 내용에 초점.
(예, 타임시리즈 데이터베이스 성능이슈 -> 조회 워크로드 패턴을 조정하여 해결)
리눅스 성능 관측 도구
- 커널 커널의 개별 서브 시스템에 대한
관측 도구가 충분히 존재
- 하나의 도구가 모든 성능 관련 관측
정보를 포함하지 않음
- 목적에 맞게 적절하게 사용
- 다만, 메인터넌스나 성능의 이슈로 eBPF기반 도구들로 대체 추세
-> 커널에서 안전하게 동작할 수 있는 코드를 삽입해, 좀 더 많은 정보를 적은 오버헤드로 가져옴
-> 부록 강의에 포함
'리눅스 > Part4. Ch01. 시스템 성능 분석의 이해' 카테고리의 다른 글
02. 사례 소개 (0) | 2022.12.19 |
---|---|
01. 개념 소개 (0) | 2022.12.19 |