Category: Linux OS-level Issues

Microsoft Fonts in Solus Linux
article #1047, updated 5 days ago

Here’s a great set of steps:

http://www.fosslinux.com/1387/how-to-install-microsoft-true-type-fonts-in-solus.htm

In essence it’s two interactive commands, first one, then the other:

sudo eopkg bi --ignore-safety https://raw.githubusercontent.com/solus-project/3rd-party/master/desktop/font/mscorefonts/pspec.xml
sudo eopkg it mscorefonts*.eopkg;sudo rm mscorefonts*.eopkg

Categories:   Linux OS-level Issues   

==============

Linux Speed, Responsiveness, and Latency Reduction with 'sysctl' Settings
article #892, updated 74 days ago

These items help a lot in any application, including desktop, web server, or terminal server. The end of this post has two large compilations of these settings, one for wired (“non-lossy”) networking, one for wireless (“lossy”).

On the vast majority of Linux distributions, one can just add these changes to /etc/sysctl.conf, and then run sysctl -p to apply them without reboot. However, recent additions to standards have enabled us to place custom settings in our own configuration files, so that we don’t take /etc/sysctl.conf out of distro control.

On recent Debian and Ubuntu, we may best put them in /etc/sysctl.d/60-custom.conf (or replace the word “custom” to your liking), and then run sysctl --system to load both /etc/sysctl.conf and everything under /etc/sysctl.d.

On some other recent distros, it’s /etc/sysctl.d/custom.conf (the word “custom” is still arbitrary), and then run systemctl restart systemd-sysctl.

You can check your results with sysctl -A.

The first selection is for wired networking performance:

net.ipv4.tcp_window_scaling=1
net.ipv4.tcp_workaround_signed_windows=1
net.ipv4.tcp_sack=1
net.ipv4.tcp_fack=1
net.ipv4.tcp_low_latency=1
net.ipv4.ip_no_pmtu_disc=0
net.ipv4.tcp_mtu_probing=1
net.ipv4.tcp_frto=2
net.ipv4.tcp_frto_response=2
net.ipv4.tcp_congestion_control=illinois

A bit different first group for networking performance, is recommendable for anything involving wireless, i.e., “lossy” networks:

net.ipv4.tcp_window_scaling=1
net.ipv4.tcp_workaround_signed_windows=1
net.ipv4.tcp_sack=1
net.ipv4.tcp_fack=1
net.ipv4.tcp_low_latency=1
net.ipv4.ip_no_pmtu_disc=0
net.ipv4.tcp_mtu_probing=1
net.ipv4.tcp_frto=2
net.ipv4.tcp_frto_response=2
net.ipv4.tcp_congestion_control = hybla
net.ipv4.tcp_allowed_congestion_control = hybla cubic

And then some general networking performance items:

net.core.rmem_default = 31457280
net.core.rmem_max = 12582912
net.core.wmem_default = 31457280
net.core.wmem_max = 12582912
net.core.somaxconn = 4096
net.core.netdev_max_backlog = 65536
net.core.optmem_max = 25165824
net.ipv4.tcp_mem = 65536 131072 262144
net.ipv4.udp_mem = 65536 131072 262144
net.ipv4.tcp_rmem = 8192 87380 16777216
net.ipv4.udp_rmem_min = 16384
net.ipv4.tcp_wmem = 8192 65536 16777216
net.ipv4.udp_wmem_min = 16384
net.ipv4.tcp_max_tw_buckets = 1440000
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1

And some for network security enhancement:

net.ipv4.tcp_synack_retries = 2
net.ipv4.ip_local_port_range = 2000 65535
net.ipv4.tcp_rfc1337 = 1
net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_keepalive_time = 300
net.ipv4.tcp_keepalive_probes = 5
net.ipv4.tcp_keepalive_intvl = 15

And now a few to keep virtual memory usage under good control:

vm.swappiness=20
vm.dirty_ratio = 60
vm.dirty_background_ratio = 2

And one to increase the maximum number of open and watched files, very helpful indeed for servers, file synchronization of all sorts, and many other functions:

fs.file-max = 2097152
fs.inotify.max_user_watches = 524288

The above was compiled from these two excellent articles:

http://www.networkworld.com/article/2227856/opensource-subnet/best-networking-tweaks-for-linux.html
https://easyengine.io/tutorials/linux/sysctl-conf/

and other sources. Here is the whole set for wired (non-lossy) networking:

net.ipv4.tcp_window_scaling=1
net.ipv4.tcp_workaround_signed_windows=1
net.ipv4.tcp_sack=1
net.ipv4.tcp_fack=1
net.ipv4.tcp_low_latency=1
net.ipv4.ip_no_pmtu_disc=0
net.ipv4.tcp_mtu_probing=1
net.ipv4.tcp_frto=2
net.ipv4.tcp_frto_response=2
net.ipv4.tcp_congestion_control=illinois
net.core.rmem_default = 31457280
net.core.rmem_max = 12582912
net.core.wmem_default = 31457280
net.core.wmem_max = 12582912
net.core.somaxconn = 4096
net.core.netdev_max_backlog = 65536
net.core.optmem_max = 25165824
net.ipv4.tcp_mem = 65536 131072 262144
net.ipv4.udp_mem = 65536 131072 262144
net.ipv4.tcp_rmem = 8192 87380 16777216
net.ipv4.udp_rmem_min = 16384
net.ipv4.tcp_wmem = 8192 65536 16777216
net.ipv4.udp_wmem_min = 16384
net.ipv4.tcp_max_tw_buckets = 1440000
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_synack_retries = 2
net.ipv4.ip_local_port_range = 2000 65535
net.ipv4.tcp_rfc1337 = 1
net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_keepalive_time = 300
net.ipv4.tcp_keepalive_probes = 5
net.ipv4.tcp_keepalive_intvl = 15
vm.swappiness=20
vm.dirty_ratio = 60
vm.dirty_background_ratio = 2
fs.file-max = 2097152
fs.inotify.max_user_watches = 524288

