쓰루풋 관점에서 본다면 메시지 큐같은 큐를 둬서 비동기로 처리하는게 무조건 쓰루풋이 높아짐 당연하게 동기 I/O에서 블락시키던 쓰레드를
효율적으로 비동기 큐에 넣고 리턴만 때리면 되니까 쓰루풋은 늘어남
레이턴시는 작업에 따라 좀 다름 사용자에게 응답이 가야 하는 작업이라면 개별 조금 늘어남(카프카 비용)
p95 p99는 개선될 수 있음
웃스음(112.168)2025-04-23 10:18
답글
댕감사
더진한초코우유(chiwoojw)2025-04-23 10:27
케바케임
일반적으론 논블로킹으로 이득 보기 어려운데, 동일 스레드 동일 요청에서 블로킹으로 db 조회 2번 하는 케이스에서는 당연히 논블로킹이 더 빠름
근데 보통의 논샤딩mysql에서는 in 절로 한방에 조회하고,
이전 조회 데이터가 다음 조회에 필요한 경우에는 논블로킹이 애초에 불가능함
뭔말이냐면 논블로킹을 가치있게 쓸 일이 생각보다 별로 없음
김대기(waitkim)2025-04-23 10:39
답글
근데 db io에서 논블로킹이 아니라 비동기 이야기가 왜 나오는거지? 그리고 비동기랑 동시성이랑 뭔상관임?
동기여도 여러 요청이 오면 동시성 이슈 있는건데
김대기(waitkim)2025-04-23 10:40
답글
내가 정확히 잘알고 질문한건 아니라 그냥 나의 무지성은 넘어가조
더진한초코우유(chiwoojw)2025-04-23 10:41
답글
암튼 답변고마워 메모해야지
더진한초코우유(chiwoojw)2025-04-23 10:41
db I/O 같은 경우에 비동기가 무조건 성능적으로 좋은거임? 이게 무슨 개똥같은 소리임?
db에 요청햇는데 콜백안박고 비동기적으로 쿼리 날리고싶다는거? 그럼 스프링은 그걸 어떻게 반응하는데
결국 메인 스레드나 다른 스레드에서 콜백이 필요한데 전체 아키텍처를 리액티브하게 만들꺼냐
성능도 어떤 관점에서 보냐에 따라 다름 - dc App
그니까 속도
속도가 무슨 속도 레이턴시? 쓰루풋? - dc App
쓰루풋 관점에서 본다면 메시지 큐같은 큐를 둬서 비동기로 처리하는게 무조건 쓰루풋이 높아짐 당연하게 동기 I/O에서 블락시키던 쓰레드를 효율적으로 비동기 큐에 넣고 리턴만 때리면 되니까 쓰루풋은 늘어남 레이턴시는 작업에 따라 좀 다름 사용자에게 응답이 가야 하는 작업이라면 개별 조금 늘어남(카프카 비용) p95 p99는 개선될 수 있음
댕감사
케바케임 일반적으론 논블로킹으로 이득 보기 어려운데, 동일 스레드 동일 요청에서 블로킹으로 db 조회 2번 하는 케이스에서는 당연히 논블로킹이 더 빠름 근데 보통의 논샤딩mysql에서는 in 절로 한방에 조회하고, 이전 조회 데이터가 다음 조회에 필요한 경우에는 논블로킹이 애초에 불가능함 뭔말이냐면 논블로킹을 가치있게 쓸 일이 생각보다 별로 없음
근데 db io에서 논블로킹이 아니라 비동기 이야기가 왜 나오는거지? 그리고 비동기랑 동시성이랑 뭔상관임? 동기여도 여러 요청이 오면 동시성 이슈 있는건데
내가 정확히 잘알고 질문한건 아니라 그냥 나의 무지성은 넘어가조
암튼 답변고마워 메모해야지
db I/O 같은 경우에 비동기가 무조건 성능적으로 좋은거임? 이게 무슨 개똥같은 소리임? db에 요청햇는데 콜백안박고 비동기적으로 쿼리 날리고싶다는거? 그럼 스프링은 그걸 어떻게 반응하는데 결국 메인 스레드나 다른 스레드에서 콜백이 필요한데 전체 아키텍처를 리액티브하게 만들꺼냐
잘모르니까 개똥같은 소리를하지 ㅡㅡ