본문 바로가기
728x90

parallelStream2

Java ForkJoinPool의 함정: OutOfMemoryError 장애 분석기 32코어 서버에서 초당 10건의 요청만으로 32,000개의 스레드가 생성되어 서버가 다운된 이유를 추적한 기록TL;DR증상: OutOfMemoryError: unable to create native thread 발생으로 서버 다운트래픽: 최대 10 TPS (초당 10건 요청)원인: 요청마다 new ForkJoinPool(32)을 생성하고 shutdown()을 호출하지 않아 스레드가 무한 누적1. 장애 발생어느 날 아침, 금칙어 필터링 서버에서 다음과 같은 에러가 발생하며 프로세스가 죽었습니다.java.lang.OutOfMemoryError: unable to create native thread:possibly out of memory or process/resource limits reached .. 2026. 1. 31.
왜 ParallelStream을 써도 느릴까? - 자료구조의 중요성 개요담당하고 있는 회사 서비스에는 요청 처리가 지연될 시 알람을 받도록 되어 있는데 아래와 같은 지연 알림을 받게 되어 원인을 파악해 보고, 개선한 과정을 정리하려 한다. 1차 원인 파악지연 관련 정보우선 지연이 발생한 기능이 무엇인지, 어느 정도로 지연이 발생했는지를 정리하면 아래와 같다.기능: 문자 발송 시, 내가 수신자에 번호를 포함하여 발송하더라도 자동으로 필터링할 수신 거부 번호를 저장하는 기능기능 제약 사항: 한 번에 총 5만건 까지 저장이 가능하며, 저장 내용은 휴대폰 번호 - 메모 쌍으로 구성되어 있음지연 정보: 1시간동안 동일 경로 지연 약 10건 이상 발생지연 기능 로직 분석위 내용을 토대로 해당 시간대 발송을 요청했던 사용자의 로그를 파악해보았고, 해당 사용자가 호출한 기능의 구성을 .. 2025. 5. 11.