Comments (11)
DigitalOcean has updated their images to include Ubuntu 18.04, which ships with kernel 4.15, so we've modified the installation script for DigitalOcean servers to enable BBR by default. Note that this doesn't affect 'advanced installation' servers yet, though we plan to do that too (with the caveat that we'll only do it if the Kernel already supports BBR, rather than attempt patching it or upgrading it).
from outline-server.
Docker containers don't have their own TCP/IP stacks. The install script has to enable BBR on the host (if it's available).
from outline-server.
Thanks for the suggestion.
Unfortunately the kernel of our image is 4.4, so it doesn't come with BBR
# sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = cubic reno
We'll investigate how easy it is to use a different kernel. Any guidance is appreciated.
from outline-server.
Ok, I learned that Docker actually uses the host kernel. So there's no way in our docker image to guarantee the use of BBR.
I guess we can enhance the install script to check if BBR support is available, and enable it if so.
from outline-server.
It should work on KVM vps, like digitalocean. It will NOT work on openvz.
However, based on my personal testing, I HIGHLY recommend implementing this feature.
from outline-server.
Related performance issue:
#63
from outline-server.
When calling the DO API to create the host VM, could the OS be switched from Ubuntu to DO’s Debian 9 image? Looks like that comes with the 4.9 kernel by default.
from outline-server.
Or maybe switching to Ubuntu 18.04 LTS when it comes out later this month is the better move. That has the 4.15 kernel by default.
from outline-server.
Those are good ideas. However they don't come with Docker pre-installed, and installing it significantly increased the server creation time the last time we tried.
Ideally DO would update the docker image to have the latest kernel
from outline-server.
For sure. (And if we haven't already maybe let's open a DO support request for this and/or write to the DO user forums.)
In the meantime though, for affected users I can imagine it being well worth it to grab a coffee during a longer server creation step in return for actually getting a usable proxy at the end.
Another idea could be including a
[ ] Use BBR for better connectivity from China / lossy networks
(increases setup time by 5 minutes)
checkbox, possibly buried under an "advanced" section of the UI, during server creation.
from outline-server.
I get the same speed with or without BBR, but I get higher speeds with KCP. Maybe we should use kcptun
instead? It doesn't require replacing the kernel too.
from outline-server.
Related Issues (20)
- Support ovpn file (for openvpn) HOT 1
- option to set max number of keys created on a server HOT 6
- PoC: non-increment unique keyId HOT 5
- Method not allowed using the API to get a key by id HOT 2
- Outline Manager 1.15.1-universal can't be opened on macOS because of a notarization problem HOT 1
- return warning message when a key is generated with the same password HOT 2
- How can i setup an outline vpn server on a Mac ? HOT 1
- One key one session HOT 1
- Puth method in /access-keys needs to use {id} in the path HOT 1
- Shadowbox container disappeared after auto update HOT 7
- Allow server operators to disable auto-update HOT 2
- expose production build setting to the shadowbox build action
- Add disable / enable Auto update option HOT 1
- Support default only IPv6 HOT 1
- the traffic limit isn't respected when set to zero before the first connection HOT 4
- Error while running install script on Google Cloud
- Outline gets detected in Iran HOT 6
- An error occurs when creating an API request HOT 1
- Traffic counting does not work. HOT 1
- Route53 AWS and firewall network setting in lightsail AWS isn't work HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from outline-server.