|
|
Hi gang, My application is ethernet bridging, my hardware is cpu limited embedded pc's, and I'm wondering about how to improve OpenVPN's peformance. As a test, I configured a null openvpn session - no encryption or compression - between two wireless nodes, and set up private routing between them. I then bridged eth0,tap0 on both sides, and the thruput of openvpn was like 700Kb/s with CPU hitting ~ %100. I then downloaded an example UDP server which used signals and read from udp socket and wrote to tap0, or vice versa depending on data availabillity. I got about the same peformance out of that. I then modified the above to become a small multi-threaded udp server which simply spawned two threads - a 'read from tap0 and write via udp', and a 'receive udp and write to tap0' thread - and after setting up bridging going over the wireless interfaces, I was able to get 1.67MB/s thru the link (on an ftp download of a large file). One thread sits at ~ %70 cpu and the other is at ~ %30 cpu. Yes my testing methodology is flawed and you probbly couldn't reproduce these numbers. But nevertheless, I'm definately seeing about a 2x peformance boost in ethernet bridging over udp peformance using this technique (vs openvpn with everthing 'off'). I am wondering if multithreading just the I/O loop would have a beneficial effect on OpenVPN's peformance?? I know that James has written about Multithreading previously as a way of lowering latency when key exchanges and such, but I've never seen any discussion of raw i/o peformance. By the way, OpenVPN on wireless is great espically when you take advantage of the fact that most wireless interfaces can have substantially larger MTU sizes, which means that you can do ethernet bridging without fragmentation and without mtu issues. That should go into a wiki somewhere.... Mike-
Warning: require_once(../../../archive_common.php) [function.require-once]: failed to open stream: No such file or directory in /home/openvpn/domains/openvpn.net/public_html/archive/openvpn-users/2005-06/msg00082.html on line 207 Fatal error: require_once() [function.require]: Failed opening required '../../../archive_common.php' (include_path='/usr/local/lib/php') in /home/openvpn/domains/openvpn.net/public_html/archive/openvpn-users/2005-06/msg00082.html on line 207 |