libresh / libre.sh

Moved to https://lab.libreho.st/libre.sh/compose.libre.sh
GNU Affero General Public License v3.0
189 stars 22 forks source link

Discription in INSTALL_LINUX.md #171

Closed lil5 closed 5 years ago

lil5 commented 6 years ago

It doesn't seem very well documented ( why | how ) you need to run all those steps;

The (install docker-compose, install Libre.sh) is understandable why it's necessary.

I'm not very acknowledged in server backend/maintentence so please excuse my n00bishness.

If explenation is too much to ask for please point me in the right direction so I can study what they're about (and if I understand I might make a PR...)

pierreozoux commented 6 years ago

Yes, I know the documentation is pretty bare. They are more notes than proper instructions, but please feel free to improve it.( As you see some people already improved it).

To be honest, I didn't do the file INSTALL_LINUX.md

I'll try to answer your questions:

Hope it answers your questions!

JOduMonT commented 6 years ago

For me, few of these tweaks comes after watching Brendan Gregg recommendation, a kernel and performance engineer at Netflix.

But don't get me wrong, I don't try to claim being a Kernel specialist and/or theses tweaks come from me.

Kernel

Generic Kernel have generic configuration for general purpose. So when you run server and want to optimize it with specific purpose you have to tweak few parameters.

Depending on the stack, which related to the kernel version, some parameters aren't optimize and might result of dropping queries (TCP/...), and/or overheating the resources CPU/RAM.

vm.overcommit_memory

It's an optimization for the VirtualMemory and this parameter will be mostly use by caching system like redis, memcached and so on; more info here

fs.aio-max-nr

Related to database like Mysql, MariaDB, Percona, Postgres, MongoDB. more info

transparent hugepage

This line is actually just to be sure it will never being activate even if the kernel teams decide too, which might be possible depending of which instruction CPU constructor (Intel/AMD) includes. https://www.kernel.org/doc/Documentation/vm/transhuge.txt

localhost

it will avoid some apps to make request over DNS, and slow down the response; also, sometimes DNS are just define externally so only the public IP awnser; and after a quick research on the net I found GO and Kubernetes issues related to the fact localhost wasn't define.

Cluster, Swarm and ...

If you have a cluster and/or multiple host, than if localhost is define and internally your apps and you use volume for your data, than everything will, in theory works automagically.

Let's say; I have a Wordpress who use a mysql database and instead of using localhost I point my wordpress to an ip or a ns; like the good old time with a 3tiers infrastructure (proxy, apps, db); so if the server have to reboot, and/or have a lack of resource, your screwed.

But if you connect Wordpress via localhost, and of course you did properly declare the dependency and your data are in volume, than the swarm, cluster, ... will manage/migrate the apps for you.

255.255.255.255

Means the broadcast will never being routable

environment

At the beginning; I had a hard time them too; with time I understood they are mostly for automation like buying domain via namecheap API, configuring backups and mail service in different apps.

unteem commented 5 years ago

Closing issue here repo is migrated to lab.libre.host.st

please follow issue here