[MEGOLDVA] IPv6/TCP/IPsec (105) No buffer space available

Fórumok

Sziasztok!

Egy felhasználókat szimuláló teszteszközön dolgozunk. Egy évek óta működő, bevált, folyamatosan fejlesztett, elég összetett, belső céges megoldásról van szó. A felhasználók szimulálása hálózati forgalom generálását jelenti.

A legfrissebb use case a következő feltételeket tartalmazza:
- 50,000 felhasználó szimulálása egyedi IPv6 címmel
- 4 network namespace (4x12500 IPv6 cím)
- TCP transzport
- IPsec

Ha bármelyik feltételen lazítok (pl. IPv6 helyett IPv4, vagy nem kell IPsec, vagy UDP-t használok TCP helyett) minden kiválóan működik.
A fenti feltételek esetén körülbelül 4x3000 felhasználó elindítása után (105) "No buffer space available" hibaüzenetek jönnek vissza akkor, akkor, amikor IPsec-es üzenetet akarok kiküldeni az adott felhasználóval.

A gyári Ubuntu 12.04-hez képest az alábbi beállításokat szoktam elvégezni:
net.ipv4.ip_local_port_range = 1024 7999
net.core.rmem_max = 12582912
net.core.wmem_max = 12582912
net.ipv4.tcp_rmem = 10240 87380 12582912
net.ipv4.tcp_wmem = 10240 87380 12582912
net.ipv6.route.max_size = 8388608
net.ipv6.xfrm6_gc_thresh = 8388608

Ha nem szórom szét a felhasználókat network namespace-ekre, akkor ezt a hibaüzenetet elő tudom idézni a net.ipv6.xfrm6_gc_thresh lejjebb vételével.

3.2.0 és 3.11.0 kernelekkel próbálkoztam.

Van valami ötletetek, hogy mi okozhatja ezt a hibát?

Köszönettel: Sics

Hozzászólások

A szerver vagy a kliens oldalon fogyhat el valami?

> Van valami ötletetek, hogy mi okozhatja ezt a hibát?

Csak találgatni tudok: elfogyott a kernel erre fordítható memóriája. Bizonyára lehet növelni. (Megj: gyenge pontja a mesének, hogy a kernel objektumai sosem virtuális memóriában vannak, hanem fizikaiban. (Hacsak nem fejlesztettek azóta, hogy ezt hallottam.))

Igen, odáig én is eljutottam, hogy növeleni kellene a bufferméretet. De sajnos nem találtam releváns sysctl-t.

Ami érdekes, hogy namespace-ek nélkül "ömlesztve" működik a dolog, és a net.ipv6.xfrm6_gc_thresh csökkentésével elő tudom idézni a hibaüzenetet. Namespace-ekkel viszont nem tudom olyan magasra állítani ezt a paramétert, hogy jó legyen.

Köszi, üdv.: Sics

3.16.0 kernellel nem jön a hiba. Ez részemről elfogadható megoldás. :-)