Career/한글과컴퓨터

CPU 사용량에 따른 각 서비스간의 통신 속도 체크 및 최적화된 사용량 찾기

dm.kim 2020. 12. 29. 16:35

CPU 사용량에 따른 API 통신 속도에 관해서는 생각을 해본 적이 없다가 vultr 서버에 올린 백엔드 서버에서 더미 데이터를 받아오는 속도가 너무 느려 해당 문제에 관심을 가지게 되었고 해당 이슈를 보고했었다.

팀장님이 CPU 사용량을 조절해 보면서 테스트를 해보고 최적의 CPU 사용량을 조사해보라고 하셨다.

docker 컨테이너를 띄울 때 --cpus의 옵션을 주어 CPU 최대 점유율을 설정할 수 있다.

 

조금 차질이 있던게 CPU 최대 점유율 옵션을 주지 않고(최대로 사용하도록 나두었을 때) 사원을 저장하는 기능이 몇분여씩이나 걸렸을 때 해당 이슈를 보고했었는데 해당 코드를 최적화하고 난 뒤에 이 문제에 대해 해결하려고 하여서 조금 늦은감은 있었다.

 

그래도 전체 사원 리스트를 받아오는 API를 호출했을 때 CPU 사용량을 최대로 허용해도 2초 가량(몇밀리초가 아닌 눈으로 확인 가능한 딜레이였기에)이 걸렸기에 CPU 점유율을 좀 더 낮게 주었을 때는 호출을 위해 더 많은 시간이 필요한지 실험해 볼 수 있었다.

 

새로운 백엔드 컨테이너를 한 개 더 만들고 --cpus=".2" 옵션을 주어 CPU 최대 점유율을 30%만 가능하도록 설정해두고 똑같은 API 요청을 해보았다. 그랬더니 약 8초 가량이 걸렸다.

 

따라서 CPU 점유율의 정도에 따라 같은 API를 호출할 때 지연 시간이 다르다는 것을 확인할 수 있었다.

 

추가로 할 일 : RAM 서비스별 사용량, 기준 용량은 얼마가 필요한지 확인해보기

'Career > 한글과컴퓨터' 카테고리의 다른 글

쿼리 성능과 관련하여  (0) 2020.12.10
프로젝트 개요  (0) 2020.09.21