Engineer-Lee 2022. 12. 19. 14:21
반응형

이번 강의에서 바라보는 시스템의 범위

- 하나의 시스템 내에서 End-to-End
    -> 어플리케이션 + 시스템 라이브러리 + 커널 + 하드웨어
- 분산 시스템은 범위 밖
    -> 하지만 분산 시스템의 전체 흐름을 이해하려면, 여전히 개별 시스템의 성능 분석 역량이 필요


시스템 성능 분석

- 하드웨어와 소프트웨어 스택 전체에 대한 분석
- 분석 관점은 주체에 따라 차이가 있음
   . 개발자는 워크로드를 분석하는 것에서 시작
     -> 어플리케이션의 동작 관점
   . 시스템 관리자는 자원의 사용을 분석하는 것에서 시작
     -> 모든 앱은 그냥 리눅스 프로세스
     -> 인프라가 워크로드를 잘 지탱했는지 관점

 

시스템 성능 분석은 쉽지 않습니다.

- 성능은 주관적인 의미
  질문) I/O 응답 시간은 1ms인 디스크는 성능이 좋은 디스크??
   -> 어플리케이션의 요구사항에 따라 좋을 수도 나쁠 수도 있음
   -> 목표를 설정하는 방식으로 객관화 할 수 있음


- 시스템은 복잡
  질문) 쇼핑몰 앱의 메인 피드 갱신이 느려지는 경우 어디서부터 분석을 시작??
            사용자 네트워크 문제?
   -> 시스템 구성 요소 간의 복잡한 관계를 풀고, 어떻게 각 요소가 문제를 발생시키는지 이해해야 함
   -> 병목 지점 하나를 해결한다고 해서 전체 성능에 변화가 없는 경우도 있음
        병목 지점이 시스템의 다른 위치로 이동
   -> 재현 안되거나 어쩌다 한 번만 재현 되는 경우도 많음
   -> 시스템 내부는 물론 외부와의 상호 작용까지 조사를 해봐야 함
     . 타 부서간의 협업도 필요함

 

시스템 성능 분석은 쉽지 않습니다.

- 여러 성능 문제가 존재 할 수 있음
  질문) 리눅스는 오랜 기간 개발되고 사용되어 왔으니 구지 분석 진행?
   -> 리눅스도 여전히 성능 문제가 존재 (원인: 네트워크 환경 변화, 워크로드의 변화 등)
   -> 커널 버전 변경이나 패치를 통해 이슈를 해결해야 하는 경우도 있음


  질문) 클라우드 서버 장인이 관리해주는 클라우드 서버. 하드웨어 자원은 믿고 사용?
   -> 호스트 환경의 장애나 노이지 네이버 등의 이슈들로 여전히 하드웨어 자원에 대한 분석도 진행
       예) 특정 서버들의 스토리지 볼륨의 성능 장애 발생

 

이번 강의에서는
-> 시스템 관리자 관점에서 시스템 성능을 분석하는 방법

반응형