Ř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

Před časem jsem řešil jak na ping nezavisle na platforme. Ano vím že linux mac i windows maji nativní ping ale liší se paremetry a ne vždy jde využít na každém hostingu.
Proto jsem hledal alternativu která využívá socket.

function ping($host, $timeout = 1) {
  /* ICMP ping packet with a pre-calculated checksum */
  $package = "\x08\x00\x7d\x4b\x00\x00\x00\x00PingHost";
  $socket  = socket_create(AF_INET, SOCK_RAW, 1);
  socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO, array('sec' => $timeout, 'usec' => 0));
  socket_connect($socket, $host, null);
  $ts = microtime(true);
  socket_send($socket, $package, strLen($package), 0);
  if (socket_read($socket, 255)) {
    $result = microtime(true) - $ts;
  } else {
    $result = false;
  }
  socket_close($socket);
  if ($result)
    return round(($result * 1000), 0)." ms".PHP_EOL;;
  else
    return "down".PHP_EOL;
}
 
for ($a = 0;$a < 10000 ;$a++ ) {
  print ping( "seznam.cz" );
}
Vloženo PHP.