K6 3

평균 CPU 35%에서 발생한 90초 서비스 정지 — k8s CPU Limit과 CFS Throttling 원인 분석

개요배경: 인증 서비스 버전 업그레이드(Java 21 → 25, Spring Boot 3.5 → 4.1) 검증을 위한 12시간 롱런 부하테스트 수행사건: 일정 부하(약 400rps) 유지 중 약 90초간 서비스 처리 정지 발생 후 자연 회복결론 요약: k8s CPU Limit의 CFS Bandwidth Control에 의한 컨테이너 동결. DB·GC·특정 API 무관, Java 버전 무관. 신·구 버전 양쪽에서 동일 발생 확인증상처리량(throughput) 순간 0 부근까지 하락HikariCP 커넥션 풀 대기(pending): 0 → 163 폭증응답 최대 지연 3.5초 (= connectionTimeout 3000ms + α)HTTP 5xx 약 11건 — SQLTransientConnectionExcep..

Kubernetes 2026.08.13

CSR 방식을 SSR 방식으로 변경했더니 생긴 문제점

1. 개요요청량이 많이 몰리는 프론트 페이지가 있음.서비스의 모든 기능이용의 진입점으로, 누구나 반드시 거쳐야 하는 화면이다. Node.js로 운영된다. 이 페이지의 프론트 렌더링 방식을 CSR에서 SSR로 바꿨다. SSR이 더 우아한 선택처럼 보였으니까.그런데 그 변경 하나가, 신규 서비스 론칭 날 전체 서비스를 30분간 멈춰 세웠다. 렌더링 방식을 바꿨을 뿐인데 어떻게 시스템 전체가 마비됐을까. 2. 문제신규 서비스 출시 순간 해당 페이지로 Burst 트래픽이 몰렸다. 평소의 완만한 곡선이 아니라, 짧은 시간에 수직으로 꽂히는 트래픽이다. Node.js 서버가 과부하에 빠졌다. 요청 응답이 Internal Server Error로 떨어지기 시작했고, 그 상태가 약 30분간 이어졌다. 해당 페이지는 ..

Front-end 2026.06.29

java 25 가상스레드 적용 시 실제 서비스 기준으로는 얼만큼 성능이 향상될까?

1. 개요Java 21에서 정식화된 가상 스레드(virtual thread)는 Spring Boot 3.2+ 에서 spring.threads.virtual.enabled=true 한 줄로 켜진다. "켜면 처리량이 오른다"는 기대가 흔하다. 운영 중인 서비스(Spring Boot 4 / JDK 25 - vt pinning issue 해소)에 적용하면 실제로 얼마나 빨라질까? 결론은 단순하다. 처리량은 거의 오르지 않는다. 가상 스레드가 효과를 내는 조건은 "병목이 스레드일 때"로 한정되며, 잘 짜인 서비스는 대개 스레드보다 먼저 다른 자원에서 막힌다. 그리고 효과가 실제로 나타나는 지점은 처리량이 아니라 장애 격리다. 2. 가상 스레드는 언제 효과가 있나서버는 보통 요청 1개에 스레드 1개를 할당하는 th..

Back-end 2026.06.28