Lancache VM not reaching full transfer speeds

Braf1895

Cadet
Joined
Mar 24, 2023
Messages
2
Hello all!

I recently got a lancache VM setup on my TrueNas box, but I'm not sure if I got the results I should. Right now, both the read and write speeds seem a bit slow for what I have. (About 300-400 mbit/s write | ~500 mbit/s read) My internet speed to the VM is also reaching ~700 mbit/s

Hardware:
- Motherboard: supermicro x9drd-7ln4f
- CPU(s): 2x E5-2667 v2's
- RAM: 64GB ECC
- Disk configuration: 4 mirrored vdevs of HGST Ultrastar 8TB disks
- LACP (multiple pc's will be hitting this at once) of 3 nic's

VM has 16 cores and 16GB of RAM

Things I have tried so far:
-Disabled Hardware Offloading for the lagg itself and all of the interfaces tied to it.
-Switched from AHCI to virtIO (this greatly improved my internet speed to the lan)

At this point, I'm not sure if there is something specific to TrueNas that I just don't know about, or if this is 100% on lancache. Any help would be appreciated. Thank you!
 

Braf1895

Cadet
Joined
Mar 24, 2023
Messages
2
Update (because I forgot to include this in the first post):

I ran fio from the TrueNas shell, and got over 1GB/s read and write. I also ran iperf to rule out some weird network problem with the lagg. Results were about 940 mbit/s to another machine on the network. I'm convinced there's some setting I have to adjust that I'm just not seeing.
 

sretalla

Powered by Neutrality
Moderator
Joined
Jan 1, 2016
Messages
9,700

Krowvin

Explorer
Joined
Jul 24, 2014
Messages
60
has all the information you would need to run it
Lancache.net has the ports on that page as 443 and 80 for http and https. Truecharts has it as 10279 and 10280.

Any idea how to go about mapping these? I realize on the container they've probably done 10279:80 and 10280:443
But how do you go about linking the monolithic to the dns with this?

I even went as far as to try and set a static IP so I could use ports 80:80 and 443:443
 

sretalla

Powered by Neutrality
Moderator
Joined
Jan 1, 2016
Messages
9,700
If you're using the TrueCharts version, the DNS port should be exposed as expected.

But how do you go about linking the monolithic to the dns with this?

If you're using Launch Docker Image, you can specify to use an External IP Address (giving your container its own IP with access to any of the ports).
 

Krowvin

Explorer
Joined
Jul 24, 2014
Messages
60
@sretalla
I watched the video twice and read the docs once that you provided just to make sure I was not missing something.

My current understanding of LANCache-Monolithic and LANCache-DNS is this:
  • LC-Monolithic is everything needed (nginx mostly) to setup caching of the content.
  • LC-Monolithic expects port 80 and 443 to be opened as this is what steam and other clients use to facilitate communication with Valve and other servers
  • LC-DNS is set as your network's (LAN) DNS and serves as a means of poisoning any/all DNS requests to Valve and other servers that hold content (games/etc).

When a request is made from the Steam client it reaches out to a list of established domains by Valve for content.

LC-DNS intercepts these specific DNS requests and "poisons" them with your own LC-Monolithic IP Address instead.

Which, once the request reaches LC-Monolithic it forwards the request on to Valve, storing the results on disk (your cache) and also relaying them back to the client.

Future requests are then able to see if the version (of the game/etc) requested exists on cache, if so and it's the latest it will return that for download via LAN.

So that brings it back to my question earlier
Any idea how to go about mapping these?
If Steam (on my client PC, just as an example) is reaching out and expecting 443 and 80 on whatever IP it is connected to, how will mapping the DNS and Monolithic internally to each other help with this? Which I believe is what you were suggesting.

I'm new, and i'm not meaning to be combative here. I've just struggled the past few days to find information on this. I know setting it up bare metal/on a VM would solve this. But I also know that if it's on TrueCharts someone has to have done it successfully.


If there's a better place to post this I will, your comment (sretalla) is the closest I have come in my search of the forums/search engines.
 
Last edited:

sretalla

Powered by Neutrality
Moderator
Joined
Jan 1, 2016
Messages
9,700
If Steam (on my client PC, just as an example) is reaching out and expecting 443 and 80 on whatever IP it is connected to, how will mapping the DNS and Monolithic internally to each other help with this? Which I believe is what you were suggesting.
If the only option is to use 80 or 443, you have 2 choices:

Use a different IP for the app from your host and forward those ports into the container.

or

(if you're using TrueCharts), use Traefik as suggested by them (https://truecharts.org/charts/enterprise/traefik/how-to/ and https://truecharts.org/manual/SCALE/guides/truenas-web-gui-via-traefik) Then publish your app via Traefik on the expected ports
 

Krowvin

Explorer
Joined
Jul 24, 2014
Messages
60
Thanks for the replies sretalla, I was able to get it working by setting a static IP for the docker container.

I went with the "Launch Docker Image", but i'm sure it would work for the TrueCharts implementation too.

Krowvin:
I even went as far as to try and set a static IP so I could use ports 80:80 and 443:443
The reason it did not work for static the first time I tried is because I was trying to set the ports.

I learned that if you use the "Launch docker image" if you leave all the ports blank they are open by default. Looks like this:
1686509587411.png


And here's the static IP setup for the container
1686509394148.png
 

Attachments

  • 1686509626180.png
    1686509626180.png
    10.4 KB · Views: 164

Bunnypod

Cadet
Joined
Aug 12, 2023
Messages
1
Thanks for the replies sretalla, I was able to get it working by setting a static IP for the docker container.

I went with the "Launch Docker Image", but i'm sure it would work for the TrueCharts implementation too.


The reason it did not work for static the first time I tried is because I was trying to set the ports.

I learned that if you use the "Launch docker image" if you leave all the ports blank they are open by default. Looks like this:
View attachment 67296

And here's the static IP setup for the container
View attachment 67295

I created account just to reply as I need some assistance as well. Are you able to provide some clarification or guide on how exactly you set this up through "Launch Docker Image". I see the IP details there, but it isn't super clear for me. Originally I was attempting to go through the truecharts method, but there is little to no documentation behind it.

I've attempted setting up a VM, but due to hardware issues I am unable to properly configure a bridge for it.

Apologies on inquiring as I am also quite new to truenas scale and would like some assistance if possible. :)
 
Top