Hướng dẫn php get cpu usage windows - php get cửa sổ sử dụng cpu

Cho đến nay tôi biết có ba phương pháp:

Com cuộc gọi

    $com = new COM('winmgmts:{impersonationLevel=impersonate}');
    $cpus = $com->execquery('SELECT LoadPercentage FROM Win32_Processor');
    foreach ($cpus as $cpu) { $load = $cpu->LoadPercentage; break; }

COM_DOTNET Tiện ích mở rộng cần thiết.

Gọi bảng điều khiển đến wmic

    exec('wmic cpu get LoadPercentage', $p);
    return $p[2];

Gọi bảng điều khiển đến exec('wmic cpu get LoadPercentage', $p); return $p[2]; 0

    $_ENV['typeperfCounter'] = '\processor(_total)\% processor time';
    exec('typeperf -sc 1 "'.$_ENV['typeperfCounter'].'"', $p);
    $line = explode(',', $p[2]);
    $load = trim($line[1], '"');
  1. Lưu ý: $ _ENV ['tyeperfcount'] phải được đặt theo Locale hệ thống. Cho Ru_ru đó là

    $_ENV['typeperfCounter'] = '\Процессор(_total)\% загруженности процессора';
    

Tất cả những gì họ chạy rất chậm (thành thật mà nói, tôi nghĩ rằng họ chặn thực hiện luồng hiện tại trong 1 giây để đo tải).

Tập lệnh kiểm tra sức khỏe của máy chủ tệp này hoạt động trên Windows, Linux và có thể là những thứ khác. Nó được viết bằng PHP để hiển thị việc sử dụng CPU, sử dụng RAM, kết nối đến và sử dụng đĩa cứng.

CẬP NHẬT Tháng 9 năm 2020 Kiểm tra máy chủ PHP đã nhận được rất nhiều lượt tải xuống vì vậy tôi đã cập nhật mã và mở nguồn trên GitHub. Server Check PHP was getting a lot of downloads so I’ve updated the code and open sourced it on Github.

Nếu bạn muốn biết các chức năng để sử dụng RAM & CPU từ bên trong nhảy PHP đến phần mã ở đây.

Hướng dẫn php get cpu usage windows - php get cửa sổ sử dụng cpu

Máy chủ Kiểm tra bản demo tại đây: https://jamesbachini.com/misc/servercheck.php

Đầu ra của JSON: https://jamesbachini.com/misc/servercheck.php?json=1

Tải xuống tệp duy nhất ở đây: https://jamesbachini.com/misc/servercheck.zip

Github repo tại đây: https://github.com/jamesbachini/server-check-php

Tải xuống tập lệnh này để hiển thị việc sử dụng RAM & CPU cho máy chủ của bạn.


Xây dựng một máy chủ kiểm tra sức khỏe PHP tập lệnh


Sử dụng RAM PHP & Mã sử ​​dụng CPU PHP

Chức năng khác nhau đối với Windows và Linux vì vậy điều đầu tiên chúng ta cần làm là xác định hệ điều hành.

