부하테스트 하는데

각 요청당 20ms 안쪽으로 안정적이게 끊기다가

갑자기 POST 요청 한개가 1초 2초 5초 이지랄나더니

다른 GET 요청들도 똑같이 4초 5초 이러다가

request timeout나서 부하테스트 실패 뜸


근데 신기하게도

디비서버 cpu 사용량도 35%인가 밖에 안되고

RAM도 넉넉한거 같은데

왜 저러는거임?

백엔드 서버도 멀쩡해보임


저거 POST 코드 잘못짜서 인증 여러번 하느라 시간 오래걸리는데

여러 테이블 lock 걸어서

다른 쿼리까지 느려지게 한게 원인임?


찾아보니 mysql은 isolation level이 REPEATABLE_READ인데

read 할 때도 테이블에 락건다네?

그럼 write 코드가 문제가 아니라 read 코드 하나 잘못짜서

read query 하나가 겁나 오래 걸리면

그거 때문에 나머지 쿼리 다 락 기다려야 해서

저사단이 난건가?