그래프 시각화 : pgAdmin4 graph visualizer
SELECT submission.id,
EXTRACT(EPOCH FROM result.created_at::timestamp - submission.created_at::timestamp)
AS "제출부터 채점완료까지 걸린 시간"
FROM result
LEFT JOIN submission
ON result.submission_id = submission.id
WHERE submission.id >= '시작id' AND submission.id <= '끝id';
평균 측정 : pgAdmin4 query tool
SELECT
AVG(EXTRACT(EPOCH FROM result.created_at::timestamp - submission.created_at::timestamp))
FROM result LEFT JOIN submission ON result.submission_id = submission.id
WHERE submission.id >= '시작id' AND submission.id <= '끝id'
조작변인은 변화시키고, 나머지 통제변인들을 일정하게 유지시키는 것
API 통신으로 구현한 코드
서버 사양 : [Compact] 1vCPU, 2GB Mem, 50GB Disk [g1]
채점 도커 1개, 서버 1개
결과
X축 : 제출 ID, Y축 : 제출부터 채점완료까지 걸린 시간
조작 변인
매 채점마다 build 하던 과정 제거 + cpu 제한
⇒ 채점 프로그램 이미지는 변경이 없어서 한 번 build해놓고 계속 재활용해서 쓰면 되기 때문에 CD에 이미지 빌드하는 과정을 추가함.
서버 사양 : [Compact] 1vCPU, 2GB Mem, 50GB Disk [g1]
결과
평균 : 21.27067435초
X축 : 제출 ID, Y축 : 제출부터 채점완료까지 걸린 시간
docker run
할 때 CPU 개수를 1개로 제한마지막 채점이 끝난 시각: 59.665538초
평균 : 31.21916065초
X축 : 제출 ID, Y축 : 제출부터 채점완료까지 걸린 시간
<aside> 🤔 왜 더 좋아진 서버 사양에도 불구하고 위와 동일하게 요청을 보냈을 때 제출부터 채점 완료까지 걸린 시간의 평균 시간이 더 늘어나는가..? → compact와 standard의 CPU가 차이가 나는 것으로 확인
</aside>