$operating_system = PHP_OS_FAMILY;
if ($operating_system === 'Windows') {

Sau đó, tôi đã sử dụng giao diện quản lý Windows để xác định việc sử dụng RAM và CPU. Lệnh NetStat hoạt động trên cả Windows và Linux mặc dù định dạng là khác nhau.

// Win CPU
$wmi = new COM('WinMgmts:\\\\.');
$cpus = $wmi->InstancesOf('Win32_Processor');
$cpuload = 0;
$cpu_count = 0;
foreach ($cpus as $key => $cpu) {
  $cpuload += $cpu->LoadPercentage;
  $cpu_count++;
}
// WIN MEM
$res = $wmi->ExecQuery('SELECT FreePhysicalMemory,FreeVirtualMemory,TotalSwapSpaceSize,TotalVirtualMemorySize,TotalVisibleMemorySize FROM Win32_OperatingSystem');
$mem = $res->ItemIndex(0);
$memtotal = round($mem->TotalVisibleMemorySize / 1000000,2);
$memavailable = round($mem->FreePhysicalMemory / 1000000,2);
$memused = round($memtotal-$memavailable,2);
// WIN CONNECTIONS
$connections = shell_exec('netstat -nt | findstr :80 | findstr ESTABLISHED | find /C /V ""'); 
$totalconnections = shell_exec('netstat -nt | findstr :80 | find /C /V ""'); 

Sau đó, đối với Linux, chúng tôi có sẵn sys_getloadAvg () để sử dụng CPU trong PHP. Sau đó, đối với RAM, tôi đã sử dụng lệnh shell miễn phí trên mạng.

// Linux CPU
$load = sys_getloadavg();
$cpuload = $load[0];
// Linux MEM
$free = shell_exec('free');
$free = (string)trim($free);
$free_arr = explode("\n", $free);
$mem = explode(" ", $free_arr[1]);
$mem = array_filter($mem, function($value) { return ($value !== null && $value !== false && $value !== ''); }); // removes nulls from array
$mem = array_merge($mem); // puts arrays back to [0],[1],[2] after 
$memtotal = round($mem[1] / 1000000,2);
$memused = round($mem[2] / 1000000,2);
$memfree = round($mem[3] / 1000000,2);
$memshared = round($mem[4] / 1000000,2);
$memcached = round($mem[5] / 1000000,2);
$memavailable = round($mem[6] / 1000000,2);
// Linux Connections
$connections = `netstat -ntu | grep :80 | grep ESTABLISHED | grep -v LISTEN | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | grep -v 127.0.0.1 | wc -l`; 
$totalconnections = `netstat -ntu | grep :80 | grep -v LISTEN | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | grep -v 127.0.0.1 | wc -l`; 

Đối với việc sử dụng đĩa cứng, tôi đã tìm thấy các hàm gốc PHP hoạt động trên các hệ điều hành:-

$diskfree = round(disk_free_space(".") / 1000000000);
$disktotal = round(disk_total_space(".") / 1000000000);
$diskused = round($disktotal - $diskfree);
$diskusage = round($diskused/$disktotal*100);

Mã nguồn đầy đủ có sẵn tại đây: https://github.com/jamesbachini/server-check-php

Nếu bạn quan tâm đến kinh doanh trực tuyến, tiếp thị hiệu suất và phát triển web thì hãy xem kênh Twitter và YouTube của tôi.

Hướng dẫn php get cpu usage windows - php get cửa sổ sử dụng cpu


"

Tôi cần một tập lệnh để thực hiện kiểm tra sức khỏe máy chủ cơ bản và xây dựng những điều sau đây có thể được xem ở đây:

http://jamesbachini.com/misc/ram.php

và tải xuống tại đây:

http://jamesbachini.com/misc/ram.zip

Nó đo RAM, CPU, sử dụng đĩa cứng, thiết lập và tổng kết nối, một vài bit và mảnh khác. Nó có một hệ thống đèn giao thông được thiết lập cho nhu cầu của tôi nhưng bạn có thể fiddle khi cần thiết nếu bạn muốn thay đổi các tham số.

Ở đây, một ảnh chụp màn hình:

Hướng dẫn php get cpu usage windows - php get cửa sổ sử dụng cpu

Để cài đặt chỉ để giải nén gói và tải tệp Ram.php lên máy chủ của bạn. Sau đó truy cập http://myserver.com/myfolder/ram.php hoặc bất cứ nơi nào bạn đặt nó vào trình duyệt web/di động thông thường của bạn.

Và đây là mã PHP đầy đủ, chỉ trong trường hợp bạn quan tâm:

	$server_check_version = '1.0.4';
	$start_time = microtime(TRUE);

	$operating_system = PHP_OS_FAMILY;

	if ($operating_system === 'Windows') {
		// Win CPU
		$wmi = new COM('WinMgmts:\\\\.');
		$cpus = $wmi->InstancesOf('Win32_Processor');
		$cpuload = 0;
		$cpu_count = 0;
		foreach ($cpus as $key => $cpu) {
			$cpuload += $cpu->LoadPercentage;
			$cpu_count++;
		}
		// WIN MEM
		$res = $wmi->ExecQuery('SELECT FreePhysicalMemory,FreeVirtualMemory,TotalSwapSpaceSize,TotalVirtualMemorySize,TotalVisibleMemorySize FROM Win32_OperatingSystem');
		$mem = $res->ItemIndex(0);
		$memtotal = round($mem->TotalVisibleMemorySize / 1000000,2);
		$memavailable = round($mem->FreePhysicalMemory / 1000000,2);
		$memused = round($memtotal-$memavailable,2);
		// WIN CONNECTIONS
		$connections = shell_exec('netstat -nt | findstr :80 | findstr ESTABLISHED | find /C /V ""'); 
		$totalconnections = shell_exec('netstat -nt | findstr :80 | find /C /V ""'); 
	} else {
		// Linux CPU
		$load = sys_getloadavg();
		$cpuload = $load[0];
		// Linux MEM
		$free = shell_exec('free');
		$free = (string)trim($free);
		$free_arr = explode("\n", $free);
		$mem = explode(" ", $free_arr[1]);
		$mem = array_filter($mem, function($value) { return ($value !== null && $value !== false && $value !== ''); }); // removes nulls from array
		$mem = array_merge($mem); // puts arrays back to [0],[1],[2] after 
		$memtotal = round($mem[1] / 1000000,2);
		$memused = round($mem[2] / 1000000,2);
		$memfree = round($mem[3] / 1000000,2);
		$memshared = round($mem[4] / 1000000,2);
		$memcached = round($mem[5] / 1000000,2);
		$memavailable = round($mem[6] / 1000000,2);
		// Linux Connections
		$connections = `netstat -ntu | grep :80 | grep ESTABLISHED | grep -v LISTEN | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | grep -v 127.0.0.1 | wc -l`; 
		$totalconnections = `netstat -ntu | grep :80 | grep -v LISTEN | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | grep -v 127.0.0.1 | wc -l`; 
	}

	$memusage = round(($memavailable/$memtotal)*100);



	$phpload = round(memory_get_usage() / 1000000,2);

	$diskfree = round(disk_free_space(".") / 1000000000);
	$disktotal = round(disk_total_space(".") / 1000000000);
	$diskused = round($disktotal - $diskfree);

	$diskusage = round($diskused/$disktotal*100);

	if ($memusage > 85 || $cpuload > 85 || $diskusage > 85) {
		$trafficlight = 'red';
	} elseif ($memusage > 50 || $cpuload > 50 || $diskusage > 50) {
		$trafficlight = 'orange';
	} else {
		$trafficlight = '#2F2';
	}

	$end_time = microtime(TRUE);
	$time_taken = $end_time - $start_time;
	$total_time = round($time_taken,4);

	// use servercheck.php?json=1
	if (isset($_GET['json'])) {
		echo '{"ram":'.$memusage.',"cpu":'.$cpuload.',"disk":'.$diskusage.',"connections":'.$totalconnections.'}';
		exit;
	}

Làm cách nào để sử dụng CPU trong PHP?

Để sử dụng CPU, bạn chỉ cần sử dụng hàm getRusage () trong PHP, nó sẽ trả về rất nhiều CPU sử dụng các biến giúp bạn xác định nguồn nào sử dụng quá nhiều tài nguyên CPU.use getrusage() function in PHP It'll return lots of CPU uses variables that help you to determine whats sources uses too much CPU resources.

Làm cách nào để xem sử dụng CPU trên Linux?

Cách kiểm tra sử dụng hoặc sử dụng Linux CPU..
Kiểm tra sử dụng CPU với lệnh hàng đầu.TOP là một công cụ dòng lệnh rất hữu ích giúp bạn giám sát tất cả các quy trình chạy trong thời gian thực.....
Kiểm tra sử dụng CPU với lệnh MPSTAT.....
Kiểm tra sử dụng CPU bằng lệnh SAR.....
Kiểm tra sử dụng CPU với lệnh Iostat.....
Kiểm tra sử dụng CPU bằng lệnh VMSTAT ..