Chcę uzyskać użycie procesora i pamięci przez serwer za pomocą php. Skrypt powinien działać w systemie Windows i Linux.Jak uzyskać użycie procesora serwera i pamięci RAM za pomocą php?
Jak to zrobić?
Chcę uzyskać użycie procesora i pamięci przez serwer za pomocą php. Skrypt powinien działać w systemie Windows i Linux.Jak uzyskać użycie procesora serwera i pamięci RAM za pomocą php?
Jak to zrobić?
Pierwsza funkcja zwróci użycie pamięci serwera:
function get_server_memory_usage(){
$free = shell_exec('free');
$free = (string)trim($free);
$free_arr = explode("\n", $free);
$mem = explode(" ", $free_arr[1]);
$mem = array_filter($mem);
$mem = array_merge($mem);
$memory_usage = $mem[2]/$mem[1]*100;
return $memory_usage;
}
funkcja ta zwróci użycie procesora serwera:
function get_server_cpu_usage(){
$load = sys_getloadavg();
return $load[0];
}
Radziłbym użyciem PHP SNMP
http://www.php.net/manual/en/book.snmp.php
Zapewni to ujednolicone rozwiązanie dla systemu Windows i Linu x bez komplikacji z komendami exec.
Będziesz oczywiście trzeba zainstalować Windows SNMP demon/usługę na obu serwerach Windows i Linux
Dla Linuksa, wystarczy użyć Net-SNMP np CentOS
sudo yum install net-snmp
sudo service snmpd start
sudo chkconfig snmpd on
Net-SNMP jest również dostępne dla systemu Windows:
[ 'shell_exec'] (http://www.php.net/manual/en/function.shell-exec.php) powinien to zrobić lub spróbuj' var_dump ($ _ SERVER) 'dla mi nimal info –
Czy odpowiedź na to pytanie jest tutaj? http://stackoverflow.com/questions/4705759/how-to-get-cpu-usage-and-ram-usage-without-exec –
jest polecenie terminala, 'nice top' (lub po prostu' top'), które generuje wykorzystanie procesora i pamięci RAM. W połączeniu z shell_exec() i odrobiną parsowania danych wyjściowych powinno uzyskać to, czego szukasz. – roycable