All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Vagin <avagin@parallels.com>
To: <netdev@vger.kernel.org>
Cc: <vvs@parallels.com>
Subject: Slow speed of tcp connections in a network namespace
Date: Sat, 29 Dec 2012 13:24:52 +0400	[thread overview]
Message-ID: <20121229092417.GA4038@paralelels.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 1419 bytes --]

We found a few nodes, where network works slow in containers.

For testing speed of TCP connections we use wget, which downloads iso
images from the internet.

wget in the new netns reports only 1.5 MB/s, but wget in the root netns
reports 33MB/s.

A few facts:
 * Experiments shows that window size for CT traffic does not increases
   up to ~900, however for host traffic window size increases up to ~14000
 * packets are shuffled in the netns sometimes.
 * tso/gro/gso changes on interfaces does not help
 * issue was _NOT_ reproduced if kernel booted with maxcpus=1 or bnx2.disable_msi=1

I reduced steps to reproduce:
* Create a new network namespace "test" and a veth pair.
  # ip netns add test
  # ip link add name veth0 type veth peer name veth1

* Move veth1 into the netns test
  # ip link set veth1 netns test

* Set ip address on veth1 and proper routing rules are added for this ip
  in the root netns.
  # ip link set up dev veth0;  ip link set up dev veth0
  # ip netns exec test ip a add REMOTE dev veth1
  # ip netns exec test ip r a default via veth1
  # ip r a REMOTE/32 via dev veth0

Tcpdump for both cases are attached to this message.
tcpdump.host - wget in the root netns
tcpdump.netns.host - tcpdump for the host device, wget in the new netns
tcpdump.netns.veth - tcpdump for the veth1 device, wget in the new netns

3.8-rc1 is used for experiments.

Do you have any ideas where is a problem?

[-- Attachment #2: tcpdump.host.gz --]
[-- Type: application/x-gzip, Size: 168126 bytes --]

[-- Attachment #3: tcpdump.netns.veth.gz --]
[-- Type: application/x-gzip, Size: 178809 bytes --]

[-- Attachment #4: tcpdump.netns.host.gz --]
[-- Type: application/x-gzip, Size: 178424 bytes --]

             reply	other threads:[~2012-12-29  9:25 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-12-29  9:24 Andrew Vagin [this message]
2012-12-29 13:53 ` Slow speed of tcp connections in a network namespace Eric Dumazet
2012-12-29 14:50   ` Andrew Vagin
2012-12-29 17:40     ` Eric Dumazet
2012-12-29 18:29       ` Andrew Vagin
2012-12-29 18:58       ` Eric Dumazet
2012-12-29 19:41         ` Eric Dumazet
2012-12-29 20:08           ` Andrew Vagin
2012-12-29 20:20             ` Eric Dumazet
2012-12-29 21:07               ` Andrew Vagin
2012-12-29 21:12             ` Eric Dumazet
2012-12-29 21:19               ` Andrew Vagin
2012-12-29 21:15         ` Andrew Vagin
2012-12-29 16:01   ` Michał Mirosław
2012-12-30  2:26     ` [PATCH] veth: extend device features Eric Dumazet
2012-12-30 10:32       ` David Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20121229092417.GA4038@paralelels.com \
    --to=avagin@parallels.com \
    --cc=netdev@vger.kernel.org \
    --cc=vvs@parallels.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.