20250527 개발일지. 소켓 관련 게시글 읽기 및 부하테스트 진행, 버그 발생.
점심쯤 도착
# 10만 연결에 대한 고찰
https://shdkej.com/blog/100k_concurrent_server/
https://tech.kakao.com/posts/391
# 메세지 브로커 필요이유
https://binux.tistory.com/74
# 부하테스트
브로드캐스트 100ms 주기로 더미클라이언트 100개 진행. 작동은 잘 되나 메모리가 점점 늘어남. 39MB까지
5000명은 커넥션 완료까지 2분정도 소요. 메세지가 밀려 받지 못함.
1000명도 브로드캐스트 메세지 한번 받고 멈춤
클라이언트 메세지 주기 1000ms
클라이언트 메세지 주기 100ms. 더미 클라 100개. 서버 처리 루프 대기 100ms 로 했더니 서버 특정 클라이언트 세션의 샌드큐가 15000개로 쌓여있음.
클라이언트 메세지 주기 100ms. 더미 클라 100개. 서버 처리 루프 대기 0ms 로 했더니 아래 에러 발생. 샌드큐 700개 정도 쌓임
System.InvalidOperationException: 'An asynchronous socket operation is already in progress using this SocketAsyncEventArgs instance.'
더미 클라이언트를 종료해도 샌드 작업한 데이터는 이후 계속 전송된다.
세션 샌드 부분 개선 필요. 더미 클라 50개정도에선 안쌓임.
# 버그 발생
부하가 클 경우 가끔 이상한 패킷 사이즈가 발생할 때가 있음. 패킷이 나눠져서 보내져서 이상한 부분을 읽는 것으로 예상중.
패킷 사이즈: 24947, 받은 바이트: 752 패킷 사이즈 -> 61 73 -> sa Test Message의 sa부분
# Zero Window 패킷 발생
https://m.blog.naver.com/goduck2/221117234954
# 버퍼 관리 개선 필요
# 버그 발생 2
리시브버퍼 개선 후 메세지 뒤 이상한 특수문자가 생성되는 문제가 생김
더미 클라 50개까진 샌드 큐 쌓이는 문제는 없음 -> 일부 밀림