1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > php 获取服务器进程数 PHP 获取linux服务器性能CPU 内存 硬盘 进程等使用率...

php 获取服务器进程数 PHP 获取linux服务器性能CPU 内存 硬盘 进程等使用率...

时间:2022-11-30 05:48:29

相关推荐

php 获取服务器进程数 PHP 获取linux服务器性能CPU 内存 硬盘 进程等使用率...

数据库配置文件: conn.php

define("MONITORED_IP", "172.16.0.191"); //被监控的服务器IP地址 也就是本机地址

define("DB_SERVER", "172.16.7.2"); //存放数据的服务器IP地址

define("DB_USER", "root");

define("DB_PWD","111111");

define("DB_NMAE","performance");

class MyConnect{

public function connect($db_server,$db_user,$db_pwd,$db_name){

$conn = mysql_connect($db_server,$db_user,$db_pwd);

if (!$conn){

die('连接数据库失败: ' . mysql_error());

}

$flag = mysql_select_db($db_name,$conn);

if(!$flag){

echo "

数据库连接出错!

";exit();

}else{

mysql_query("SET NAMES UTF8");

}

}

}

?>

获取服务器性能CPU、内存、硬盘等使用率 get_used_status.php

include("conn.php");

$obj_MyConnect = new MyConnect();

$obj_MyConnect -> connect(DB_SERVER,DB_USER,DB_PWD,DB_NMAE);

function get_used_status(){

$fp = popen('top -b -n 2 | grep -E "^(Cpu|Mem|Tasks)"',"r");//获取某一时刻系统cpu和内存使用情况

$rs = "";

while(!feof($fp)){

$rs .= fread($fp,1024);

}

pclose($fp);

$sys_info = explode("\n",$rs);

$tast_info = explode(",",$sys_info[3]);//进程 数组

$cpu_info = explode(",",$sys_info[4]); //CPU占有量 数组

$mem_info = explode(",",$sys_info[5]); //内存占有量 数组

//正在运行的进程数

$tast_running = trim(trim($tast_info[1],'running'));

//CPU占有量

$cpu_usage = trim(trim($cpu_info[0],'Cpu(s): '),'%us'); //百分比

//内存占有量

$mem_total = trim(trim($mem_info[0],'Mem: '),'k total');

$mem_used = trim($mem_info[1],'k used');

$mem_usage = round(100*intval($mem_used)/intval($mem_total),2); //百分比

$fp = popen('df -lh | grep -E "^(/)"',"r");

$rs = fread($fp,1024);

pclose($fp);

$rs = preg_replace("/\s{2,}/",' ',$rs); //把多个空格换成 “_”

$hd = explode(" ",$rs);

$hd_avail = trim($hd[3],'G'); //磁盘可用空间大小 单位G

$hd_usage = trim($hd[4],'%'); //挂载点 百分比

//print_r($hd);

//检测时间

$fp = popen("date +"%Y-%m-%d %H:%M"","r");

$rs = fread($fp,1024);

pclose($fp);

$detection_time = trim($rs);

return array('cpu_usage'=>$cpu_usage,'mem_usage'=>$mem_usage,'hd_avail'=>$hd_avail,'hd_usage'=>$hd_usage,'tast_running'=>$tast_running,'detection_time'=>$detection_time);

}

//echo date("Y-m-d H:i:s",time())."

";

$status=get_used_status();

$sql = "insert into performance(ip,cpu_usage,mem_usage,hd_avail,hd_usage,tast_running,detection_time) ";

$sql .= " value('".MONITORED_IP."','".$status['cpu_usage']."','".$status['mem_usage']."','".$status['hd_avail']."','".$status['hd_usage']."','".$status['tast_running']."','".$status['detection_time']."')";

$query = mysql_query($sql) or die("SQL 语句执行失败!");

unset($status);

//echo date("Y-m-d H:i:s",time())."

";

?>

include("conn.php");

$obj_MyConnect = new MyConnect();

$obj_MyConnect -> connect(DB_SERVER,DB_USER,DB_PWD,DB_NMAE);

function get_used_status(){

$fp = popen('top -b -n 2 | grep -E "^(Cpu|Mem|Tasks)"',"r");//获取某一时刻系统cpu和内存使用情况

$rs = "";

while(!feof($fp)){

$rs .= fread($fp,1024);

}

pclose($fp);

$sys_info = explode("\n",$rs);

$tast_info = explode(",",$sys_info[3]);//进程 数组

$cpu_info = explode(",",$sys_info[4]); //CPU占有量 数组

$mem_info = explode(",",$sys_info[5]); //内存占有量 数组

//正在运行的进程数

$tast_running = trim(trim($tast_info[1],'running'));

//CPU占有量

$cpu_usage = trim(trim($cpu_info[0],'Cpu(s): '),'%us'); //百分比

//内存占有量

$mem_total = trim(trim($mem_info[0],'Mem: '),'k total');

$mem_used = trim($mem_info[1],'k used');

$mem_usage = round(100*intval($mem_used)/intval($mem_total),2); //百分比

$fp = popen('df -lh | grep -E "^(/)"',"r");

$rs = fread($fp,1024);

pclose($fp);

$rs = preg_replace("/\s{2,}/",' ',$rs); //把多个空格换成 “_”

$hd = explode(" ",$rs);

$hd_avail = trim($hd[3],'G'); //磁盘可用空间大小 单位G

$hd_usage = trim($hd[4],'%'); //挂载点 百分比

//print_r($hd);

//检测时间

$fp = popen("date +"%Y-%m-%d %H:%M"","r");

$rs = fread($fp,1024);

pclose($fp);

$detection_time = trim($rs);

return array('cpu_usage'=>$cpu_usage,'mem_usage'=>$mem_usage,'hd_avail'=>$hd_avail,'hd_usage'=>$hd_usage,'tast_running'=>$tast_running,'detection_time'=>$detection_time);

}

