[Twisted-Python] Twisted receiving buffers swamped?

Tobias Oberstein tobias.oberstein at tavendo.de
Fri Jan 2 05:06:08 MST 2015


> >Now, my suspicion is that Twisted is reading off the TCP stack from the
> >kernel and buffering in userspace faster than the echo server is
> >pushing out stuff to the TCP stack into the kernel. Hence, no TCP
> >backpressure results, netperf happily sends more and more, and the
> >memory of the Twisted process runs away.
> 
> What you said here about "buffering in userspace" is ambiguous.  It's not
> clear if you meant data is being buffered in userspace on the read side
> before your protocol gets a chance to handle it  

Yes. That's what I meant. Buffering in userspace inside Twisted, and before data is handled by the app in dataReceived.

> .. or if you meant that data
> being written to the transport by the protocol is being buffered in userspace.

Nope, I didn't meant that. That's the sending side.

> 
> The former doesn't happen.  There are no no userspace read buffers in
> Twisted between the transport and the protocol.  Bytes are read from the

Ok.

> socket and then passed to dataReceived.
> 
> The latter would be addressed by using producer/consumer APIs as Glyph
> suggested.

Mmh.

Fact is: somehow memory runs away.

How do I track down _where_ exactly the mem is spent? Probably that leads to the "why" then ..

/Tobias



More information about the Twisted-Python mailing list