ABOUT ME

Today
Yesterday
Total
  • [DOSI:RAK] 부하테스트 시작 - CPU, 메모리, 디스크
    개발 ing 2025. 2. 17. 22:14

    해당 글은 피우다 프로젝트 공모전 DOSI:RAK 서비스 끝마치고 하고 있는 내용이다.

     

     

    DOSI:RAK 프로젝트를 마무리하며 고민을 했다.

    앞으로 새로운 프로젝트를 시작할지 기존 프로젝트를 리팩토링하며 개선할지 선택해야 했다.

    결론은 기존 프로젝트를 더 깊이 분석하고 개선하는 것이었다.

     

    그래서 부하테스트를 하기로 했고 하기전에 부하테스트 관련한 개념을 학습을 했다. 아래 글은 학습한 개념을 정리한 글이다.

     

     

    부하 테스트를 수행하려면 어떤 요소를 측정해야 하는지 먼저 알아야 한다.

    대표적으로 CPU, 메모리, 디스크가 성능에 큰 영향을 미친다.


    CPU, 메모리, 디스크

     

     

    CPU 

    • 명령어를 해석하고 실행
    • 연산작업을 한다.

     

    메모리 

    • CPU가 작업하기 위해 임시로 사용하는 공간
      • 디스크보다 메모리로부터 데이터를 가져올 때 속도가 빠르다
      • CPU는 명령어를 해석해서 실행하거나 연산 작업을 할 때는 메모리를 통해서 데이터를 가져온다
    • 실행할 프로그램의 코드, 변수가 있다 (전역 변수, 파라미터,...)
    • RAM 이라고도 부른다

     

    디스크

    • C 드라이브와 같은 컴퓨터 저장 공간
    • 영구적으로 데이터, 파일 등을 저장
    • 데이터를 가져올 때 메모리 보다 속도가 상대적으로 느리다

     

    우선 성능을 올리는 방법은 그냥 스펙을 올리는 방법이 있다. 즉, 하드웨어 업그레이드를 하는 방법이다.

     

    하지만 하드웨어 업그레이드는 비용이 많이 든다. 

     

    그럼 다른 방법으로는 소프트웨어 최적화 시키는 것이다.


    성능 측정을 하기 위해 우리는 아키텍처를 봐야하고 집중적으로 봐야 할 점은 DB와 백엔드 서버이다.

     

    그럼 DB와 백엔드 서버는 CPU, 메모리, 디스크를 어떻게 사용할까?

     

    1. DB

    • 디스크로부터 데이터를 조회해서 메모리에 올림
    • 메모리에서 연산, 필터링, 집계 등의 작업을 CPU 가 처리
    • DB의 특성상 많은 양의 데이터를 가지고 작업을 해야 하는 경우가 빈번해서 CPU, 메모리 둘 다 많이 사용하는 편이다

    2. 백엔드 서버

    • 백엔드 서버의 로직에 파일 읽어오거나 파일을 생성하는 로직이 없다면 디스크는 거의 사용할 일이 없다
    • 파일 처리 같은 건 S3를 이용한다
    • DB로 부터 불러오는 데이터의 양이 크지 않은 경우에는 메모리를 많이 사용할 일이 없다
    • 많은 요청에 대해 로직을 처리해야 하기 때문에 CPU를 많이 사용하는 편이다
    • 복잡한 연산 작업(인코딩, 디코딩, 암호화)을 사용할 경우 CPU를 많이 사용한다

    3. 로드벨런서

    • 요청이 들어오면 적절하게 서버들 한테 골고루 트래픽을 분배해준다
    • 임시로 저장해야 하는데이터가 많은게 아니기 때문에 메모리를 많이 사용할 일이 없다
    • 많은 요청을 분배해주는 로직을 처리하기 때문에 CPU를 많이 사용

     

     

    4. 캐시

    캐시의 특성상 빠르게 데이터를 조회해야 하기 때문에 메모리에 데이터를 저장한다

     

     

    위와 같이 CPU, 메모리를 많이 사용한다 그래서 CPU와 메모리에 대한 부하 테스트를 진행할 예정이다.

     

Designed by Tistory.