프로그래밍

리눅스랑 윈도우는 서로 네트워크 구성이 다른가요?

udp 프로토콜로 큰용량의 데이터를 스트리밍하는 프로그램을 구축했는데

 

윈도우에서 MSVC로 빌드, 실행하면 빠방하게(예상한대로) 매우 잘 돌아갑니다.

같은 코드를 우분투로 가져와서 cmake와 make로 빌드 후 실행 하면 엄청 버벅입니다.

원인은 어쨋든 간에 UDP 버퍼가 계속 쌓이는 걸로 추측됩니다. (패킷 모니터링으로 확인하고 내린 결론입니다.)

 

OS와 빌드도구가 바뀐 것 이외에 모든 환경은 동일합니다.(연결된 LAN, 하드웨어 스펙)

커널 파라미터에서 udp 값을 늘려줘야 하나.. 싶어서 늘려줬는데 별 다른 건 없이 여전히 답답하구요. (심지어 windows의 udp buffer 값보다 작은 것도 아니였음)

 

고용량 데이터 말고, 그냥 한줄짜리 스트링 데이터를 20ms마다 보내봤는데.. 이것도 우분투에서는 10초에 한번정도씩 버벅이네요.

한줄짜리 데이터를 계속 보낸다고 버벅일 스펙이 아닌데 ㅎㅎ;;

 

아무리 생각해도 잘 모르겠네요. 구글링을 해봐도 적당한 정보도 없는 것 같고..

혹시 이 이슈에 대해서 아이디어가 있으신 분 있나요?

22개의 댓글

2023.08.08

대용량 송수신이면 소켓 버퍼 잘 써야함.

반대개념은 패스트핑. 소용량 빠른반응 필요할때고.

0
2023.08.08

데이터 받는거면 수신해서 내부 별도버퍼에 저장하는 스레드, 버퍼에 저장된거 처리하는 스레드 돌려주는게 쉬운편임. 수신속도 신경 안써도 되니깐

0
2023.08.08
@가모가모

수신은 아니고 송신입니다. 그리고 정확히는 libdatachannel이라는 libwebrtc 기반으로 만든 라이브러리를 사용 중인데

이게 webrtc(UDP p2p) API를 이용하는 라이브러리입니다.

 

3090,i9,32gb RAM 달린 데스크톱에 우분투 깔고 돌려보니까 여전하네요. (윈도우는 그것보다 더 안좋은 스펙으로도 잘 됨)

우분투에서 뭔가가 있는것같은데 도저히 모르겠습니다.

 

미치겠네요.

0
2023.08.09
@리다실

로 레벨에서 동작하는 라이브러리 쓰는거면 os에 맞는거로 매칭하는게 좋을거같음.

많이 걸리는게 Endian 방식 차이때매 뒷단 그대로 쓰고 앞단에서 비트순서 정렬하게 하면 저렇게 괴랄하게 퍼포먼스 떨어질수도 있겠네

0
2023.08.09
@가모가모

Unix 기반 os용 통신 라이브러리 쓰라는얘기

0
2023.08.09
@리다실

바이트단위로 직접 핸들링하고 있으면 컴파일러가 처리해주는데

라이브러리 쓰고있으니 못믿는거

0
2023.08.09
@리다실

UDP 최대속도가 뽑아도 초당 15Mb 정도일 거임.

로컬 메모리 안에서 단순 송수신이면 코어 하나로도 떡을 칠수있음:

글카는 별도연산 보내는거 아님 통신성능과는 하등 상관없음.

0
2023.08.09
@가모가모

네, 알고있습니다. 다만 제가 하는 작업이 카메라에서 cv 라이브러리를 이용해 작업하고, 작업결과를 송신하는건데 그 과정에서 그래픽카드가 필요해서 적었습니다. 다른 의미로 적은것은 아닙니다.

 

라이브러리 제작자에게 문의했을때는 "os에 따른 라이브러리 성능/동작 차이는 없습니다"라는 답변을 받기는 했는데, 믿을만한 건지는 잘 모르겠구요. 님이 말씀해주신 엔디안 차이도 염두에 두고 테스트를 해봐야겠네요.

 

일단 무선랜이 아니라 유선랜으로 해보니 상황이 좀 더 개선되더라구요? 여전히 답답한건 매마찬가지지만..

그래서 우분투용 네트웤 드라이버가 우분투랑 호환성이 안맞는건가 의심중입니다.

 

그리고 한 디바이스가 송수신을 다 하는것은 아니고 각자 디바이스에서 송신과 수신을 분담합니다.

 

끙.. 미치겠네요.

0
2023.08.09
@리다실

동작에서 딜레이가 생기는 부분이 이미지 처리완료 여부랑 상관이 없어보이니 글카얘기는 제외하는건데

그냥 수신받는대로 파일시스템에 바이너리 덤프 저장하는 예제 만들어서 비교해보면 명확할듯.

0
2023.08.08

음.. 컴파일 환경이 다르기때문이 아닐까 라는 생각이 들긴 하는데...

