2012-03-23 34 views
5

Tôi đang sử dụng PHP để đọc mức sử dụng CPU hiện tại. Tôi đang trên vServer, vì vậy shell_exec được kích hoạt.Debian: Tìm hiểu cách sử dụng CPU bằng cách sử dụng bash

Tôi đã thử grep trên ps, nhưng nó không hoạt động. Làm thế nào tôi có thể đọc sử dụng% CPU hiện tại bằng cách sử dụng bash?

+0

sẽ tải trung bình từ mức độ bash đủ? 'cat/proc/loadavg' cũng có thể, http://www.cyberciti.biz/tips/how-do-i-find-out-linux-cpu-utilization.html (sysstat) có thể là thứ bạn có thể muốn sử dụng/cài đặt, dựng lên. – TryTryAgain

Trả lời

5

Cách đơn giản nhất chỉ đơn giản là sử dụng sys_getloadavg

Nếu bạn muốn trực tiếp yêu cầu hệ điều hành, sử dụng thời gian hoạt động

$uptimeString = `uptime`; 

Hoặc bất kỳ existing answers thế nào để thực hiện chính xác những điều tương tự trong bash và chỉ quấn trong backticks.

+0

Tôi đã nhìn thấy lệnh getLoadAvg trước đó, nhưng nó không giống như việc sử dụng CPU (%). Cả hai thời gian hoạt động và getloadavg cũng có thể thú vị. Nhưng làm thế nào tôi có thể tìm hiểu cách sử dụng CPU? – bytecode77

+0

bạn đã đọc câu trả lời hiện tại chưa - ví dụ: câu trả lời đầu tiên trong câu hỏi tôi đã liên kết tới? – AD7six

+0

Ah, chỉ cần nhìn thấy nó. Cảm ơn! – bytecode77

3

Sau khi xem xét kỹ hơn ở tất cả các giải pháp, tôi đã đưa ra với mã này:

<?php 
    exec('ps -aux', $processes); 
    foreach($processes as $process) 
    { 
     $cols = split(' ', ereg_replace(' +', ' ', $process)); 
     if (strpos($cols[2], '.') > -1) 
     { 
      $cpuUsage += floatval($cols[2]); 
     } 
    } 
    print($cpuUsage); 
?> 

Nó kêu gọi ps -aux và tóm tắt CPU%.

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