[Click] Userlevel performance issues
Roman Chertov
rchertov at purdue.edu
Fri Jan 25 10:48:44 EST 2008
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Ross,
http://www.read.cs.ucla.edu/click/elements/fromuserdevice
You might want to look into FromUserDevice element. It runs in kernel
level Click and then you can have a user level program just write raw
packets into the element via /dev/touserX.
Roman
Robert Ross wrote:
> We've been attempting to use userlevel Click here to perform some
> traffic loading and analysis of specific network conditions and
> behaviors. The key important elements used are:
>
> *
> FromDump() for injecting packets
> *
> Socket() for injecting packets
> *
> FromHost() for injecting packets
> *
> To Device for sending packets
> *
> LinkUnqueue for link emulation
>
> We also have the obvious need for queues and several other elements
> which are not as critical to this discussion. The problem came up when
> we started examining element handler values duing experimentation:
>
> * We first found that when UserLevel Click started pulling from a
> PCAP file, the performance of the ToDevice() appeared to drop sharply.
> What I mean by this is that the ToDevice() pull handler reported values
> in the range of 200 packets/second once the PCAP file started reading.
> This resulted in the outbound queue just prior to the ToDevice() filling
> up and eventually overflowing because the packet rate in the PCAP file
> is far more than 200 packets/second.
> * We then tried using a Socket element to inject the packets
> remotely rather than using the FromDump element. We found that, for
> some reason, the LinkUnqueue element appears to affect the Socket's
> ability to pull packets quickly on the server side of the socket
> connection. If the LinkUnqueue element has a high enough bandwidth
> parameter, then the socket itself has no problem keeping up with the
> injected load and the traffic profile looks as expected. This is also
> true if you remove the LinkUnqueue element completely. However, with
> the LinkUnqueue element specified as "512Kbps" the upstream Socket
> appears to slow itself down and only except packets from the client at a
> fraction of what it is obviously capable.
> * We then tried using TCPReplay to inject the packets into the
> Click configuration FromHost. The behavior here was exactly the same as
> the Socket element. TCPReplay was only able to inject packets into the
> fake device at a fraction of what should be possible (around 200
> packets/second), the problem having some unknown relationship to the
> LinkUnqueue element. If LinkUnqueue is removed, TCPReplay packets are
> pumped at the desired rate.
>
> So, having tried (and failed) multiple ways to inject traffic at a high
> speed, I have two ultimate questions:
>
> 1. Why does reading from a PCAP file cause a drastic performance
> hit on ToDevice pull processing? How can this be resolved? FromDump
> doesn't work at kernellevel and multi-threading doesn't work at
> userlevel.
> 2. Why does the LinkUnqueue element impact behavior of the upstream
> Socket and FromHost elements? Is there any way to stop this from
> happening and let the Socket and/or FromHost run as fast as possible?
>
>
> Thanks,
> Robert A. Ross
> DSCI Inc.
> 609-509-5139
> _______________________________________________
> click mailing list
> click at amsterdam.lcs.mit.edu
> https://amsterdam.lcs.mit.edu/mailman/listinfo/click
>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFHmgTcT8ksiSCF2AYRApTxAKCFSvT4DiwCYhnFjZz/BIblWWCz0ACgh+4k
C2Vm2CPfc01IQJ8LGqPxjrM=
=Ldwl
-----END PGP SIGNATURE-----
More information about the click
mailing list