[Twisted-Python] Twisted receiving buffers swamped?

Tobias Oberstein tobias.oberstein at tavendo.de
Fri Jan 2 04:53:27 MST 2015


>>Unfortunately, it doesn't seem to work (the problem persists):
>Your "streaming" flag is wrong.  A TCP transport is an IPushProducer (it will produce data without being asked).  Try setting it to True and see if that helps?

With streaming == True and cProfile added

https://github.com/oberstet/scratchbox/blob/master/python/asyncio/tcp_echo_server_tx.py

I get strange results.

Sluggish performance:

[oberstet at brummer1 ~]$ netperf -N -H 127.0.0.1 -t TCP_STREAM -l 10 -- -P 9000
TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 9000 AF_INET to 127.0.0.1 () port 9000 AF_INET : no control : histogram : interval : dirty data : demo
Recv   Send    Send
Socket Socket  Message  Elapsed
Size   Size    Size     Time     Throughput
bytes  bytes   bytes    secs.    10^6bits/sec

     0  32768  32768    10.03       0.31

===

That is 310kb/s. Which is totally slow. The native C based netserver that comes with netperf does 46Gb/s on this test. With streaming == False, I get something like 11Gb/s with that Twisted server (until it collapsed due to OOM)

The CPU load is very low (near 0%). The memory stays flat.

Here is the profile:

https://github.com/oberstet/scratchbox/blob/master/python/asyncio/profile.log

/Tobias





More information about the Twisted-Python mailing list