Jump to content

Add Cloudflare as a Multithread test server

Recommended Posts

A few years ago, TestMy provided Google CDN as a speed test server.  This made a pretty good test for wireless and cellular data ISPs to test the bandwidth between the user and the ISP, especially for making antenna adjustments since most ISPs have good peering with Google.  That came to an end when they discontinued that CDN service.


Now that TestMy uses Cloudflare, I wonder if it could be set up as a multithread test server, much like what was done with the Google CDN

Share this post

Link to post
Share on other sites

I'm not really sure why it was disabled, it used to be an option.  :mellow:   I think there was an issue with it at some point, it was disabled and just never re-enabled.


You can select cloud.testmy.net from the multithread selection now.


Screen Shot 2018-01-09 at 5.59.24 AM.png


Let me know how it works for you.  Thanks for pointing that out too.

Share this post

Link to post
Share on other sites

I found one issue with the Cloudflare server, but not sure if it's what you encountered before.


At a first glance, the test seems to work fine.  However, with a few test results lower than the UK for the multithread test, I had a quick look in the Windows Resource Meter. 


When I run a Multithread test using the Cloudflare server, it only downloads over a single connection:




For comparison, this is how it appears when I retest using the UK server:




One thing I've observed already is that the Three 4G network prioritises Cloudflare traffic.  I certainly don't get 2MB+/s with any of the linear speed tests.

Share this post

Link to post
Share on other sites

From some experimenting and research - The culprit is HTTP2! :o


I created a simple HTML file and used the image TestMy was fetching.  I inserted it multiple times, changing the '?=' text on each line, so it looked like this:


<!DOCTYPE html>
<img src="https://cloud.testmy.net/tmn/img/tmn-sti_2.jpg?q=9ijehwae1" class="test" height="20" width="20" />
<img src="https://cloud.testmy.net/tmn/img/tmn-sti_2.jpg?q=389gehae1" class="test" height="20" width="20" />
<img src="https://cloud.testmy.net/tmn/img/tmn-sti_2.jpg?q=3h89uw2g1" class="test" height="20" width="20" />
<img src="https://cloud.testmy.net/tmn/img/tmn-sti_2.jpg?q=zdpq2jga1" class="test" height="20" width="20" />
<img src="https://cloud.testmy.net/tmn/img/tmn-sti_2.jpg?q=18saegaw1" class="test" height="20" width="20" />
<img src="https://cloud.testmy.net/tmn/img/tmn-sti_2.jpg?q=aghh23871" class="test" height="20" width="20" />
<img src="https://cloud.testmy.net/tmn/img/tmn-sti_2.jpg?q=h3o8aw891" class="test" height="20" width="20" />
<img src="https://cloud.testmy.net/tmn/img/tmn-sti_2.jpg?q=jhh2983h1" class="test" height="20" width="20" />
<img src="https://cloud.testmy.net/tmn/img/tmn-sti_2.jpg?q=zxchoiwq1" class="test" height="20" width="20" />
<img src="https://cloud.testmy.net/tmn/img/tmn-sti_2.jpg?q=2ho8zs871" class="test" height="20" width="20" />


Generally when multiple images are fetched, I expect to see multiple TCP connections.  However, this was not the case as with running TestMy's multithread test with the Cloudflare CDN


One thing that came to mind is HTTP2, which I was recently reading about.  I remember it used a different method of connecting to servers and sure enough the FAQ has the answer:



Why just one TCP connection?

  • With HTTP/1, browsers open between four and eight connections per origin. Since many sites use multiple origins, this could mean that a single page load opens more than thirty connections.
  • One application opening so many connections simultaneously breaks a lot of the assumptions that TCP was built upon; since each connection will start a flood of data in the response, there’s a real risk that buffers in the intervening network will overflow, causing a congestion event and retransmits.
  • Additionally, using so many connections unfairly monopolizes network resources, “stealing” them from other, better-behaved applications (e.g., VoIP).


To check if this is the culprit, I disabled HTTP2 in Firefox's about:config page:


I reran a multithread speed test using the Cloudflare CDN and sure enough it makes multiple TCP connections: B)



I'm not sure if you're able to disable HTTP2 on Cloudflare, otherwise it looks like the only way one can run a multithread test with the Cloudflare CDN is by disabling HTTP2 in the web browser.

Share this post

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...