3개월간 분석했던 문제의 원인을 드디어 찾아내 개선했던 경험을 기록한다.근본적인 원인은 부족한 CPU 코어 위에서 Netty 이벤트루프와 가상 스레드가 급증하는 트래픽을 처리하기 위해 과도한 일을 떠안으면서 스케줄링 지연이 발생한 것이다.
N억개 이상의 Documents에 신규 필드값 (key-value) 값을 추가해야 하는 요구사항이 들어왔다. 실제 운영중인 서비스에 영향도를 최소화하기 위해, 어떠한 전략으로 작업해야할까?
평상시에는 메모리 사용량이 300MB 안쪽으로 사용했던 서비스가, 트래픽이 몰리는 피크시간 때마다 메모리사용량이 메모리 임계치만큼(6G) 치솟는 현상이 발생했다. 이후, 지속적인 GC로 6GB → 300MB → 6GB → 300MB 로 요동을 치다가 트래픽이 잠잠해지면

FeignClient 호출 응답 지연시, 스레드의 상태가 Runnable은 이유를 JVM관점에서 분석해보자

실무에서 이미지 동영상의 binary 파일로 인해 문제가 되었던 CPU, Memory 사용량을 줄이기 위해 개인적으로 문제를 분석해보고 개선점을 찾아내기 위한 작업들의 기록입니다. 들어가며 특정 이벤트가 발생시, 단말에서 이미지 메타데이터와 동영상을 서버쪽으로 전송하

Request-per-thread 구조의 spring boot. Tomcat의 존재의미란..

코어수와 libuv Thread Pool의 개수를 조절하며 CPU-Bound 작업의 Context Switching 영향 검증하기

동아리에서 사용하는 RDS 및 Redis를 문서화하였다 (with terraform). 추가로, Redis와의 강한 의존도를 해결하기 위한 개선점을 제시하였다.

로드테스트에 이은, Requset 처리 순서 분석 결과

수업시간에 회원가입하다가 서버가 터져버린 성균관대 코딩 채점 플랫폼의 로드테스트 성능 개선기 (18초 -> 1초)

lower bound, upper bound 두가지 다른 방식으로 구현하기

Functional Interface인 Comparator 인터페이스가 추상메서드가 2개임에도 괜찮은 이유