lancachenet / monolithic

A monolithic lancache service capable of caching all CDNs in a single instance
https://hub.docker.com/r/lancachenet/monolithic
Other
737 stars 73 forks source link

Looking to switch to this, but need some clarification. #30

Closed dark-swordsman closed 5 years ago

dark-swordsman commented 5 years ago

Currently I am using bntjah/lancache, which is good, but it's having a lot of issues with steam connections being limited to 2/3 MB/s because of the connection pool, and no offense to them, but they haven't been very helpful in helping me diagnose it.

I see here that you guys support other services such as blizzard, origin, etc. My main question, does this all run through one IP? I did see something about multiple IPs being support to solve a connection pool issue, but it's not very clear.

Bntjah requires 18 IPs or so. One for the lancache IP, then virtual IPs that it hands off requests to to support more throughput. This all works great except for when more than 2 people try to download new games or updates from the internet within a period of time for steam, just steam.

And I guess my second question is, is there a comprehensive and straight forward guide to setting this up? I'm trying to find a solution for a lan center with over 100 PCs where we nearly cap out on the weekends and have a lot of traffic.

I'm usually okay with sitting down and learning all this stuff, and I've already spent hours trying to get different lancaches to work, but we're at a point where we have been open for a while yet we can't guarantee fast downloads because our lancache keeps dying every couple weeks. Besides that, my main job isn't this, but we're a small company and we need people wearing many hats.

Thanks for the help.

VibroAxe commented 5 years ago

Hi Kyle

Glad you found the project. Monolithic can operate happily on one IP or several. Whilst we now recommend several due to enhanced bandwidth when steam is first downloading from then net it's far from essential and in your situation you probably don't need it

For setup, There's a 4 line guide on the readme (https://github.com/steamcache/monolithic/blob/master/README.md#simple-full-stack-startup) which should setup all the component parts: monolithic (the cache engine itself), sniproxy (for HTTPS passthru) and steamcache-dns to handle the DNS requests. It's simple but actually pretty comprehensive

If you run your own DNS you can either use the domains list over at uklans (HTTPS://GitHub.com/uklans/cache-domains) or you can upstream the steamcache-dns instance to your own internal DNS to handle any non cache traffic internal resolution

dark-swordsman commented 5 years ago

Great! Thanks for the help Vibro.

One more question, though. Does this cache support expiration? So we currently only have 1.85 TB (1.79 TiB) of storage, but we worry that our current setup isn't actually deleting old versions. For example, CS:GO has frequent updates. We find that even if it's cached, if there's an update, it appears to re-download the whole entire game and re-cache the whole entire game without deleting the old game.

We run a pretty active lan center with 100 PCs and many customers, so I wouldn't be surprised if 1.85 TB is not enough, but we would like to try this before deciding to upgrade our R620 drives or building a whole new server with 1/2TB SSDs in RAID.

VibroAxe commented 5 years ago

Yup. You can tune the space the cache uses (Readme: https://github.com/steamcache/monolithic/blob/master/README.md#tweaking-cache-sizes) and as soon as the cache is full then nginx will expire and delete the oldest/least used content across all cdns. It's designed as a fire and forget system.

As for total size, more is always better from a saving bandwidth perspective. It just depends on how many unique games your customers play. I'd suggest try it and then run the upgrade after a while!

dark-swordsman commented 5 years ago

Awesome! Thanks so much. I'll look into installing this soon and let you know how it goes. :+1: