-
Notifications
You must be signed in to change notification settings - Fork 216
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unrealisticly high upload measurements #4
Comments
What was the download speed reported? That was expected result? |
You can use your own certificate in docker itself. https://hub.docker.com/u/openspeedtest How to use your own SSL Certificate? You can mount a folder with your own SSL certificate to this docker container by adding the following line to the above command. -v /PATH-TO-YOUR-OWN-SSL-CERTIFICATE**:/etc/ssl/** I am adding a folder with nginx.crt and nginx.key from my desktop by using the following command. docker run -v /Users/vishnu/Desktop/docker/:/etc/ssl/ --restart=unless-stopped --name openspeedtest -d -p 3000:3000 -p 3001:3001 openspeedtest/latest |
Yes, the reported download speed had the expected result. The value is very close if not exactly the download speed that LibreSpeed reported as well. Unfortunately I don't have the option to run OpenSpeedtest on it's own IP. I have over 30 services running on the system, all behind the SSL / reverse proxy. Can you tell how the data that is posted during the upload speed test is generated? If it contains just zeroes or a very simple repeated pattern that would explain why it could be compressed at a very high rate. I have opened a support request at the community forum for Traefik, asking if there is an option available to tell the client / browser to not compress the post data (see https://community.traefik.io/t/modify-header-to-disallow-compression-per-docker-service/12582). |
Edit: After 2 months i rewrite, garbage data generation function. now we use incompressible data, Little CPU Heavy Task but worth it. Yes, it is easily compressible data, i don't think it is a good idea to generate hard to compress data at client side (Think about devices with poor performance or a device from 2008 or 10) so we disable compression option via Nginx. In Nginx all you need to do is add "gzip off;" to your config. Take a look at our Nginx config. You don't have to run it on it's own ip address. You can add your own SSL Certificate to the docker image. That is explained in my second comment. I don't know much about Traefik. Ask then about turn off or add header to specific location like yourdomain.com/upload "upload" is a static file. So you need to enable post to static file. In Nginx we do "error_page 405 =200 $uri;" to enable POST to static file. Take a look at browser console and network tab while upload test is running and see what is the error message. if there is no error message you need to disable compression algorithms like Gzip from server side. |
Only for documentation, i have the same problem with traefik and openspeedtest |
Unfortunately, I have no answer on my post in the Traefik forum. I tried to catch the difference between the Nginx config and Traefik, but I can't figure out the relevant setting. I still think this issue might be solvable with a different configuration for the Traefik proxy, but I wonder why I don't observe a similar issue with the LibreSpeed speedtest (https://github.com/librespeed/speedtest).
I have one single IP address on the web server and the ports 80 and 443 are occupied. Since I want to have all services running on HTTPs standard port 443, I can't see any way other than using the Domain / SNI based reverse proxy that serves all the other HTTPs based services as well. |
I also checked the traefik documentation, till now i couldn't find anything to resolve this problem. |
Turn off Compression https://doc.traefik.io/traefik/v2.0/middlewares/compress/ @apiening They are using php to handle this and we use Nginx then turn off Gzip. You can mount SSL certificate via docker. You need to write a custom configuration in traefik to handle compression and SSL. I am not familiar with traefik. Still I like to give it a try. And I will post an update if I got it working. You guys are using Let's Encrypt or commercial SSL ? And post the configuration if possible. Thanks 👍 |
@openspeedtest thanks for your response and pointing in the correct direction. After adding the label to my container, i only get 10mbit download speed (before 1000mbit on a Gbit Link) and upload is less but still much to high. "traefik.http.middlewares.test-compress.compress=true" At the moment i use a local https cert, that isnt from Lets Encrypt. |
running without error after adding This is from a local machine.
OST.mp4 |
Take a look at your browser console and network tab while upload test is going on. |
try
The error was when we trying to test upload speed which is sending sever url with 30Mb of data but traefik for some reason preventing or doing something wrong. After adding maxRequestBodyBytes to 10000000000. Issue resolved for me. I tested this on my local machine by running Nginx
I will test docker and post updates. Docker version tested. working fine.
|
@openspeedtest |
try
|
Caddy #67 |
Reverse Proxy is Expensive. Your server will consume more CPU & RAM. Do not run it behind a reverse proxy unless it's absolutely necessary.
|
I am still having this issue, but only in chromium based browsers. On my local network on another windows PC via gigabit ethernet, on Firefox After adding on Firefox I have tried 3 chromium based browsers (Chrome, Edge, and Thorium), all have same result. Since, it's specific to chromium browsers, I think its not related to traefik. |
Add |
yes, ofcourse, i have added that.
|
Ok so, adding all these below 4 options in traefik middleware seems to solve my issue...
Do note, only adding the maxRequestBodyBytes like below
causes the insane upload speeds issue to be solved, but then I was having very slow download speeds....like 7 Mbps...it seems like the download test was being timed out intermittently.... Still, I can get only about While, accessing directly via IP:PORT, I can get I guess, that's as high as I can go with traefik. |
@milindpatel63 For optimal performance, it's recommended to use it without a reverse proxy, if feasible. |
Hi, I'm not using traefik but a simple apache server with a configuration doing the ReverseProxy thing. I have tried adding
But I'm still getting very low speeds compared to other openspeedtest instances hosted outside my local network. EDIT: note that I tested http://local_ip:local_port, https://local_ip:local_ssl_port, https://domain.to.local.com to test the OST instance hosted on my local network... All give the same low speed. |
Limit should be greater than 35 Mb. |
If you are lazy like me you can simply use this sample compose config and use middleware chaining if you use other middlewares.
|
How to change post-body content length on Synology DSM Reverse Proxy? |
@Anonym-tsk try this instead #94 |
@openspeedtest disabling http/2 is not solution, just ugly workaround. |
@Anonym-tsk did you try #94 (comment) ? Disabling http2 is posted as another option. Synology uses Nginx. If you can apply the mentioned configuration (in the Nginx Config) to handle HTTP/2 or HTTP/3, OST will work without any issues. However, I don't know how to make persistent changes on DSM Nginx. |
@openspeedtest yes, I tries these workarounds.
For now there is no working solutions for Synology |
Yes, we need to find a way to modify the DSM Nginx configuration, try Nginx Proxy Manager, or explore other proxy servers that work. Moving OST to a separate IP address may help. HTTP/2 only establishes a single TCP connection to the server, while HTTP/1.1 can make up to six. For SpeedTest, HTTP/1.1 is generally better. |
While my download measurements with OpenSpeedtest compare close to other measurements I did and the values are pretty much expected, my upload measurements are way higher than it is technically possible.
My home internet connection has an upload rate of 30 Mbps on paper, and my measurements with LibreSpeed are around 33 Mbps. However, OpenSpeedtest reports 2351.2 Mbps.
Any idea what may cause this?
I'm using a reverse proxy for SSL (Traefik) in front of the official Docker image, if that matters.
The only guess I have is that there's some kind of compression going on. But I don't have this issue with LibreSpeed and it is set up the same way and is even running on the same server.
The text was updated successfully, but these errors were encountered: