////
Search

마이페이지 (도라)

http://43.203.234.171//metrics/hikaricp.connections

TPS

동시 사용자 수 100명, 응답 시간 목표 1초 이내 → TPS = 100TPS

HikariCP

이론

Connection Pool 레벨에서 데이터베이스 연결 관리 담당
spring: datasource: hikari: maximum-pool-size: 30 auto-commit: false connection-timeout: 3000 max-lifetime: 50000
Groovy
복사
이론

MySQL 데이터베이스 기본 설정

최대 허용 연결 수 : 151
SHOW VARIABLES LIKE 'max_connections';
Groovy
복사
현재 연결 수 : 31 (02:11)
SHOW STATUS WHERE `variable_name` = 'Threads_connected';
Groovy
복사

부하 테스트

VUser: 100 → 200
Thread: 1
Processor: 2 (CPU 코어 수)
테스트 시간: 10분
Ramp-Up 시간: 5분
TPS 목표: 100TPS

결과

maximum-pool-size
30 → TPS , activeConnection:
50 → TPS , activeConnection:
100 → TPS , activeConnection:

Tomcat Thread

HTTP 요청을 처리하기 위한 스레드
server: tomcat: threads: max: 200 min-spare: 50 accept-count: 100 max-connections: 8192
Groovy
복사

Java Thraed → ThreadPoolTaskExecutor

비동기 작업을 처리하기 위한 스레드
@Bean public ThreadPoolTaskExecutor taskExecutor() { int processors = Runtime.getRuntime().availableProcessors(); ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); executor.setCorePoolSize(processors); executor.setMaxPoolSize(processors * 2); executor.setQueueCapacity(50); executor.setThreadNamePrefix("AsyncExecutor-"); executor.initialize(); return executor; }
Groovy
복사
이론

참고 자료