아래 스택오버플로우 글을 보면

https://stackoverflow.com/questions/70693970/why-do-i-get-different-results-from-c-code-running-in-gcc-and-visual-studio-runn

댓글에 "컴파일러 별로 메모리 관리방법이 다르기때문에 결과가 다름"이라는 말이 있는데

해당 코드가 굉장히 간단한 코드임에도 동작이 달라지고있고

무엇보다 본문에 버퍼쪽의 문제가 의심된다고 하니...

의심해볼 여지는 있는거 같음

0
2023.08.08
@막굴러

흐음.. 이 방법도 테스트해보고 싶긴한데 어떻게 해야할지 모르겠네요

리눅스에서 msvc가 설치가 안되는걸로 아는데

반대로 윈도우에서 g++ 쓸려니 cmake 설정이 너무 빡빡해서 힘들더라구요.

0
2023.08.08
@리다실

우분투에서 비주얼스튜디오 설치해서 사용가능할텐데.. 우분투 인스톨할때 gui를 빼먹고 인스톨 해서 그런건가요?

0
2023.08.08
@막굴러

mvsc가 linux를 지원 안하지 않나요?

대부분은 vscode를 에디터로 써도 컴파일은 결국 gnu를 사용하던데..

0
2023.08.08
@리다실

음.. 검색해보니까 그런거같긴하네요

그럼 vs에서 g++를 사용해서 컴파일 해보는건 어떤가요?

0
2023.08.08
@막굴러

너무 둘러둘러 가긴했는데...

그냥 리눅스쪽에서 디버깅을 하는게 낫지 않을까요?

1
2023.08.08

음.. 검색하다가 하나 떠오르긴 했는데...

버퍼쪽 용량 설정의 호환문제가 아닐까요?

https://stackoverflow.com/questions/14010957/this-function-gives-different-result-if-compiled-with-visual-c-or-gnu-g

이거 한번 참고해보세요

0
2023.08.16
[삭제 되었습니다]
2023.08.17
@호호삼호호

0
2023.08.17
@리다실
[삭제 되었습니다]
2023.08.17
@호호삼호호

아닙니다 전혀관계없어용 ㅎㅎ

0
2023.08.17
@리다실
[삭제 되었습니다]
2023.08.17
@호호삼호호

오해가있으신거같은데 저는 김해사람이 아니에요 대구사람입니다~

0
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 추천 수 날짜 조회 수
5719 [프로그래밍] 하이브리드 웹뷰기반 앱은 rn이 정석이야? 3 잠적자 0 21 시간 전 164
5718 [프로그래밍] c# webview2 도움요청함.. 7 carpediem 0 1 일 전 120
5717 [프로그래밍] 현업 개발자형들 맥씀? 9 이또히로부미 0 1 일 전 219
5716 [프로그래밍] libtorch에서 cuda 안불러와지는거 도움! 2 Hakat 0 2 일 전 125
5715 [프로그래밍] 뭔가 게시판이 애매해서 그런데 gis 잘아는 사람? 1 하늘늑대 0 3 일 전 165
5714 [프로그래밍] 컴포즈가 프리뷰랑 폰에서 다르게 동작해요 1 집에가게해줘 0 3 일 전 118
5713 [프로그래밍] 난바보다) 크로미움 램사용량 문제 일단 해결 2 ye 0 5 일 전 284
5712 [프로그래밍] k8s DNS 이슈는 해결이 안되나보다. 잉텔 0 5 일 전 171
5711 [프로그래밍] 분노) 진짜 유튜브 구글 패악질 토나오네 씨발 17 ye 0 7 일 전 770
5710 [프로그래밍] 프론트엔드 공부하려는데 언어 추천좀 7 스트리플 0 7 일 전 352
5709 [프로그래밍] 객체지향 뽕에 취하지마라 8 69746974 2 8 일 전 409
5708 [프로그래밍] 요즘 앱개발 인력시장 어떰..3년차 2 센치해요 0 11 일 전 388
5707 [프로그래밍] 컴포즈 Box 컴포넌트가 안 나와... 1 집에가게해줘 0 13 일 전 148
5706 [프로그래밍] 아 ssl 적용햇는데 개정신없네 9 넌또화나있네 0 13 일 전 305
5705 [프로그래밍] 패스트 캠퍼스 <---- 얘내는 가격 인상 원툴임? 5 조강현 0 16 일 전 398
5704 [프로그래밍] 클라가 파이썬 셀레니움같은거 써서 클릭하고 그러는걸 감지 ... 5 리옴므 0 17 일 전 266
5703 [프로그래밍] leetcode 50일 달성 1 JimmyMcGill 1 17 일 전 237
5702 [프로그래밍] 그냥 개인공부용 git 만들건데 5 년째재수강 0 17 일 전 336
5701 [프로그래밍] html 자바스크립트 질문 19 책걸이 0 18 일 전 370
5700 [프로그래밍] 아니 시바 이게 무슨일이야 4 인간지표 0 19 일 전 380