How do I improve the performance of this virtual network?
Clash Royale CLAN TAG#URR8PPP
up vote
0
down vote
favorite
I'm trying to create separate network isolation contexts for running some programs (satellites) that communicate with another program (the main program) that runs in a different context on the same host. I'm currently doing this with a veth pair, one of which is connected to a bridge in the main program's context. I'm using IPv6 link local addresses to avoid having to find some region of the IPv4 range that won't run afoul of any other uses.
When I use iperf
to measure TCP performance with connections to ::1
from the same network context I get a speed of about 65 Gbits/sec. When I measure performance between two interfaces in a veth pair, I get about 54Gbits/sec. And when I measure between a veth interface and a bridge that is a master of the other veth interface, I get about 48 Gbits/sec of performance.
All of this is a lot faster than I'd likely be able to manage between two physically distinct hosts. But it would be nice if I could do something to increase the performance of the bridge scenario. I need the bridge because I will have multiple isolation contexts that will all want to communicate with the same program in the host context. I've tried messing with the TCP window size, but that seems to have no effect. I also tried fiddling with the mtu of the veth devices and the virtual bridge, and that also had no effect.
Is there anything else I can do to increase performance to something closer to the ::1
performance?
linux networking performance
add a comment |Â
up vote
0
down vote
favorite
I'm trying to create separate network isolation contexts for running some programs (satellites) that communicate with another program (the main program) that runs in a different context on the same host. I'm currently doing this with a veth pair, one of which is connected to a bridge in the main program's context. I'm using IPv6 link local addresses to avoid having to find some region of the IPv4 range that won't run afoul of any other uses.
When I use iperf
to measure TCP performance with connections to ::1
from the same network context I get a speed of about 65 Gbits/sec. When I measure performance between two interfaces in a veth pair, I get about 54Gbits/sec. And when I measure between a veth interface and a bridge that is a master of the other veth interface, I get about 48 Gbits/sec of performance.
All of this is a lot faster than I'd likely be able to manage between two physically distinct hosts. But it would be nice if I could do something to increase the performance of the bridge scenario. I need the bridge because I will have multiple isolation contexts that will all want to communicate with the same program in the host context. I've tried messing with the TCP window size, but that seems to have no effect. I also tried fiddling with the mtu of the veth devices and the virtual bridge, and that also had no effect.
Is there anything else I can do to increase performance to something closer to the ::1
performance?
linux networking performance
add a comment |Â
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I'm trying to create separate network isolation contexts for running some programs (satellites) that communicate with another program (the main program) that runs in a different context on the same host. I'm currently doing this with a veth pair, one of which is connected to a bridge in the main program's context. I'm using IPv6 link local addresses to avoid having to find some region of the IPv4 range that won't run afoul of any other uses.
When I use iperf
to measure TCP performance with connections to ::1
from the same network context I get a speed of about 65 Gbits/sec. When I measure performance between two interfaces in a veth pair, I get about 54Gbits/sec. And when I measure between a veth interface and a bridge that is a master of the other veth interface, I get about 48 Gbits/sec of performance.
All of this is a lot faster than I'd likely be able to manage between two physically distinct hosts. But it would be nice if I could do something to increase the performance of the bridge scenario. I need the bridge because I will have multiple isolation contexts that will all want to communicate with the same program in the host context. I've tried messing with the TCP window size, but that seems to have no effect. I also tried fiddling with the mtu of the veth devices and the virtual bridge, and that also had no effect.
Is there anything else I can do to increase performance to something closer to the ::1
performance?
linux networking performance
I'm trying to create separate network isolation contexts for running some programs (satellites) that communicate with another program (the main program) that runs in a different context on the same host. I'm currently doing this with a veth pair, one of which is connected to a bridge in the main program's context. I'm using IPv6 link local addresses to avoid having to find some region of the IPv4 range that won't run afoul of any other uses.
When I use iperf
to measure TCP performance with connections to ::1
from the same network context I get a speed of about 65 Gbits/sec. When I measure performance between two interfaces in a veth pair, I get about 54Gbits/sec. And when I measure between a veth interface and a bridge that is a master of the other veth interface, I get about 48 Gbits/sec of performance.
All of this is a lot faster than I'd likely be able to manage between two physically distinct hosts. But it would be nice if I could do something to increase the performance of the bridge scenario. I need the bridge because I will have multiple isolation contexts that will all want to communicate with the same program in the host context. I've tried messing with the TCP window size, but that seems to have no effect. I also tried fiddling with the mtu of the veth devices and the virtual bridge, and that also had no effect.
Is there anything else I can do to increase performance to something closer to the ::1
performance?
linux networking performance
edited Oct 27 '17 at 20:52
asked Oct 13 '17 at 23:54
Omnifarious
895515
895515
add a comment |Â
add a comment |Â
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f398037%2fhow-do-i-improve-the-performance-of-this-virtual-network%23new-answer', 'question_page');
);
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password