You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
One of the reasons initial downloads when using lancache are slower than downloading the game directly on the client is that the client uses keepalive and for each request to the content servers it does not open a new connection and instead uses an already open connection and that saves time, while the current nginx configuration of lancache does not use keepalive.
This is specially important when the client does not use many concurrent connections like Xbox (both windows and console) and sony consoles. This problem can be partially solved by increasing slice size or having dynamic slice size based on launcher to reduce number of requests, but the better solution is to have keepalive.
Enabling keepalive for upstream connections in nginx requires 3 things (as far as I know):
"upstream" blocks with a list of server ips or domains
Considering that we already have the domain names of upstream servers, we can define a map and generate a file (or files) containing upstream files and include them. upstream names can also be equal to domain name, nginx looks for upstream blocks then resolves domain if nothing was found. Here is an example:
upstream steamcontent.com {
keepalive 16;
keepalive_timeout 5m;
server cache5-fra1.steamcontent.com; # nearest server to us can be chosen
}
upstream download.epicgames.com {
keepalive 16;
keepalive_timeout 5m;
server download.epicgames.com;
}
upstream gst.prod.dl.playstation.net {
keepalive 16;
keepalive_timeout 5m;
server gst.prod.dl.playstation.net;
}
This requires a script that generates upstream blocks for each possible subdomain, which is a bit complicated. I have implemented a custom setup like this in my own server and it has improved initial download speeds drastically. Like to know your thoughts on this topic.
The text was updated successfully, but these errors were encountered:
One of the reasons initial downloads when using lancache are slower than downloading the game directly on the client is that the client uses keepalive and for each request to the content servers it does not open a new connection and instead uses an already open connection and that saves time, while the current nginx configuration of lancache does not use keepalive.
This is specially important when the client does not use many concurrent connections like Xbox (both windows and console) and sony consoles. This problem can be partially solved by increasing slice size or having dynamic slice size based on launcher to reduce number of requests, but the better solution is to have keepalive.
Enabling keepalive for upstream connections in nginx requires 3 things (as far as I know):
Considering that we already have the domain names of upstream servers, we can define a map and generate a file (or files) containing upstream files and include them. upstream names can also be equal to domain name, nginx looks for upstream blocks then resolves domain if nothing was found. Here is an example:
.
.
.
.
.
.
This requires a script that generates upstream blocks for each possible subdomain, which is a bit complicated. I have implemented a custom setup like this in my own server and it has improved initial download speeds drastically. Like to know your thoughts on this topic.
The text was updated successfully, but these errors were encountered: