본문 바로가기
Log/Experiment

exp014_DB Connection Pool 수 변경 시에 따른 성능 변화 추가 실험

by RIEM 2023. 3. 6.

Title

exp014_DB Connection Pool 수 변경 시 게시글 조회 요청 처리량 변화 관찰

Research Question

DB Connection Pool 수를 올리면 게시글 조회 요청에 대한 Throughput이 늘어날까?

Summary

  • 참조계에서도 Connection pool을 10, 40, 80 설정을 바꿔서 실행해보았으나 유의미한 성능 변화를 관찰할 수 없었음
  • Connection pool 설정 또는 범위 결정에 문제가 있는 것으로 추측됨.
  • 또는 Connection pool이 성능 자체에 영향을 미치지 않는 상황일 가능성도 있음

Background Information

Situation

  • 부하 테스트 툴 nGrinder을 활용하여 경매 래플 어플리케이션 시스템의 서버 부하 테스트 진행중인 상황.
  • 이전 실험(test-pyramid-20230303-003, test-pyramid-20230303-004)에서 Connection pool 증가에 따른 게시글 생성 성공율 변화를 관찰하려 했으나, 유의미한 성능 개선이 이뤄지지 않음
  • 이러한 결과에 따라 과연 갱신계가 아닌 참조계의 성능에도 유의미한 성능 개선이 발생하지 않는가라는 의문을 해소하기 위해 이 실험을 기획
  • 만약 이번 참조계 실험에서도 connection pool 수 향상에 따라 차이가 없다면 connection pool 설정에 문제가 있는 것으로 예상됨

Procedures

Screen Shot 2023-03-04 at 12 21 18 AM

비교할 과거 실험 : test-pyramid-20230301-005
현재 실험 : test-pyramid-20230303-005

Data Recording & Analysis

test-pyramid-20230303-005

Screen Shot 2023-03-04 at 12 40 44 AM

Screen Shot 2023-03-04 at 12 41 09 AM
그래프의 변동이 매우 컸다.

비교할 과거 실험 : test-pyramid-20230301-005

  • VUser : 1000
  • Duration : 10ms
  • cache layer : Redis Cloud
  • PM2 : No cluster mode
  • DB max Connection : default(10)
  • Result
    • TPS : 1459
    • MTT : 654

현재 실험 : test-pyramid-20230303-005

  • VUser : 1000
  • Duration : 10ms
  • cache layer : Redis Cloud
  • PM2 : No cluster mode
  • DB max Connection : 40
  • Result
    • TPS : 1480
    • MTT : 645

TPS, MTT는 큰 차이가 없다. 두 실험의 그래프를 비교해보자.

Screen Shot 2023-03-04 at 12 46 01 AM

그래프도 큰 차이가 없다. 이건 뭔가 잘못된 것이다. connection pool 10과 40의 차이가 거의 나타나지 않는다. 그렇다고 해서 connection pool의 설정이 잘못되었다는 가설을 검증하기에는 아직 데이터가 부족하다.

여기서 한번만 더 가보자. 만약 connection pool의 default 값이 10이 아니라면? ChatGPT도 블로그들도 모두 10이라고 했지만, 만약 그게 틀렸다면?

한번 connection pool을 현재 DB max_connection 설정값에 가까운 80으로 바꿔서 실험해보자. 만약 80으로 설정해도 큰 변화가 없으면 connection pool 설정에 문제가 있거나 아니면 현재 상황에서 connection pool은 성능 개선의 변수가 되지 못하는 것이다.

test-pyramid-20230303-006

추가 현재 실험 : test-pyramid-20230303-006

  • VUser : 1000
  • Duration : 10ms
  • cache layer : Redis Cloud
  • PM2 : No cluster mode
  • DB max Connection : 80
  • Result
    • TPS : 1450
    • MTT : 658

Screen Shot 2023-03-04 at 1 14 29 AM

오히려 등락폭이 더 커졌다.

Screen Shot 2023-03-04 at 1 14 44 AM

이전 실험과 큰 차이가 없다.

Screen Shot 2023-03-04 at 1 16 44 AM
지금까지 Connection pool 설정을 계속 바꾼 결과 유의미한 성능 변화를 확인할 수 없었다.

Discussion

Conclusion

  • 참조계에서도 Connection pool을 10, 40, 80 설정을 바꿔서 실행해보았으나 유의미한 성능 변화를 관찰할 수 없었음
  • Connection pool 설정 또는 범위 결정에 문제가 있는 것으로 추측됨. 또는 Connection pool이 성능 자체에 영향을 미치지 않는 상황일 가능성도 있음

Reference

Appendix

test-pyramid-20230303-005

Application Server

Screen Shot 2023-03-04 at 12 49 19 AM

RDS

Screen Shot 2023-03-04 at 12 50 28 AM

test-pyramid-20230303-006

Application Server

Screen Shot 2023-03-04 at 1 15 29 AM

RDS

Screen Shot 2023-03-04 at 1 15 54 AM

댓글