HotFoxy
불여우의 전직 이야기
게임 서버 개발자가 되어 보죠!
전체 방문자
오늘
어제
  • 분류 전체보기 (135)
    • 연구한 이야기 (26)
      • 깊게 공부해보기 (7)
      • 문제 해결 이야기 (12)
      • 맡은 업무 이야기 (6)
    • 전직 이야기 (0)
      • 1년이라는 시간 (5)
      • 프로카데미 이야기 (5)
    • 공부한 이야기 (87)
      • 알고리즘 (7)
      • 리눅스 (11)
      • 클라우드 (24)
      • 윈도우 OS (17)
      • 윈도우 소켓 프로그래밍 (11)
      • 네트워크 (16)
      • Docker & K8S (0)
      • 기타 (1)
    • 자격증 이야기 (12)
  • MSB : Mad Square's Brawl
  • GITHUB

인기 글

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
HotFoxy

불여우의 전직 이야기

연구한 이야기/문제 해결 이야기

서버 스트레스테스트 시 일정 주기로 멈춰요!

2023. 12. 9. 15:07

RUST만든 웹서버를, jmeter를 통해 stress test를 진행하였다.

만든 서버는 config 파일을 watch 하고 읽어서,
웹으로 들어온 요청에 json으로 적절히 응답해주는 간단한 서버이다.

그런데..!
스트레스 테스트 시 몇십 초 이후, (약 7000+개의 connection이 이뤄진 다음),
connection 이 아무리 시간이 지나도 이루어지지 않는다.
그런데, 또 몇십 초 지나면, 일부 connection은 수립되기는 한다.
이 현상이 반복되고 있었다...

여러 문제를 체크해 보았다.
로컬에서 테스트도 해보고,
cpu부하나 대역폭도 체크해 보았다.

처음에는 무지하게도 `TIME_WAIT` 을 의심했는데,
TIME_WAIT을 없애기 위해 연결 종료시에 linger를 이용해 RST를 보내도 봤다.
TIME_WAIT을 곰곰이 생각해 보니 connection이 성립 안 되는 문제와는 연관이 없었다.

정확히 t4g.nano 로 올린 ec2 instance에서만 문제가 발생했다.
그래서 해당 서버를 이것저것 살펴본 결과,

nf.conntrack_max = 7680


nf.conntrack_max 값이 눈에 들어왔다.

해당 값이, 7680이었다. 마침 우리 connection 멈추는 개수와 비슷했다.
그래서 찾아본 결과,

docker 를 사용하게 되면, 내부적으로 iptables 모듈 라우팅 기능을 이용하기 위해 해당 모듈이 활성화 되고,
nf.conntrack_max 값에 도달하게 되면, 더이상 네트워크 라우팅 정보를 담을 수 없어서..
net connection이 drop된다!

이러한 문제는, 사실 리눅스 명령어인 'dmsg' 만 알고 있었어도 바로 알 수 있었다...
dmsg를 보니, nf.conntrack_max 때문에 network connection 이 drop된다고 나와 있었다!

저작자표시 (새창열림)

'연구한 이야기 > 문제 해결 이야기' 카테고리의 다른 글

Android Studio NDK breakpoint가 잡히지 않아요!  (0) 2024.03.02
dockerfile은 죄가 없다.  (4) 2024.02.24
jenkins(image) 에서 docker buildx를 사용하고 싶어요!  (0) 2023.12.22
CMake 와 static library에서의 종속성 관리  (0) 2023.12.16
docker exec format error  (0) 2023.12.09
    '연구한 이야기/문제 해결 이야기' 카테고리의 다른 글
    • dockerfile은 죄가 없다.
    • jenkins(image) 에서 docker buildx를 사용하고 싶어요!
    • CMake 와 static library에서의 종속성 관리
    • docker exec format error
    HotFoxy
    HotFoxy
    1년 동안의 고군분투 전직 이야기! ..가 완료되어, 게임개발자로 살아남는 이야기!

    티스토리툴바