SocketAsyncEventArgs Pooling
안녕하세요 강의 참고하면서 서버 만들어 보고 있는데
https://learn.microsoft.com/ko-kr/dotnet/api/system.net.sockets.socketasynceventargs?view=net-8.0#remarks
해당 문서에서 pooling이 있더라구요 생각해보니 동접이 꽤 많다라고 가정하면(약 3000?) 이 SocketAsyncEventArgs 생성 소멸이 많이 일어난다고 생각했습니다.
그래서 pooling을 한번 만들어보고 있는데 만드는 중에 Dispose를 언제 해줘야 할지 감이 잘 안옵니다.
현재는 Client가 Disconnect될 때 Push하게 되는데 Push에서 poolCount가 3000이 넘으면 이걸 AllClear라는걸로 pool에 있는 SocketAsyncEventArgs를 다 Dispose해주는 상황인데 이렇게하면 3000이 넘기 전까지는 메모리에 계속 남아 있으니 먼가 찜찜합니다.
이런 문제가 있는데 좋은 해결책이 있을까요?
감사합니다!
답변 1
1
우선 현재 M2 서버에서는
Session 쪽에 제일 많이 사용하는 read/write 관련된 AsyncEventArg를
멤버 변수로 들고 있으면서 계속 재사용합니다. (사실 이게 풀링보다 상위 호환이죠!)
따라서 생각보다 풀링을 적용하더라도 별다른 차이가 일어나지 않을 확률이 높습니다.
Session 생성/소멸은 아주 빈번하게 일어나는 것이 아니기 때문이죠.
풀링을 한다면 차라리 Session을 풀링해서 몇 천개를 미리 만들어놓는 것을 고려할 수는 있겠네요.
학습 전 커리큘럼 관련 질문 드립니다
0
112
1
강의 커리큘럼 질문 드립니다
0
62
1
수업질문은 아닌데요^^
0
117
1
게임 로직 루프에서 게임 틱 누락으로 인한 높은 CPU 사용 문제
0
85
1
선 이동과 히트 판정에 대해 질문 드립니다.
0
91
1
Job Scheduler - Cache locality
0
76
2
MMO 3D 게임 서버의 스킬 판정을 어떻게 하면 좋을까요?
0
190
2
코드 머지와 관련하여.
0
95
1
퀘스트 처리 시 궁금한게 있습니다.
0
116
2
Nagle Algorithm
0
100
1
현재 강의를 이용하여 3D 게임을 만들 경우 변경되야 될 사항들에 대해 궁금합니다.
0
134
2
ResourceManager에서 Multiple Sprite를 로드하는 방법
0
102
1
M2는 업데이트가 끝난건가요?
0
149
1
Interpolation & Server Tick Frequency
0
172
2
서버에서 디스커넥트되시는분들 JWT 관련 참고하셔요
0
121
1
aws 와 microsoft azure 중 aws 선택하신 이유가 궁금합니다.
0
189
1
강의는 끝인건가요?
0
332
2
아이템 강화 테이블 관련
0
226
2
강의 관련 질문 드립니다.
0
238
1
리니지1의 이동 질문
0
402
2
버그에대한 썰
0
132
1
포탈 프로젝트에 서버 코드에 에러가 뜨네요
0
139
1
아이템 수량에 관해서 질문입니다.
0
143
1
퀘스트 관련 질문 드립니다.
0
144
1





