Řešili jste někdy co vlastně znamenají 3 čísla na konci příkazu uptime?
load average: 0,10, 0,09, 0,11

Tyto čísla obecně vyjadřují průměrné zatížení linuxového systemu za období 1, 5 a 15 minut a nezahrnují žádné procesy, čekajicí doby i/o wait na discích nebo síti.
Zjednodušeně se dá říct, že tato čísla zobrazují zatížení, vlivem zatížení CPU procesy, nikoliv tedy jen zatížení přímo CPU. To znamená, že zvyšujicí se zatížení poukazuje pouze na to, že nějaký proces čeká na dokončení předchozího procesu aby mu mohl být přidělen procesorový čas daného procesoru a přitom procesory nemusí vykazovat vůbec vytížení (například u příkazu htop).
Tento jev je nejčastěji způsoben právě dlouhou čekajicí dobou na přístup k disku, přístupu k síťovému rozhraní a nebo jsou prostě jen zatíženy procesory.

Load 3.00 u jedno-jádrového procesoru znamená 300% zatížení systému, u dvou-jádrového procesoru lze předpokládat, že toto zatížení v ideálním případě by bylo poloviční tedy 1.50.
Pokud tedy máme číslo zatížení rovno počtu CPU, můžeme předpokládat, že hardware je v tomto okamžiku na hraně své optimální schopnosti odbavovat procesy v obvyklých časech a nenastává tak rapidní zpomalení systému (můžeme pozorovat při velkém swapování na pomalý disk kdy se zvedne i/o wait time). Lze tedy říci, že v tuto chvíli systém využil svých procesorů „naplno“ a efektivně, ale pokuď takové zatížení je trvalé chtělo by to zvážit posílení hardwaru případně přerozdělení zátěže mezi více serverů.

S těmito informacemi lze napsat skript který průměrný load přepočítá na procenta – (LOAD / POČET CPU) * 100. Pro ukázku přikládám funkční php skript pro linux (Ve windows jsem nenašel alternativu průměrného zatížení za časový usek, pouze okamžité zatížení CPU pomocí php rozšíření COM)

$numcores = 8; //Počet jader CPU
$sys_load = sys_getloadavg(); //Nativni PHP funkce pro linux
$percent = ($sys_load[0] / $numcores) * 100; //Prepocet na procenta, vybereme hodnotu za posledni minutu
 
print sprintf("%0.1f",$percent) . "%".PHP_EOL; //Vypis se zaokrouhlenim na 1 desetinne misto

Řesili jste někdy otázku, jak změřit rychlost na linuxovém serveru bez GUI ? Dříve jsem to řesil stahováním 1GB souboru, ale to se pro větší rychlosti nehodí hlavně kvůli nedostatečné šírce pásma cílového serveru, tudíž přesné změření rychlosti nepřipadá v úvahu.
Proto jsem hledal dál rychlostní test z autorizovaného serveru, který je pro tyto účely určen. Po chvilce hledání jsem narazil na pythoní skript speedtest pro command line, který změří to samé co klasický speedtest.net (odezvu – ping, download – rychlost stahování, upload – rychlost odesílání).

Základní použití:

wget https://raw.github.com/sivel/speedtest-cli/master/speedtest_cli.py
python speedtest-cli.py

Výstup:

Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from JON.CZ s.r.o. (188.75.174.173)...
Selecting best server based on ping...
Hosted by Vodafone CZ (Prague) [41.06 km]: 55.631 ms
Testing download speed........................................
Download: 25.77 Mbit/s
Testing upload speed..................................................
Upload: 34.49 Mbit/s
root@mail:~# python speedtest_cli.py
Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from JON.CZ s.r.o. (188.75.174.173)...
Selecting best server based on ping...
Hosted by Vodafone CZ (Prague) [41.06 km]: 52.611 ms
Testing download speed........................................
Download: 25.91 Mbit/s
Testing upload speed..................................................
Upload: 34.49 Mbit/s

Nápověda – použití:

$ speedtest-cli -h
usage: speedtest-cli [-h] [--share] [--simple] [--list] [--server SERVER]
                     [--mini MINI] [--source SOURCE] [--version]
 
Command line interface for testing internet bandwidth using speedtest.net.
--------------------------------------------------------------------------
https://github.com/sivel/speedtest-cli
 
optional arguments:
  -h, --help       show this help message and exit
  --share          Generate and provide a URL to the speedtest.net share
                   results image
  --simple         Suppress verbose output, only show basic information
  --list           Display a list of speedtest.net servers sorted by distance
  --server SERVER  Specify a server ID to test against
  --mini MINI      URL of the Speedtest Mini server
  --source SOURCE  Source IP address to bind to
  --version        Show the version number and exit

Ukázka:

lGyGlbI[1]

Potřeboval jsem nainstalovat aplikaci „barman“ (Aplikace pro zálohování a případné obnovení PostgreSQL).
Aplikace pro svoje fungování využíva rsync spojený pomocí ssh. Vhodné nastavení je tedy přes RSA klíče kdy maji zálohované servery stejný veřejný i privátní klíč, aby odpadl problem s přihlašováním.
Při aplikaci veřejného klíče pro použití ssh serveru nastal problém a to ten, že sshd klíč neviděl (repsektive tvrdil že k němu nemá práva, která dle všech složkových výpisu měl).

Error: Could not open keyfile ‚/var/lib/barman/.ssh/authorized_keys‚: Permission denied

Rešení bylo nakonec velice jednoduché (nehledě na to že přes všechny snahy mi řešení trvalo skoro 5hodin) a to vypnout SELinux
Vypnout se dá v souboru /etc/sysconfig/selinux přepnutím hodnoty SELINUX=disabled z původní SELINUX=permissive nebo SELINUX=enforcing.
Můj původní předpoklad byl, že jsou špatné práva na složku nebo přímo soubory, bohužel toto se nepotvrdilo. Poté co jsem zavětřil informaci (při googlování) že by se mohlo jednat o problém s SELinux-em tak jsem našel i toto řešení restorecon -R -v ~/.ssh nicméně při mém štěstí příkaz nevypsal žádný výstup a také nic neudělal respektive nic pozitivního.

Prozatím jsem se s tím že SELinux je už od instalace v systému, setkal pouze u CentOS repsektive Fedora-based systémech.
Tímto netvrdím, že by to bylo až takové zlo ale prozatím je to „novinka“ a spoustu lidí odradí první a vetšinou špatná zkušenost..

Doporučuji přečíst o co se vlastně jedná – SELinux na abclinuxu.cz