Tôi muốn biết việc sử dụng bộ nhớ và CPU trong php, bởi vì tôi đang sử dụng cronejobs đôi khi CPU bị quá tải nên trong trường hợp này tôi không bắt đầu quá trình, tôi chỉ muốn bỏ qua cron này.Làm thế nào tôi có thể nhận được CPU và Memory useage
Trả lời
Tôi nghĩ cách tốt hơn là lấy tải avarage, bởi vì nó không chỉ phụ thuộc vào CPU, mà còn ở tốc độ HDD.
Đây là một doc: http://php.net/manual/en/function.sys-getloadavg.php
Hãy nhìn vào thư viện này http://phpsysinfo.sourceforge.net/
Demo: http://phpsysinfo.sourceforge.net/phpsysinfo/index.php?disp=dynamic
Edit: này được lấy từ bình luận Stephen. Tôi đặt nó ở đây chỉ để nó được tiếp xúc đủ để mọi người đọc.
Chỉ cần lưu ý: thư viện này không quá linh hoạt. Tôi không thể tìm thấy một cách để chỉ trả lại CPU hoặc chỉ ram, nó trả về tất cả mọi thứ, danh sách phần cứng, số liệu thống kê mạng, sử dụng hd, thông tin os, khá nhiều tất cả mọi thứ bạn có thể nghĩ của. Việc này mất khoảng 4 giây để hoàn thành, do đó, có thể không phải là tùy chọn tốt nhất nếu bạn muốn giá trị cập nhật liên tục bằng cách sử dụng ajax hoặc thứ gì đó sắp xếp.
Chỉ cần một lưu ý: thư viện này không phải là quá linh hoạt. Tôi không thể tìm thấy một cách để chỉ trả lại CPU hoặc chỉ ram, nó trả về tất cả mọi thứ, danh sách phần cứng, số liệu thống kê mạng, sử dụng hd, thông tin os, khá nhiều tất cả mọi thứ bạn có thể nghĩ đến. Điều này mất khoảng 4 giây để hoàn thành, do đó, nó có thể không phải là lựa chọn tốt nhất nếu bạn muốn có một giá trị cập nhật liên tục bằng cách sử dụng ajax hoặc một cái gì đó sắp xếp. –
@Stephen Cảm ơn những người đứng đầu Stephen. Tôi đã trích dẫn bình luận của bạn trong câu trả lời của tôi. Chỉ trong trường hợp một số người có thể bỏ lỡ nó. –
thời gian gần đây tôi có một số vấn đề để có được tải CPU và tôi cảm thấy như chia sẻ nó.
Dưới đây là giải pháp phù thủy của tôi giúp tôi ra:
tình hình của tôi:
Tôi đã sử dụng Zend Framework 1.2 để xây dựng ứng dụng giám sát và tôi muốn để có được tải CPU và hiển thị nó trên trang. sau khi làm một số nghiên cứu tôi phát hiện ra tôi có thể sử dụng COM Object và truy vấn hệ điều hành với WMI Win vì vậy tôi đặt những mã để hàm init của tôi:
/* Initialize action controller here */
$this->wmi = new COM('winmgmts:{impersonationLevel=impersonate}//./root/cimv2');
if (!is_object($this->wmi)) {
throw new GetInfoException('This needs access to WMI. Please enable DCOM in php.ini and allow the current user to access the WMI DCOM object.');
}
- Bạn có thể sử dụng nó bất cứ nơi nào bạn muốn, tôi có sử dụng nó trong hàm init beacuse của cấu trúc Zend.
Và tôi đã thêm Hành động và chức năng sử dụng wmi đó và tải CPU bất kỳ lúc nào tôi muốn bằng cách gọi hàm đó.
public function cpuloadAction()
{
echo json_encode($this->getLoad());
exit();
}
private function getLoad() {
// Time?
if (!empty($this->settings['timer']))
$t = new LinfoTimerStart('Load Averages');
$load = array();
foreach ($this->wmi->ExecQuery("SELECT LoadPercentage FROM Win32_Processor") as $cpu) {
$load[] = $cpu->LoadPercentage;
}
//return round(array_sum($load)/count($load), 2) . "%";
return (int)round(array_sum($load)/count($load), 2);
}
- bởi vì tôi những dữ liệu thời gian thực tôi đặt những mã trong một hàm Nếu không, bạn có thể viết nó trong đơn không Object Oriented tập tin PHP.
Hy vọng điều đó sẽ hữu ích.
How to get Memory and CPU usage in PHP
Ví dụ đơn giản hoàn hảo.
- Memory trong procentage% ($ mem [2]/1000 cho bộ nhớ được sử dụng trong MB)
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;
}
- CPU trong procentage%
function get_server_cpu_usage(){
$load = sys_getloadavg();
return $load[0];
}
Nó sẽ rất tuyệt vời nếu bạn xây dựng câu trả lời của bạn với một ví dụ quá. – Sanoob
- 1. Làm thế nào để có được nhiệt độ CPU?
- 2. Làm thế nào tôi có thể lập trình nhận được bộ nhớ, luồng và ứng dụng CPU từ bên trong ứng dụng Java của tôi?
- 3. Làm thế nào tôi có thể nhận được giá trị nguồn và biến trong tracebacks ruby?
- 4. Làm thế nào tôi có thể nhận được chiều rộng và chiều cao
- 5. Làm thế nào tôi có thể nhận được mẫu định dạng Ngày và Giờ mặc định
- 6. làm thế nào tôi có thể nhận được văn bản trước và sau "-" (dấu gạch ngang)
- 7. Làm thế nào tôi có thể nhận được trực quan có thể nhìn thấy của UITableView?
- 8. Làm cách nào tôi có thể nhận được ủy quyền?
- 9. Làm thế nào tôi có thể nhận được 7za.exe để chạy qua Powershell Remoting?
- 10. Làm thế nào tôi có thể tìm thấy plugin VIM nào có lỗi vì quá tải CPU của tôi
- 11. Làm thế nào tôi có thể nhận cookie từ HttpClientHandler.CookieContainer
- 12. Làm thế nào tôi có thể nhận được Emacs để thụt lề // nhận xét của tôi với mã của tôi?
- 13. Làm thế nào tôi có thể nhấn mạnh CPU của điện thoại theo cách lập trình?
- 14. Làm thế nào tôi có thể nhận được chiều rộng của div, được viết bằng CSS
- 15. Làm thế nào tôi có thể truy cập Bộ đếm CPU Intel
- 16. Làm thế nào tôi có thể nhận được MongoDB làm việc với php 5.3.5 & wamp?
- 17. Làm thế nào để có được nhiệt độ CPU và tốc độ quạt trên OS X?
- 18. Làm thế nào tôi có thể nhận được các phông chữ sẵn có trong WPF
- 19. webapp2 + jinja2: Làm thế nào tôi có thể nhận được uri_for() làm việc trong jinja2-xem
- 20. Làm thế nào tôi có thể lấy thông tin cpu trong .net?
- 21. Làm thế nào tôi có thể nhận được PHP kỳ diệu làm việc liên tục __FILE__ với Eclipse và PDT
- 22. Làm thế nào tôi có thể nhận được pg_dump để xác thực đúng
- 23. Làm thế nào tôi có thể nhận được nhiều màu hơn trong emacs vc-diff?
- 24. Làm thế nào tôi có thể nhận được các bit từ một chuỗi trong C#?
- 25. Python, làm thế nào tôi có thể nhận được khung hình gif
- 26. Cho một URL, làm thế nào tôi có thể nhận được chỉ là tên miền?
- 27. Làm thế nào tôi có thể nhận được một accumArray nghiêm ngặt?
- 28. Làm thế nào tôi có thể nhận được emacs để chèn niềng răng tự động
- 29. android: làm thế nào tôi có thể nhận được kích thước của mảng chuỗi?
- 30. Trong JQuery làm thế nào tôi có thể nhận được ô bảng liền kề?
Có ba giá trị đó là gì? Tải trung bình \t 0,48 0,76 0,43 –
Số đầu tiên được tính trong phút cuối, giây được tính trong 5 phút cuối cùng và số cuối được tính trong 15 phút qua. Những con số này xác định bao nhiêu chiếm một lõi. Vì vậy, nếu bạn có lõi đơn và con số này dưới 1.0 thì hệ thống của bạn hoàn toàn chịu trách nhiệm. Tất cả thông tin là ở đây: http://en.wikipedia.org/wiki/Load_(computing) – neworld