I put together a simple program call tcp-bandwidth which measure performance over a data stream sent from the client to the server. So to do this test you will require two linux machines. eg the rasberry pi and another machine to act as a client or server.
Running the tool.
Download tcp-bandwidth-2012-12-01.c
Compile it using
gcc -Wall -O2 tcp-bandwidth.c -o tcp-bandwidth -lrt
You will need to repeat this on both the pi and the main machine.
On the pi run
./tcp-bandwidth 5000
On the main machine run
./tcp-bandwidth <pi ip address> 5000
Results - Machine -> PI
Speed: 6.529282 MBytes/Sec
Speed: 6.404114 MBytes/Sec
Speed: 6.443649 MBytes/Sec
Speed: 6.745232 MBytes/Sec
Speed: 6.453972 MBytes/Sec
On the main machine run
./tcp-bandwith 5000
On the pi run
./tcp-bandwidth <ip address of machine> 5000
Results - PI -> Machine
Speed: 6.398438 MBytes/Sec
Speed: 6.335938 MBytes/Sec
Speed: 6.109375 MBytes/Sec
Speed: 6.250000 MBytes/Sec
Speed: 6.320312 MBytes/Sec
Speed: 6.351562 MBytes/Sec
From this we know that the pi is capable of sending data at speeds > 6MBytes / sec or around 50MBit/sec. On an un-tuned tcp stack with the arm running at 700Mhz. Using around 30% cpu time (messured using top)
I would be interested if other people ran the tests and posted some of the results. If you do please include the client -> server speed, server -> client speed, cpu speed, whether its a 256Mb / 512Mb pi and if you have done any tuning / modifications of the Linux networking stack.
If people send in results i will put together a list of known configurations and performance results. Unfortunatly I have limited networking hardware to test with and is under load from other things in the enviroment which are probably knocking my results slightly.