How do I improve the performance of this virtual network?

The name of the pictureThe name of the pictureThe name of the pictureClash 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?







share|improve this question


























    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?







    share|improve this question
























      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?







      share|improve this question














      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?









      share|improve this question













      share|improve this question




      share|improve this question








      edited Oct 27 '17 at 20:52

























      asked Oct 13 '17 at 23:54









      Omnifarious

      895515




      895515

























          active

          oldest

          votes











          Your Answer







          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "106"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          convertImagesToLinks: false,
          noModals: false,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













           

          draft saved


          draft discarded


















          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



































          active

          oldest

          votes













          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes















           

          draft saved


          draft discarded















































           


          draft saved


          draft discarded














          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













































































          Popular posts from this blog

          How to check contact read email or not when send email to Individual?

          Displaying single band from multi-band raster using QGIS

          How many registers does an x86_64 CPU actually have?