Jmeter로 게시글API를 1000TPS로 쐈을 때 데드락이 걸렸습니다
제가 생각한 원인은 하나의 요청에 인가를 위한 회원DB 접근과 게시글 DB 접근 두번의 접근으로 인해 톰캣의 스레드 카운트가 부족해서 생기는 문제로 판단했습니다(배민 기술블로그 참고)
그냥 간단하게 톰캣의 스레드 카운트를 커넥션 풀보다 낮게 설정하면 해결되긴하지만 원인이 요청이 완료될때까지 스레드를 놓지 않아서 생기는 문제라고 생각되더라구요 그럼 여기서 궁금한점이 Webflux를 사용하면 비동기로 처리하니 이방법으로도 해결할 수 있나요?
Webflux를 적용해보지 않았던게 관련 기술스택도 모두 변경해야된다는 글을 보고 전체로직을 바꿀만한 문제인가? 라는 질문엔 No라고 생각해서 그냥 스레드 카운트만 줄였습니다
실무에선 어떤가요?? 아니면 제 생각이 잘못되었나요?? 태클과 ㅈㄹ 모두 환양
프레임워크 전체를 갈아엎는 정신나간 짓은 잘 안하죠
Webflux로 해결 가능한 문제긴한가용??
이건 대체 뭔소리야.. 너 데드락이 뭔지는 알아?
이런 개씹소리들을 하니까 면접관이 이력서에 webflux 있으면 풀발기를 하는거야
https://techblog.woowahan.com/2663/
엇!
형님 제가 잘못 알고 있는건가요?? 저는 위 기술 블로그 참고했을때 톰캣의 스레드 카운트가 커넥션 풀보다 많아 요청 두개를 처리할때 톰캣 스레드가 커넥션풀의 자원을 기다리고 있다고 생각했구 기술 블로그에서 언급한 것 처럼 데드락이라고 생각했는데 제가 기술블로그를 잘못이해한건가요??
따끔한 욕설 기대중 하읏
그게 데드락이냐.. 이거 완전 막장이네 원인 스스로 알아보고, 웹플럭스의 ㅇ도 꺼내지마 웹플럭스는 상상조차 하지마
사랑해요 김대기~ CS는 사랑입니다~
단순히 기다리면 풀리는거면 데드락이 아니야
형님 제대로 공부하고 다시 오겠습니다ㅋㅋㅋㅋㅋ
배민 글은 웹서버 이야기가 아닌거같음
데드락은 mysql로 치면 s락 x락을 동시에 획득하려고 하는 두개이상의 스레드가 s락만 획득하고 x락을 기다리는 상태에 발생함
커넥션 풀이 부족한거는 Webflux랑 무관하고 너가 트랜잭션 범위를 조정해서 빨리쓰고 반납하거나 애플리케이션의 커넥션 풀 사이즈를 늘리거나 Mysql 서버 성능을 높이거나 해야됨 자세한건 나도 신입이라 잘 모름
단일 인스턴스 mysql 쓰면 뾰족한 답이 없어 커넥션 수 늘리면 서버 배포할때마다 그만큼 늘어날테니 주옥될거고 mysql 장비 부하도 생각해야지 그러니까 캐시 바르거나 분산디비 쓰는거
그 상황이 벌어졌을 때 쓰레드 덤프는 떠봤음? 아니면 pinpoint 같은거 공짜니까 그거 구성하고 Jmeter로 쐈을 때 어디서 병목 걸리는지 확인해봐