Replies: 5 comments
-
Connection Pooling 이란
HikariCP 설정connectionTimeout클라이언트(즉, 사용자)가 풀에서 커넥션을 기다리는 최대 밀리초 수
idleTimeout커넥션이 풀에서 유휴 상태로 유지될 수 있는 최대 시간
keepaliveTime데이터베이스나 네트워크 인프라에서 시간 초과가 발생하지 않도록 HikariCP가 커넥션을 활성 상태로 유지하려고 시도하는 빈도
maxLifetime풀에서 커넥션의 최대 수명을 제어
minimumIdleHikariCP가 풀에서 유지하려고 하는 최소 유휴 커넥션 수
maximumPoolSizeConnection Pool이 가질 수 있는 최대 커넥션 개수
MySQL 설정
cachePrepStmtsprepared statement의 캐싱 여부
prepStmtCacheSize하나의 커넥션에 캐싱할 prepared statement의 개수
prepStmtCacheSqlLimit캐싱할 prepared statement의 최대 길이
적절한 커넥션 풀 사이즈 찾기이론상 데드락을 피하면서 모든 요청을 처리할 수 있는 커넥션 개수의 공식은 아래와 같습니다.
|
Beta Was this translation helpful? Give feedback.
-
TPS 값 설정이 중요한 것 같다. 정리결국 톰캣 값을 설정하기 위해선 적절한 TPS 값 설정이 선행되어야 할 것 같다. 톰캣 값 설정 이 목표 -> X TPSTPS : 1초동안 수행될 수 있는 트랜잭션 수 라고 한다. 이 때의 트랜잭션은 Business Transaction, 즉 일반적인 요청 건수를 생각하면 될 것 같다. Warning 제대로 튜닝되지 않은 서비스는 Saturation Point 를 지나면 오히려 TPS 가 떨어진다.
+) SW Maestro 를 하는 사람의 블로그를 보면 TPS 가 2~3000 정도 나오면 괜찮은 서버라고 한다. 목표 TPS 정하기우리의 첫 목표는 프리코스 사용자 를 고려해 보는 것도 괜찮을 것 같다. 1. 프리코스 사용자의 상시 업데이트프리코스 사용자가 어떤 행동을 할 지는 모르겠다. 이 경우 우선 최대한 많은 사용자가 사용할 수 있도록 준비해 두고, 성능 지표를 보면서 조금씩 낮추어 나가도 좋을 것 같다. 2. 최종 코딩테스트 사용자의 동시다발적 접속이 때는 생성 / 업데이트 요청은 거의 없을 것 같다. 테스트 방법무조건 성능 테스트 툴을 사용해 보아야 할 것 같다.
JMeter가장 참고할 수 있는 아티클이 많아보임\ nGrinder몰리가 보내준 글 존재 Tomcat 값 설정우선 스레드는 코어 개수에 따라 달라지는 것 같다. 그리고 Connection은 NIO Connector 의 동작을 조금 더 살펴봐야 하는지도 모르겠다. 대기큐의 크기는 더 모르겠다. 참고 |
Beta Was this translation helpful? Give feedback.
-
CPU bound / IOBound 정하고 가야 할 것 같다. |
Beta Was this translation helpful? Give feedback.
-
병목을 줄이기 위해 DB 를 조금 더 손봐야 할 것 같다.
|
Beta Was this translation helpful? Give feedback.
-
10월 11일 금요일에 회의할 예정입니다.
각자 자료조사 해오기~
Beta Was this translation helpful? Give feedback.
All reactions