220
이벤트 기반 마이크로서비스 구축
9.10
함수 튜닝
함수는 자신의 워크로드에 맞는 특정한 니즈를 갖고 있습니다. 함수가 실행 도중 사용하는 리
소스를 최적화하면 성능은 높이고 비용은 낮출 수 있겠죠. 리소스를 정하고 함수 매개변수를
튜닝할 때 고려해야 할 항목들을 몇 가지 짚어보겠습니다.
9.10.1
넉넉한 리소스 할당
함수마다
CPU
, 메모리를 따로 할당할 수 있으므로 함수 요건에 맞게 매개변수를 튜닝하는 작
업이 중요합니다. 리소스를 너무 많이 할당하면 비용이 많이 들고 너무 적게 할당하면 함수가
멎거나 처리 시간이 길어지겠죠.
함수의 최대 실행 시간도 한정해야 합니다. 함수가 이벤트를 처리하는 시간과 처리할 이벤트
수는 평균적으로 거의 비례하기 때문에 이 매개변수는 배치 크기와 밀접한 연관이 있습니다.
최대 실행 시간은 주어진 이벤트 배치 크기를 처리하는 데 소요되는 예상 최대 시간보다 높게
설정하여 불필요한 함수 타임아웃 에러를 예방하는 게 좋습니다.
함수 기반 솔루션의 경계 콘텍스트 내부에 속하는 상태 저장소의 외부
I
/
O
도 고려해야 합니다.
함수 워크로드는 입력 이벤트의 흐름에 따라 가변적입니다. 외부 상태에 거의 일정한
I
/
O
를 일
으키는 워크로드도 있고 산발적인
sporadic
I
/
O
만 필요한 워크로드도 있겠죠.
I
/
O
리소스가 충분
하지 않으면 처리량과 성능이 저하될 공산이 큽니다.
9.10.2
배치 이벤트 처리 매개변수
함수에 할당된 이벤트 배치를 다 처리할 수 없을 때에는 함수 실행이 실패한 것으로 간주해서
해당 배치를 ...