Here is more tests with always repeated results.

I increase the number of contiguous connection only by 5, from 305 to 310, and you get 3 times slower response for always the same thing and repeated all the time. Very consistent and from different clients as well.

You can do any variation of 10 to 300 connections and you will always get the same results, or very close to it. See that at the end as well for proof.

So, I know I am hitting a hard limit someplace, but can't find where.

Note that I use a difference of 5 here, but I can reproduce the results almost all the time, just by increasing the number of connections by 1. From 307 to 308 I get 75% of the time the same results as below, meaning times it;'s 6.7 seconds for the same transfer and other is 18.1 seconds.

See below. Always the same transfer size, always the same amount of requests, always 100% success, but 3x slower.

Also, if I continue to increase it more, then I start to also get drop in replies, etc.

So, far I have played with 26 different sysctl setting that may affect that based on various possibility and from the man page and Google, but I can improve it some, not to the point of be able to use 500 connections or more for example.

What is it that really limit the number of connection that badly and that hard?

===================
305 parallel

# http_load -parallel 305 -fetches 500 -timeout 30 /tmp/test
500 fetches, 305 max parallel, 6.549e+06 bytes, in 6.71609 seconds
13098 mean bytes/connection
74.4481 fetches/sec, 975121 bytes/sec
msecs/connect: 1813.57 mean, 6007.53 max, 0.418 min
msecs/first-response: 509.309 mean, 1685.92 max, 3.606 min
HTTP response codes:
  code 200 -- 500
# http_load -parallel 305 -fetches 500 -timeout 30 /tmp/test
500 fetches, 305 max parallel, 6.549e+06 bytes, in 6.8586 seconds
13098 mean bytes/connection
72.9012 fetches/sec, 954860 bytes/sec
msecs/connect: 1957.35 mean, 6007.17 max, 0.445 min
msecs/first-response: 485.676 mean, 1559.27 max, 3.317 min
HTTP response codes:
  code 200 -- 500
# http_load -parallel 305 -fetches 500 -timeout 30 /tmp/test
500 fetches, 305 max parallel, 6.549e+06 bytes, in 6.81823 seconds
13098 mean bytes/connection
73.3328 fetches/sec, 960513 bytes/sec
msecs/connect: 1825.19 mean, 6007.11 max, 0.484 min
msecs/first-response: 508.281 mean, 1646.53 max, 3.422 min
HTTP response codes:
  code 200 -- 500

=====================
310 parallel

# http_load -parallel 310 -fetches 500 -timeout 30 /tmp/test
500 fetches, 310 max parallel, 6.549e+06 bytes, in 18.0998 seconds
13098 mean bytes/connection
27.6245 fetches/sec, 361826 bytes/sec
msecs/connect: 2281.39 mean, 18008.3 max, 0.434 min
msecs/first-response: 456.326 mean, 1555.78 max, 3.328 min
HTTP response codes:
  code 200 -- 500
# http_load -parallel 310 -fetches 500 -timeout 30 /tmp/test
500 fetches, 310 max parallel, 6.549e+06 bytes, in 18.1142 seconds
13098 mean bytes/connection
27.6027 fetches/sec, 361540 bytes/sec
msecs/connect: 2245.47 mean, 18011.4 max, 0.565 min
msecs/first-response: 460.068 mean, 1495.42 max, 3.32 min
HTTP response codes:
  code 200 -- 500
# http_load -parallel 310 -fetches 500 -timeout 30 /tmp/test
500 fetches, 310 max parallel, 6.549e+06 bytes, in 18.1635 seconds
13098 mean bytes/connection
27.5278 fetches/sec, 360559 bytes/sec
msecs/connect: 2485.7 mean, 18011.9 max, 0.598 min
msecs/first-response: 455.163 mean, 1573.78 max, 3.471 min
HTTP response codes:
  code 200 -- 500
#

===================
10 parallel
# http_load -parallel 10 -fetches 500 -timeout 30 /tmp/test
500 fetches, 10 max parallel, 6.549e+06 bytes, in 6.01266 seconds
13098 mean bytes/connection
83.1579 fetches/sec, 1.0892e+06 bytes/sec
msecs/connect: 24.6605 mean, 6002.47 max, 0.349 min
msecs/first-response: 28.6373 mean, 798.5 max, 3.23 min
HTTP response codes:
  code 200 -- 500

==================
20 parallel
# http_load -parallel 20 -fetches 500 -timeout 30 /tmp/test
500 fetches, 20 max parallel, 6.549e+06 bytes, in 7.12896 seconds
13098 mean bytes/connection
70.1365 fetches/sec, 918648 bytes/sec
msecs/connect: 48.676 mean, 6003.58 max, 0.342 min
msecs/first-response: 58.1521 mean, 1249.71 max, 3.216 min
HTTP response codes:
  code 200 -- 500


===================
50 parallel
# http_load -parallel 50 -fetches 500 -timeout 30 /tmp/test
500 fetches, 50 max parallel, 6.549e+06 bytes, in 8.00917 seconds
13098 mean bytes/connection
62.4285 fetches/sec, 817688 bytes/sec
msecs/connect: 84.686 mean, 6003.49 max, 0.418 min
msecs/first-response: 174.045 mean, 1950.98 max, 3.349 min
HTTP response codes:
  code 200 -- 500


========================
100 parallel
# http_load -parallel 100 -fetches 500 -timeout 30 /tmp/test
500 fetches, 100 max parallel, 6.549e+06 bytes, in 7.90241 seconds
13098 mean bytes/connection
63.2718 fetches/sec, 828735 bytes/sec
msecs/connect: 72.8683 mean, 6003.78 max, 0.417 min
msecs/first-response: 379.736 mean, 1964.26 max, 3.366 min
HTTP response codes:
  code 200 -- 500


========================
200 parallel
# http_load -parallel 200 -fetches 500 -timeout 30 /tmp/test
500 fetches, 200 max parallel, 6.549e+06 bytes, in 7.05138 seconds
13098 mean bytes/connection
70.9081 fetches/sec, 928754 bytes/sec
msecs/connect: 600.956 mean, 6005.73 max, 0.442 min
msecs/first-response: 530.17 mean, 2095.61 max, 3.337 min
HTTP response codes:
  code 200 -- 500


========================
300 parallel
# http_load -parallel 300 -fetches 500 -timeout 30 /tmp/test
500 fetches, 300 max parallel, 6.549e+06 bytes, in 6.76796 seconds
13098 mean bytes/connection
73.8775 fetches/sec, 967647 bytes/sec
msecs/connect: 1777.28 mean, 6007.87 max, 0.524 min
msecs/first-response: 496.185 mean, 1636.86 max, 3.294 min
HTTP response codes:
  code 200 -- 500

Reply via email to