Alexey Kuznetsov wrote:
Hello!


transactions to data segments is fubar. That issue is also why I wonder about the setting of tcp_abc.


Yes, switching ABC on/off has visible impact on amount of segments.
When ABC is off, amount of segments is almost the same as number of
transactions. When it is on, ~1.5% are merged. But this is invisible
in numbers of throughput/cpu usage.

Hmm, that would seem to suggest that for "new" the netperf/netserver were being fast enough that the code didn't perceive the receipt of back-to-back sub-MSS segments? (Is that even possible once -b is fairly large?) Otherwise, with new I would have expected the segment count to be meaningfully > than the transaction count?


That' numbers:

1Gig link. The first column is "b". - separates runs of netperf
in backward direction.

Run #1. One host is slower.

        old,abc=0
         new,abc=0
          new,abc=1
           old,abc=1

2       23652.00  6.31   21.11  10.665  8.924
         23622.16  6.47   21.01  10.951  8.893
          23625.05  6.21   21.01  10.512  8.891
           23725.12  6.46   20.31  10.898  8.559
        -
        23594.87  21.90  6.44   9.283   10.912
         23631.52  20.30  6.36   8.592   10.766
          23609.55  21.00  6.26   8.896   10.599
           23633.75  21.10  5.44   8.929   9.206

4       36349.11  8.71   31.21  9.584   8.585
         36461.37  8.65   30.81  9.492   8.449
          36723.72  8.22   31.31  8.949   8.526
           35801.24  8.58   30.51  9.589   8.521
        -
        35127.34  33.80  8.43   9.621   9.605
         36165.50  30.90  8.48   8.545   9.381
          36201.45  31.10  8.31   8.592   9.185
           35269.76  30.00  8.58   8.507   9.732

8       41148.23  10.39  42.30  10.101  10.281
         41270.06  11.04  31.31  10.698  7.585
          41181.56  5.66   48.61  5.496   11.803
           40372.37  9.68   56.50  9.591   13.996
        -
        40392.14  47.00  11.89  11.637  11.775
         40613.80  36.90  9.16   9.086   9.019
          40504.66  53.60  7.73   13.234  7.639
           40388.99  48.70  11.93  12.058  11.814

16      67952.27  16.27  43.70  9.576   6.432
         68031.40  10.56  53.70  6.206   7.894
          67777.95  12.81  46.90  7.559   6.920
           67814.41  16.13  46.50  9.517   6.857
        -
        68031.46  51.30  11.53  7.541   6.781
         68044.57  40.70  8.48   5.982   4.986
          67808.13  39.60  15.86  5.840   9.355
           67818.32  52.90  11.51  7.801   6.791

32      90445.09  15.41  99.90  6.817   11.045
         90210.34  16.11  100.00 7.143   11.085
          90221.84  17.31  98.90  7.676   10.962
           90712.78  18.41  99.40  8.120   10.958
        -
        89155.51  99.90  12.89  11.205  5.782
         90058.54  99.90  16.16  11.093  7.179
          90092.31  98.60  15.41  10.944  6.840
           88688.96  99.00  17.59  11.163  7.933

64      89983.76  13.66  100.00 6.071   11.113
         90504.24  17.54  100.00 7.750   11.049
          92043.36  17.44  99.70  7.580   10.832
           90979.29  16.01  99.90  7.038   10.981
        -
        88615.27  99.90  14.91  11.273  6.729
         89316.13  99.90  17.28  11.185  7.740
          90622.85  99.90  16.81  11.024  7.420
           89084.85  99.90  17.51  11.214  7.861

Run #2. Slower host is replaced with better one. ABC=0.
No runs in backward directions.

        new
         old

2       24009.73  8.80   6.49   3.667   10.806
         24008.43  8.00   6.32   3.334   10.524
4       40012.53  18.30  8.79   4.574   8.783
         39999.84  19.40  8.86   4.851   8.857
8       60500.29  26.30  12.78  4.348   8.452
         60397.79  26.30  11.73  4.355   7.769
16      69619.95  39.80  14.03  5.717   8.063
         70528.72  24.90  14.43  3.531   8.184
32      132522.01  53.20  21.28  4.015   6.424
         132602.93  57.70  22.59  4.351   6.813
64      145738.83  60.30  25.01  4.138   6.865
         143129.55  73.20  24.19  5.114   6.759
128     148184.21  69.70  24.96  4.704   6.739
         148143.47  71.00  25.01  4.793   6.753
256     144798.91  69.40  25.01  4.793   6.908
         144086.01  73.00  24.61  5.067   6.832

Frankly, I do not see any statistically valid correlations.

Does look like it jumps-around quite a bit - for example the run#2 with -b 16 had the CPU util all over the map on the netperf side. That wasn't by any chance an SMP system?

that "linux" didn't seem to be doing the same thing. Hence my tweaking when seeing this patch come along...]


netperf does not catch this. :-)

Nope :( One of these days.... I need to teach netperf how to extract TCP statistics from as many platforms as possible. Meantime it relies as always on the kindness of benchmarkers :) (My appologies to Tennesee Williams :)

Even with this patch linux does not ack each second segment dumbly,
it waits for some conditions, mostly read() emptying receive queue.

Good. HP-UX is indeed dumb about this, but I'm assured it will be changing. I forget what Solaris does in this situation - I thought I looked a while ago but cannot recall the result.

To model this it is necessary to insert some gaps between
bursted segments or to use slow network.

I have no doubts it is easy to model a situation when we send
lots of useless ACKs. F.e. inserting 20ms gaps between requests.
To see effect on thoughput/cpu, we could start enough of connections,
doing the same thing.

Adding --enable-intervals might work there. I don't recall how well it gets along with --enable-burst though, and you have already made lots of runs as it is.

rick
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to