Synology Speed Test
Tags: docker, javascript, html, webdev
Published: 2022-06-21 08:40:11

1 Hour Continuous Speed Test using this [Docker Image](https://hub.docker.com/u/openspeedtest) on my Synology DS920+

`docker run --restart=unless-stopped --name openspeedtest -d -p 3000:3000 -p 3001:3001 openspeedtest/latest`

Now Visit http://localhost:3000 or http://YOUR-IP:3000 
For SSL   https://localhost:3001 or https://YOUR-IP:3001

New features:

1) Stress Test. (Continuous Speed Test)
Stress testing is for identifying overheating issues & other problems that may arrive when the system is at full load. So you can ensure stability when used in a normal environment.

You can see the results in near-real-time, So you can test and see the impact of the configuration change in your network equipment instantly, Helpful when Fixing Wi-Fi interference , change in position or orientation, proper ventilation, etc., from your devices easily.

Overheating and thermal throttling is common issues found on all network equipment and connected devices. if you run a stress test, you can simulate a busy day and see how your device will perform.

1) Download and install OpenSpeedTest-Server

2) Open the URL shown in Server App on the device you want to run the test.

3) To enable stress pass 'Stress' or 'S' keyword as a URL parameter. Also you can feed the first letter of each parameter and its values. You can pass multiple keywords and it's not CasESensitivE.

Example :

if http://192.168.1.5:3000 is the url shown in server.

You need to add "?Stress=Low" at the end of the url or "?S=L"

Now, the URL looks like this.

http://192.168.1.5:3000?Stress=Low or http://192.168.1.5:3000?S=L

Stress=Low Or S=L will run a speed test for 5 Minutes (300 Seconds) for upload and download.

Stress=Medium Or S=M will run a speed test for 10 Minutes (600 Seconds) for upload and download.

Stress=High Or S=H will run a speed test for 15 Minutes (900 Seconds) for upload and download.

Stress=VeryHigh Or S=V will run a speed test for 30 Minutes (1800 Seconds) for upload and download.

Stress=Extreme Or S=E will run a speed test for 60 Minutes (3600 Seconds) for upload and download.

Stress=Day Or S=D will run a speed test for one Day (86400 Seconds) for upload and download.

Stress=Year Or S=Y will run a speed test for one Year (31557600 Seconds) for upload and download.

or you can specify "Stress=5000" or "S=5000", This will run a speed test for 5000 Seconds, or any other number of your choice.

2) Start a Speed Test Automatically.

If you want to start the test automatically without clicking the start button, add "run" or "r" keyword as a URL parameter.

http://192.168.1.5:3000?run or http://192.168.1.5:3000?R

If you like to start the test after specific time, give the time in seconds.

Example, If i need to run a speed test after 45 seconds

http://192.168.1.5:3000?run=45

If i need to stress for 300 seconds and start a speed test without clicking the start button.

http://192.168.1.5:3000?R&S=300 or http://192.168.1.5:3000?Run&Stress=300

3) Run a Specific Test. (Download, Upload or Ping.)

Sometimes you need to run a specific test, If you need to run upload test, you can pass "Test=Upload" or "T=U" as a URL Parameter. You can test download "Test=Download" or "T=D" or ping "Test=Ping" or "T=P" like this.

4)Set the Number of ping samples by adding "Ping" or "P" as a URL Parameter

http://192.168.1.5?Ping=500 OR http://192.168.1.5?p=500

More samples means more accurate representation. Ping=500 will send 501 requests to server to find the accurate ping value.

5) Change default limit of 6 parallel http connections to Server, by adding "XHR" or "X" as a URL Parameter

http://192.168.1.5?Xhr=1 OR http://192.168.1.5?X=1

6 is the common limit found on most browser. XHR will Accept values above 1 and maximum 32

6) Select a different server to run a speed test.

http://192.168.1.5?Host=http://192.168.55.1:90 OR http://192.168.1.5?h=http://192.168.55.1:90

Pass "Host" or "H" as a URL Parameter. Accept only valid http urls like "http://192.168.1.10:3000" or "https://yourHost.com".

7) Set a PingTimeout dynamically by passing "Out" or "o" as a URL Parameter

http://192.168.1.5?Out=7000 OR http://192.168.1.5?O=7000

If Server not responded within 5 Seconds for any requests we send ('pingSamples' times) We will show Network Error, you can change the limit here. In milliseconds, if you need to set 6 seconds. Change value to 6000.

8) Disable or change Overhead Compensation factor.

http://192.168.1.5?Clean or http://192.168.1.5?C

Overhead Compensation factor, This is browser based test, Many Unknowns. Currently 4%. That is within the margin of error. You can pass "Clean" or "C" as a URL Parameter and reset Overhead Compensation factor to Zero or set any value between 0 and 4. 1 = 1% to 4 = 4%. "clean" will not accept values above 4, so Compensation is limited to maximum 4%.