Windows下 PHP怎么获取CPU和内存使用率。。。。急

Windows下 PHP怎么获取CPU和内存使用率。。。。急,第1张

参考如下:

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

<?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)

location = /nginx_status {

stub_status on

access_log off

allow 127.0.0.1

deny all

}

curl http://127.0.0.1/nginx_status

输出样例:

Active connections: 3

server accepts handled requests

17737 17737 49770

Reading: 0 Writing: 1 Waiting: 2

各项解释:

Active connections: 当前 Nginx 正处理的活动腊信连接数.

server accepts handled requests: 总共处理了 17737 个连接, 成功创建 17737 次握手(证明中间没有失败的), 总共处余局手理了 49770 个请求.

Reading: Nginx 读取到客户端的 Header 信息数.

Writing: Nginx 返回给客户端的 Header 信息数.

Waiting: 开启 keep-alive 的情况下, 这个值等于 Active - (Reading + Writing), 意思就是 Nginx 已经处理完正在等候下竖嫌一次请求指令的驻留连接.

一、CPU使用率其实就是运行的程序占用的CPU资源,表示你的机器在某个时间点的运行滚虚清程序的情况。使用率越高,说明机器在这个时间上运行了很多程序,反之较少。使用率的高低与你的CPU强弱有直接关系。而且CPU和内存占用是跟你的脚本挂钩的。 誉岁脚本复杂,占用的就多。

二、步骤

方法一:

【1】首先你需要用压测工具(比如webbench)持续模拟请求, 在压测期间每秒运行ps aux |grep php-fpm一次,把结果记录在文件中。

【2】等压测结束后,可以通大前过分析统计这个文件(结果第三列是cpu占用,第四列是内存占用),然后就可以绘制出php-fpm进程的cpu,内存占用了。

方法二:

如果在某一型号的设备上进行过测试,现在需要规划下一次测试任务需要的CPU资源;或者在同一型号的设备上,对比不同应用类型、同一应用不同版本之间的差异,可以采用简单估算。

1. 计算方法

CPU个数x利用率/吞吐量=CPU个数x利用率/(交易笔数/秒)=CPU个数x利用率x秒/交易笔数=每笔交易消耗的CPU持续了一秒钟。

2. 举例说明

假设某应用在一台8核服务器上运行,当每秒处理100笔交易的情况下,CPU利用率为70%。此时CPU个数x利用率=5.6。

每笔交易消耗一秒钟CPU的个数=5.6/100=0.056。

假设下次测试需要测试吞吐量为每秒200笔交易,大约要求CPU利用率在50%左右。则需要给测试服务器大约的CPU个数为:0.056x200/0.5=22.4。至于这个22.4C的服务器能不能达到每秒200笔交易的能力,是另一回事。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12465751.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存