lancachenet / steamcache-site-license

SteamCache for use with Valve Site License
MIT License
45 stars 10 forks source link

Unreliable Proxy #2

Open mintopia opened 6 years ago

mintopia commented 6 years ago

Speaking to Taylor at Valve about behaviour we've been seeing:

If the Steam Client encounters any problem with bad responses or invalid data from the proxy, it switches to using direct HTTP downloads. It will then try again an hour later.

Suggested workaround for now is to disable the SLS and go back to the generic image and DNS spoofing. One option is to run the SLS but with the proxy disabled (see mintopia/steam-site-license:latest). This gives the benefit of Site Licenses and P2P downloads; along with all the stats; but still using our existing cache.

ghost commented 6 years ago

for me sls is much more slowly than steamcache proxy with dns spoofing. I'm not getting over 30Mbit/s using sls, with steamcache I can fully utilize my internet connection. Maybe this is because valve didn't implement an option to select the download server location. great project btw, hope valve get this fixed any time soon.

mintopia commented 6 years ago

The SLS server works as a normal HTTP caching proxy on port 3128 by default, it should be approximately as efficient as a normal nginx-based cache is, and certainly when I've seen it working properly - it is. However, lately I have seen issues with it.

It's more than likely your Steam Client is getting a timeout or other error from the proxy and deciding to go directly to Steam. If you look using netstat or Resource Monitor; or check the logs in content_log.txt you'll probably see it talking to the Internet directly and not the SLS.

Valve are aware that this is bad for us using it; and they have said they will take a look at resolving this for us. For now I suggest following the workaround of using the nginx cache at steamcache/generic and spoofing the DNS entries.

Download locations in the Steam Client are irrelevant when a Site License Server is used. The SLS responds to UDP broadcasts from the Steam Client; when the client finds an SLS, it will then proxy all Steam downloads through it, the user has no control over this - it's all done by the client.

ghost commented 6 years ago

That's what I meant.. you (the system admin) should be able to tell the SLS where to get the content from. AFAIK you currently can't do this. If I would guess, it's getting the data from dedicated servers located in the united states. Depending on your location and ISP this can result in degraded download speeds, as I am seeing right now. Just a wild guess, but I can't find any other explanation, since it is all running on the same hardware. I'm using your workaround for now, working great, thanks!

Kerwood commented 5 years ago

@mintopia How do you disable the proxy part ?