and another full set for wireless / lossy networking:

net.ipv4.tcp_window_scaling=1
net.ipv4.tcp_workaround_signed_windows=1
net.ipv4.tcp_sack=1
net.ipv4.tcp_fack=1
net.ipv4.tcp_low_latency=1
net.ipv4.ip_no_pmtu_disc=0
net.ipv4.tcp_mtu_probing=1
net.ipv4.tcp_frto=2
net.ipv4.tcp_frto_response=2
net.ipv4.tcp_congestion_control = hybla
net.ipv4.tcp_allowed_congestion_control = hybla cubic
net.core.rmem_default = 31457280
net.core.rmem_max = 12582912
net.core.wmem_default = 31457280
net.core.wmem_max = 12582912
net.core.somaxconn = 4096
net.core.netdev_max_backlog = 65536
net.core.optmem_max = 25165824
net.ipv4.tcp_mem = 65536 131072 262144
net.ipv4.udp_mem = 65536 131072 262144
net.ipv4.tcp_rmem = 8192 87380 16777216
net.ipv4.udp_rmem_min = 16384
net.ipv4.tcp_wmem = 8192 65536 16777216
net.ipv4.udp_wmem_min = 16384
net.ipv4.tcp_max_tw_buckets = 1440000
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_synack_retries = 2
net.ipv4.ip_local_port_range = 2000 65535
net.ipv4.tcp_rfc1337 = 1
net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_keepalive_time = 300
net.ipv4.tcp_keepalive_probes = 5
net.ipv4.tcp_keepalive_intvl = 15
vm.swappiness=20
vm.dirty_ratio = 60
vm.dirty_background_ratio = 2
fs.file-max = 2097152
fs.inotify.max_user_watches = 524288

Categories:   Performance   Linux OS-level Issues

==============

Installing nslookup on Linux
article #1008, updated 182 days ago

Increasingly, nslookup is not installed by default in major Linux distros. On Arch-based and Debian-based distros, it’s in package dnsutils,

Categories:   DNS   Linux OS-level Issues

==============

'atop' for Linux CPU and other resources and performance checking
article #964, updated 326 days ago

‘atop’ seems to have some extraordinary depth.

http://linux.die.net/man/1/atop

Categories:   Linux OS-level Issues   

==============

syncthing on CentOS 7 and multiple Fedora versions
article #948, updated 391 days ago

After scouting a rather large number of potential sources, this one is working extremely well; download the .repo file for your OS and put it with the rest, and you’re in with yum or dnf!

https://copr.fedorainfracloud.org/coprs/decathorpe/syncthing/

Categories:   Tools   Linux OS-level Issues

==============

Set up 'gpg' (GnuPG) for public key verification under Linux
article #921, updated 464 days ago

Verification of packages and many other things under Linux, is often done with GnuPG, also called gpg. Distros don’t always come with this set up completely, because users often have divergent needs. But if you should see anything remotely like this:

linux-3.18.tar ... FAILED (unknown public key 79BE3E4300411886)

edit the file ~/.gnupg/gnupg.conf, and place these contents at the top:

keyserver hkp://keys.gnupg.net

and then run the following command on the missing key(s):

gpg --recv-keys 79BE3E4300411886

Categories:   Linux OS-level Issues   

==============

Compile grub-customizer 4.0.6 when it won't
article #871, updated 507 days ago

Grub Customizer is a great GUI configurator for GRUB, currently the most common boot loader for ix86 and AMD64 hardware. The Customizer has issues compiling on some setups, especially later versions of gcc. Here’s what I found to do:

  1. Download grub-customizer-4.0.6.tar.gz, unpack.
  2. ccmake .
  3. Resolve any missing libraries et cetera. ccmake . again until nothing missing.
  4. Look for these files:
    ./CMakeFiles/grub-customizer.dir/flags.make
    ./CMakeFiles/grubcfg-proxy.dir/flags.make
  5. Add -std=gnu++11 as first item to CXX_FLAGS in both files.
  6. cmake .
  7. Again resolve any missing libraries et cetera. cmake . again until nothing missing.
  8. make
  9. sudo make install

Categories:   Linux OS-level Issues   Booting

==============

An approach to a Linux terminal server
article #891, updated 548 days ago

This project:

http://www.x2go.org

appears very good.

Categories:   Linux OS-level Issues   

==============

Reset root password on Linux with GRUB boot loader
article #834, updated 678 days ago

If you need to reset the root password on a Linux box running the GRUB boot loader:

  1. During boot, hit Tab, and GRUB should permit you to see the boot option lines.
  2. Edit one of them. Replace ro quiet splash with rw init=/bin/bash.
  3. Boot without saving the line permanently. The system will send you directly into single-user mode as root, from where you can run ‘passwd’ to change it.

Categories:   Linux OS-level Issues   

==============

Third-party package install for Linux
article #810, updated 760 days ago

This one compiles vanilla source as it installs, handles conflicts very carefully, retrieves very recent versions of many useful things including ‘curl’.

http://www.toastball.net/toast/

Categories:   Linux OS-level Issues