-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[info] socket buffer #325
Comments
최대 버퍼수는 OS를 타는 듯합니다. 일단 기존 linux에서 최대 버퍼를 알아보는 방식이 맥에선 먹히진 않았고요. 아래는 IBM 자료라 확실하지 않네요. SO_SNDBUF SO_RCVBUF 참고 : https://www.ibm.com/docs/en/ztpf/1.1.0.14?topic=functions-setsockopt-set-options-associated-socket |
맥에선 이거 같네요. sudo 명령어가 필요합니다. Tuning TCP for Mac OS X
The default send and receive buffer sizes can be set using the following sysctl variables:
If you would like these changes to be preserved across reboots you can edit /etc/sysctl.conf 첫번째 명령어는 이미 버퍼가 충분해서 안했고
아래 두 명령어는 적용해봤습니다.
(밑에서의 문제로 버퍼크기를 8000000으로 늘리려고 시도해봤는데 크다고 거절하네요. 키우는 데 내부 한계가 있나봐요. 일단 6000000으로 더 키워봄. ) 참고: Enabling High Performance Data Transfers |
버퍼를 조정해준 효과가 있긴 한 것 같아요.
+)더 늘려줘봤어요. net.inet.tcp.recvspace, sendspace 6000000/ kern.ipc.maxsockbuf: 15000000으로. 그런데도 같은 에러가 뜨네요. +)연결이 너무 많은 경우 이런 에러가 나타날 수 있다고 하네요( This is an error message triggered by the operating system where there are too many TCP/IP network connections.) |
저희가 테스트를 반복하면, 성공률이 올라가잖아요. 그 가설로 시스템이 알아서 버퍼를 조절해주는 게 아닐까, 얘기드렸었는데요. 실제로 그런 일을 해줍니다.
아래 글을 한번 읽어보면 좋을 것 같아요. 오토 튜닝에 대해 지나가듯 언급을 하고 있기도 하고 우리가 버퍼 수를 늘려야 할 근거가 될 수 있는 이야기를 하고 있어요. 튜닝하는 방법에 대해선 윗윗 댓글의 참고글을 참고! 리눅스 서버의 TCP 네트워크 성능을 결정짓는 커널 파라미터 이야기 - 1편 |
좋은 글들 잘 읽었습니다. 많은 것을 배워갑니다. 감사합니다. :) |
위와 같은 코드를 acceptSocket에서 accept() 한 이후 넣어두면
이렇게 나옵니다. option값을 조정해서 buff를 늘릴 수 있어요.
참고: https://www.joinc.co.kr/w/Site/Network_Programing/AdvancedComm/SocketOption
The text was updated successfully, but these errors were encountered: