2014-04-08 16 views
8

Tôi muốn sử dụng máy chủ CPU và RAM bằng cách sử dụng php. Tập lệnh sẽ hoạt động trên windows và linux.Làm thế nào để bạn sử dụng CPU máy chủ và sử dụng RAM với php?

Tôi làm như thế nào?

+0

[ 'shell_exec'] (http://www.php.net/manual/en/function.shell-exec.php) nên làm điều đó hoặc thử 'var_dump ($ _ MÁY CHỦ) 'cho mi thông tin số thập phân –

+0

là câu hỏi của bạn được trả lời ở đây? http://stackoverflow.com/questions/4705759/how-to-get-cpu-usage-and-ram-usage-without-exec –

+0

có lệnh terminal, 'nice top' (hoặc chỉ' top') mà kết quả đầu ra sử dụng CPU và RAM của bạn. Kết hợp với shell_exec() và một phân tích cú pháp nhỏ của đầu ra sẽ nhận được những gì bạn đang theo sau. – roycable

Trả lời

14

Chức năng đầu tiên sẽ trả lại Cách sử dụng máy chủ Memory:

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; 
} 

Chức năng này sẽ trở lại với Cách sử dụng máy chủ CPU:

function get_server_cpu_usage(){ 

    $load = sys_getloadavg(); 
    return $load[0]; 

} 
+3

Tôi nghi ngờ cả hai điều này sẽ chỉ hoạt động trong các hệ điều hành giống như * nix. – halfer

+1

'sys_getloadavg()' trả về 'tải' mà không nhất thiết phải sử dụng CPU. Nó bao gồm tốc độ đĩa, vv – kouton

+1

Và làm cách nào để sử dụng cpu hiện tại (không phải là avg)? – zypro

4

Tôi muốn khuyên sử dụng PHP SNMP

http://www.php.net/manual/en/book.snmp.php

Điều này sẽ cung cấp giải pháp thống nhất cho cả Windows và Linu x mà không cần phải rối tung xung quanh với lệnh exec.

Bạn sẽ tất nhiên cần phải cài đặt một daemon của Windows SNMP/dịch vụ trên cả hai máy chủ Windows và Linux

Đối với Linux, chỉ cần sử dụng Net-SNMP ví dụ CentOS

sudo yum install net-snmp 
sudo service snmpd start 
sudo chkconfig snmpd on 

Net-SNMP cũng là sẵn cho Windows:

http://www.net-snmp.org/

Các vấn đề liên quan