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
복사
이론
