그림과 같이 golang의 redigo 라이브러리를 사용하여 redis 연결 풀을 작성하고 ab 테스트를 사용하여 10,000개의 동시 읽기 작업을 시뮬레이션했습니다. 그러나 redis가 정보를 아무리 새로 고쳐도 연결 수는 항상 2개이며 4개뿐입니다. 그런데 쓰기 작업을 사용하는 연결이 최대 60개가 넘는데, netstat-ano를 보면 원격 127.0.0.1:6379에서 실제로 TIME_WAIT 상태의 TCP 연결이 많이 있음을 알 수 있습니다. ? (redis 구성의 최대 연결 수는 10,000입니다.)
(오른쪽 netstat 창은 무시해주세요. 그냥 스크린샷을 제대로 못찍은 것 뿐이에요. 사실 제가 직접 찾아서 필터링해본 결과 원격에서 TIME_WAIT 상태의 TCP 연결이 실제로 많이 발생하고 있었습니다. 127.0.0.1:6379)
PS: 또 다른 질문은 ab 테스트 프로그램의 최대 -c 매개 변수가 10,000만 될 수 있다는 것입니다. 도움말 문서를 직접 표시하기 위해 100,000을 입력했습니다. . .
연결 풀이 비어 있다고 생각하시나요?
이렇게 쓰세요
으아악