Linux UDP-max die Größe des empfangspuffers

Was ist die maximale grösse des Linux-UDP-receive-buffer? Ich dachte, es ist begrenzt nur durch den verfügbaren RAM, aber wenn ich den

5GB für rmem_max:

echo 5000000000 > /proc/sys/net/core/rmem_max

und 4GB für die aktuellen socket-buffer (in Erlang):

gen_udp:listen(Port, [{recbuf, 4000000000}])

Wenn ich die Maßnahme den Puffer-Auslastung zeigt es:

# netstat -u6anp | grep 5050
udp6  1409995136      0 :::5050  :::*       13483/beam.smp

Kann ich nicht mehr als das 1,4 GB. Für kleinere Puffer-Größen, wie z.B. 500MB, tatsächliche Puffergröße entsprachen den eingestellten Wert. Mein system ist Debian 6.0, die Maschine hat 50 GB RAM zur Verfügung.

  • Wo tut es sagen, es ist begrenzt nur durch den verfügbaren RAM? Und warum denkst du, du brauchst eine 4GB-Puffer?
  • Tut es das nicht. Es nicht sagen, es ist begrenzt in irgendeiner anderen Art und Weise. Ich brauche so einen Puffer, um Datenverluste zu vermeiden während mehr Netzwerk-traffic peek.
  • Im Gegenteil. Es sagt dem kernel, können Sie den Wert einstellen, den Sie liefern nach oben oder unten, und berät Sie zu nennen getsockopt() um zu sehen, was Wert war tatsächlich zugewiesen ist. Ich finde es schwer zu glauben, Sie brauchen, 4GB verarbeiten Hauptverkehrszeiten. Wahrscheinlich sollte man einfach schneller Lesen.
  • "Es sagt, kann der kernel und passen Sie den Wert, den Sie liefern nach oben oder unten" wo hast du diese Informationen? Wie kann man schneller Lesen als "while(true){recv(Socket)}" innerhalb eines Threads? Ich bin Drop-Pakete nach dem Empfang für die test ' s sake. Ich bin in der Lage zu Lesen 60000 600B-sized-Pakete pro Sekunde, während es kein problem zu generieren 200000/s Datenverkehr. Unter diesen Bedingungen ist der Puffer füllt nach 16 Sekunden. Man kann nicht Objektiv sagen, dass der 10s ist ein Blick, aber der 20er Jahre nicht. Ich würde eher erwarten, dass mit einer besseren Maschine, die ich bin in der Lage, länger zu überleben peek.
  • Ich habe gelesen, dass die Anweisung in man-pages für über 20 Jahre. Es ist für Sie nichts neues. Wie Sie wissen, sind Sie fallenlassen der Pakete an den Empfänger?
Schreibe einen Kommentar