//echo date("Y-m-d H:i:s",time())."

";

$status=get_used_status();

$sql = "insert into performance(ip,cpu_usage,mem_usage,hd_avail,hd_usage,tast_running,detection_time) ";

$sql .= " value('".MONITORED_IP."','".$status['cpu_usage']."','".$status['mem_usage']."','".$status['hd_avail']."','".$status['hd_usage']."','".$status['tast_running']."','".$status['detection_time']."')";

$query = mysql_query($sql) or die("SQL 语句执行失败!");

unset($status);

//echo date("Y-m-d H:i:s",time())."

";

?>

DSAPI 获取实时统计信息CPU/内存/硬盘/网络

有时,我们需要获取当前计算机中CPU.内存.硬盘.网络等实时信息,如下图:\ 要实现上述几项信息的获取,通常需要使用Timer控件来间隔获取,以便刷新最新的数据. 本示例中,放一个Timer控件,放一 ...

linux服务器性能——CPU、内存、流量、磁盘使用率的监控

/u012859748/article/details/72731080

php获取linux服务器CPU、内存、硬盘使用率的实现代码

define("MONITORED_IP", "172.16.0.191"); //被监控的服务器IP地址 也就是本机地址 define("DB_SE ...

Windows 性能监视器的基本指标(CPU,内存,硬盘参数)

转载:/kb/article.php?id=7045 Windows 性能监视器的基本指标(CPU,内存,硬盘参数) 作为一个系统工程师来说,要看懂监控的 ...

Windows 性能监视器的基本指标说明(CPU,内存,硬盘参数)

[转]Windows 性能监视器的基本指标说明(CPU,内存,硬盘参数) 作为一个系统工程师来说,要看懂监控的数据至关重要,关系着优化和分析出现的问题.我是在运维过程中要用到的.因此,今天给出Wind ...

linux 服务器性能监控(一)

这篇文章主要介绍一些常用的linux服务器性能监控命令,包括命令的常用参数.指标的含义以及一些交互操作. 几个问题 命令本身并不复杂,关键是你对操作系统基础知识的掌握和理解,先来看看下面几个问题: C ...

Linux服务器性能评估与优化(一)

网络内容总结(感谢原创) 1.前言简介 一.影响Linux服务器性能的因素 1.操作系统级性能调优是找出系统瓶颈并消除这些瓶颈的过程. 很多系统管理员认为性能调优仅仅是调整一下 ...

[转载]Linux服务器性能评估与优化

转载自:Linux服务器性能评估与优化 一.影响Linux服务器性能的因素 1.操作系统级 CPU 内存 磁盘I/O带宽 网络I/O带宽 2.程序应用级 二.系统性能评估标准 影响性 ...

20个Linux服务器性能调优技巧

Linux是一种开源操作系统,它支持各种硬件平台,Linux服务器全球知名,它和Windows之间最主要的差异在于,Linux服务器默认情况下一般不提供GUI(图形用户界面),而是命令行界面,它的主要 ...

随机推荐

salesforce 零基础学习(十六)Validation Rules & Date/time

上一篇介绍的内容为Formula,其中的Date/time部分未指出,此篇主要介绍Date/time部分以及Validation rules. 本篇参考PDF: Date/time:https://r ...

C语言输入输出整数

scanf("%llu", &x); printf("%llu\n", x); scanf("%u", &x); print ...

HDU 3549 Flow Problem(最大流)

HDU 3549 Flow Problem(最大流) Time Limit: 5000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/ ...

css 中的若干心得

css布局中定位机制主要是普通的流,也就是说按照HTML文本的顺序在窗口上从上到下.从左到右去显示,遇见块级元素就换行显示.为了更进一步的控制,我可以使用相对定位.绝对定位.固定定位以及浮动. 相对定 ...

poj 3280 Cheapest Palindrome ---(DP 回文串)

题目链接:/problem?id=3280 思路: dp[i][j] :=第i个字符到第j个字符之间形成回文串的最小费用. dp[i][j]=min(dp[i+1][j]+ ...

线程的同步控制(Synchronization)

临界区(Critical Sections) 摘要 临界区(Critical Section) 用来实现"排他性占有".适合范围时单一进程的各线程之间. 特点 一个局部对象,不是一 ...

【练习】Python第三次

对函数,内置函数的用法,递归,程序运行顺序的考试 1.列举布尔值为 False 的值 0 False '' [] () {} None 经常使用的场景是 if object 如果object有值就执行 ...

Spark源码剖析 - SparkContext的初始化(七)_TaskScheduler的启动

7. TaskScheduler的启动 第五节介绍了TaskScheduler的创建,要想TaskScheduler发挥作用,必须要启动它,代码: TaskScheduler在启动的时候,实际调用了b ...

Linux系列教程(四)——Linux常用命令之文件和目录处理命令

这个系列教程的前面我们讲解了如何安装Linux系统,以及学习Linux系统的一些方法.那么从这篇博客开始,我们就正式进入Linux命令的学习.学习命令,首先要跟大家纠正的一点就是,我们不需要记住每一条 ...

Vue全家桶介绍

一直不清楚全家桶是什么玩意,上网搜了一下,才知道就是平时项目中使用的几个依赖包,下面分享一下 Vue 全家桶介绍 Vue有著名的全家桶系列,包含了vue-router(http://router.vu ...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。