🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.os.linux.programowanie
1 messages
1 total messages Started by Queequeg Fri, 08 Mar 2019 12:24
UDP na localhost, gubienie datagramów
#72880
Author: Queequeg
Date: Fri, 08 Mar 2019 12:24
33 lines
2286 bytes
Hej,

Mam (chyba dosyć nietypowy) problem.

Jest aplikacja, której nie mogę zmienić, i która wysyła datagramy UDP 
do skonfigurowanego serwera. Częstotliwość tych datagramów jest różna.

Skonfigurowałem aplikację tak, żeby wysyłała datagramy do localhosta, 
i napisałem program, który chodzi na tej samej maszynie i je odbiera.

Niestety przy dużym obciążeniu (datagramy wysyłane jeden po drugim) część 
z nich jest gubiona. W prostym teście, w którym jeden program wysyłał 
10000 datagramów jeden po drugim, a drugi je odbierał, gubione było ok. 
30% datagramów.

Co ciekawe, efekt ten nie występuje, gdy skonfigurowany jest zewnętrzny 
serwer (w tej samej sieci) -- wtedy odbierane jest 100% datagramów. Może 
LAN wprowadza takie opóźnienia, że nagle się to wyrabia, a może sam serwer 
na tyle obciąża CPU na tej źródłowej maszynie (to słaby, jednordzeniowy 
ARMv7), że dopiero wtedy to klęka...

Wiem, że to naturalna cecha UDP i pewnie po prostu jakiś bufor w kernelu 
się przepełnia, ale czy z poziomu aplikacji odbierającej można jakoś na to 
wpłynąć? Eksperymenty z SO_RCVBUF nic nie dały.

Tylko proszę bez "przejdź na TCP lub unix domain socket lub pipe lub 
cokolwiek" :) Gdybym mógł modyfikować aplikację wysyłającą, to bym to 
zrobił.

Dzięki.

-- 
https://www.youtube.com/watch?v=9lSzL1DqQn0
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads