Andre Oppermann: Automatikus TCP send puffer átméretezés

Címkék

Andre Oppermann, a FreeBSD hálózatos embere azzal az ötlettel állt elő, hogy az eredendően statikus TCP send puffert dinamikussá alakítja. A statikus puffer hátránya, hogy nem igazán alkalmazkodik az igazi hálózati körülményekhez. Ebből két dolog sülhet ki: a) a socket pufferek túl kicsik, így nem igazán lehet kihasználni a hálózat adta lehetőségeket két host közt; b) a socket pufferek túl nagyok, így kernel memóriát pazarlunk.

Az automatikus TCP socket send pufferek megoldással egy relatív kis pufferrel indíthatunk, amely majd igény szerint gyorsan bír nőni (alapértelmezetten 8K-s lépésekkel) a valós hálózati igényeket kielégítendő (max. 256K-ig).

A FreeBSD-ben alapértelmezetten 32K méretű send socket puffer van. Andre szerint dinamikus puffer megoldással jelentős sebesség-növekedés (~10-szerest) lehet elérni a statikushoz képest.

A patch új sysctl-ek bemutatkozását is magával hozza. Ezek:


net.inet.tcp.sndbuf_auto=1	(enabled)
net.inet.tcp.sndbuf_inc=8192	(8K, step size)
net.inet.tcp.sndbuf_max=262144	(256K, growth limit)

Andre kéri a felhasználókat (elsősorban a nagy forgalmú FTP szerver tulajdonosokat) a tesztelésre.

A bejelentés itt. Patch a RELENG_6-hoz itt.

Hozzászólások

A people.freebsd.org le van pukkanva, vagy csak nekem nem megy?

--
trey @ gépház