导航:首页 > 编程语言 > php获取cpu使用率

php获取cpu使用率

发布时间:2022-08-12 07:59:36

php如何获得CPU,内存是使用率

<?php
$str = shell_exec('more /proc/stat');
$pattern = "/(cpu[0-9]?)[\s]+([0-9]+)[\s]+([0-9]+)[\s]+([0-9]+)[\s]+([0-9]+)[\s]+([0-9]+)[\s]+([0-9]+)[\s]+([0-9]+)/";
preg_match_all($pattern, $str, $out);
echo "共有".count($out[1])."个CPU,每个CPU利用率如下:<br>";
for($n=0;$n<count($out[1]);$n++)
{
echo $out[1][$n]."=".(100*($out[1][$n]+$out[2][$n]+$out[3][$n])/($out[4][$n]+$out[5][$n]+$out[6][$n]+$out[7][$n]))."%<br>";
}
?>
//////////////////////////////////////////////////////////////////////
<?php
$str = shell_exec('more /proc/meminfo');
$pattern = "/(.+):\s*([0-9]+)/";
preg_match_all($pattern, $str, $out);
echo "物理内存总量:".$out[2][0]."<br>";
echo "已使用的内存:".$out[2][1]."<br>";
echo "-----------------------------------------<br>";
echo "内存使用率:".(100*($out[2][0]-$out[2][1])/$out[2][0])."%<br>";
?>
//////////////////////////////////////////////////////////////////////
<?php
$str = shell_exec('more /proc/net/dev');
$pattern = "/(eth[0-9]+):\s*([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)/";
preg_match_all($pattern, $str, $out);
echo "共有".count($out[1])."个网络接口,每个网络接口利用率如下:<br>";
for($n=0;$n<count($out[1]);$n++)
{
echo $out[1][$n].":收到 ".$out[3][$n]." 个数据包,发送 ".$out[11][$n]." 个数据包<br>";
}
?>

② phpstrom打开以后,cpu使用率几乎达到100%是怎么个情况

CPU处于100%的功率工作,会对硬件造成损坏,工作量越大,对寿命有一定的损害。
这种损害就像一台超载汽车一样,行驶的时间越长,磨损也就越大。
解决方法:
1、打开360安全卫士,点击电脑救援。
2、在搜索框内输入“CPU使用率100%”,点击查找方案。
3、点击第二个方案立即修复。
4、等待片刻OK。

③ 如何使用PHP实时监控linux服务器的cpu,内存,硬盘信息

1,Linux下可以在/proc/cpuinfo中看到每个cpu的详细信息。但是对于双核的cpu,在cpuinfo中会看到两个cpu。常常会让人误以为是两个单核的cpu。
其实应该通过Physical Processor ID来区分单核和双核。而Physical Processor ID可以从cpuinfo或者dmesg中找到. flags 如果有 ht 说明支持超线程技术 判断物理CPU的个数可以查看physical id 的值,相同则为同一个物理CPU

2,查看内存大小:
cat /proc/meminfo |grep MemTotal

3,其他一些可以查看详细linux系统信息的命令和方法:
uname -a # 查看内核/操作系统/CPU信息的linux系统信息命令
head -n 1 /etc/issue # 查看操作系统版本,是数字1不是字母L
cat /proc/cpuinfo # 查看CPU信息的linux系统信息命令
hostname # 查看计算机名的linux系统信息命令
lspci -tv # 列出所有PCI设备
lsusb -tv # 列出所有USB设备的linux系统信息命令
lsmod # 列出加载的内核模块
env # 查看环境变量资源
free -m # 查看内存使用量和交换区使用量
df -h # 查看各分区使用情况
-sh # 查看指定目录的大小
grep MemTotal /proc/meminfo # 查看内存总量
grep MemFree /proc/meminfo # 查看空闲内存量
uptime # 查看系统运行时间、用户数、负载
cat /proc/loadavg # 查看系统负载磁盘和分区
mount | column -t # 查看挂接的分区状态
fdisk -l # 查看所有分区
swapon -s # 查看所有交换分区
hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
dmesg | grep IDE # 查看启动时IDE设备检测状况网络
ifconfig # 查看所有网络接口的属性
iptables -L # 查看防火墙设置
route -n # 查看路由表
netstat -lntp # 查看所有监听端口
netstat -antp # 查看所有已经建立的连接
netstat -s # 查看网络统计信息进程
ps -ef # 查看所有进程
top # 实时显示进程状态用户
w # 查看活动用户
id # 查看指定用户信息
last # 查看用户登录日志
cut -d: -f1 /etc/passwd # 查看系统所有用户
cut -d: -f1 /etc/group # 查看系统所有组
crontab -l # 查看当前用户的计划任务服务
chkconfig –list # 列出所有系统服务
chkconfig –list | grep on # 列出所有启动的系统服务程序
rpm -qa # 查看所有安装的软件包
cat /proc/cpuinfo :查看CPU相关参数的linux系统命令
cat /proc/partitions :查看linux硬盘和分区信息的系统信息命令
cat /proc/meminfo :查看linux系统内存信息的linux系统命令
cat /proc/version :查看版本,类似uname -r
cat /proc/ioports :查看设备io端口
cat /proc/interrupts :查看中断
cat /proc/pci :查看pci设备的信息
cat /proc/swaps :查看所有swap分区的信息

④ 怎么获取多核环境下每个cpu的使用率

方法1: 使用CPU的处理能力基准计算实时CPU占用率
具体描述:
(1) 在RTOS系统启动前, 使用Tick中断测试CPU的处理能力基准 CPUPerformanceBase;
(2) 在系统进入运行后, 使用空闲任务执行与测试CPU处理能力基准完全相同的算法, 得到RTCPUPerformance.
(3) 周期地计算CPU占用率, 并清除RTCPUPerformance的值, 一般每秒钟计算一次:
RealTime CPU Load = 1 - (RTCPUPerformance/CPUPerformanceBase) * 100%
评价:
这个算法只适用于工控, 电信等对不需要使CPU进入掉电保护模式的领域。
方法2: 在Tick中断中对RTOS中的任务进行采样
具体描述:
(1) 系统进入运行后, 每次Tick中断发生时, 采样一下当前正在执行的任务, 如果CPU处于HALT态, 累加haltTimes
(2) 周期性地计算CPU占用率, 一般每秒钟计算一次, 并清除haltTimes:(tickIntFrequance表示Tick中断的发生频率)
RealTime CPU Load = haltTimes / tickIntFrequance
某个任务对CPU占用率的贡献 = 一个周期内该任务被采样到的次数 / tickIntFrequance * 100%
评价:
这个算法适用于对CPU占用率精度要求不高的消息电子产品。
方法3: 精确计算每个任务对CPU占用率的贡献
具体描述:
(1) 除Tick中断外,另开一个比Tick中断频率快若干倍的周期中断(就叫AUXTimer中断吧), 这个中断只对一个计数器执行一次累加。
(2) 在OS每次执行任务切换时读取该计数器的值(AUXTimer), 并保存到TCB中, 比如, 从任务Task1切换到任务Task2, 算法如下:
Task1, 换出动作:
task1的结束运行时间 = AUXTimer的当前值
task1的总运行时间 = task1的总运行时间 + task1的结束运行时间 - task1的开始运行时间
Task2, 换入动作:
task2的开始运行时间 = AUXTimer的当前值
(以上算法中没有考虑数字回绕, 在工程实现时应当考虑, 发生回绕后任务的结束运行时间小于任务的开始运行时间。
(3) 周期性地计算CPU占用率, 一般每秒钟计算一次, 并清除每个任务的总运行时间, 下面的公式中, 一个周期内的总时间等于AUXTimer周期除以Tick周期得到的倍数:
某个任务对CPU占用率的贡献 = 一个周期内该任务的总运行时间 / 一个周期内的总时间
RealTime CPU Load = 所有任务的CPU占用率之和

⑤ 如何获取当前计算机CPU的占用率

内存情况比较简单 MEMORYSTATUSEX mstx; mstx.dwLength = sizeof (mstx); GlobalMemoryStatusEx( &mstx ); int iMemeryUsePercentage = mstx.dwMemoryLoad; int iTotalPhysMB = mstx.ullTotalPhys/1024/1024; int iAvailPhysMB = mstx.ullAvailPhys/1024/1024; int iTotalPageFileMB = mstx.ullTotalPageFile/1024/1024; int iAvailPageFileMB = mstx.ullAvailPageFile/1024/1024; char LogBuff[128]; memset( LogBuff , 0 , 128 ); sprintf( LogBuff , "MemAvailPct=%d%% Phys=%d/%d PageFile=%d/%d" , 100 - iMemeryUsePercentage , iAvailPhysMB , iTotalPhysMB , iAvailPageFileMB , iTotalPageFileMB ); printf("%s\n",LogBuff); 以上程序分别输出可用百分比,可以用物理内存/总物理内存,可用页面文件/总页面文件获取CPU的比较复杂,我这边只有获取单个进程CPU占用的方法,不过可以遍历所有进程分别获取再求和就是整个cpu占用率了。 #include #include typedef long long int64_t; typedef unsigned long long uint64_t; /// 时间转换 static uint64_t file_time_2_utc(const FILETIME* ftime) { LARGE_INTEGER li; li.LowPart = ftime->dwLowDateTime; li.HighPart = ftime->dwHighDateTime; return li.QuadPart; } /// 获得CPU的核数 static int get_processor_number() { SYSTEM_INFO info; GetSystemInfo(&info); return (int)info.dwNumberOfProcessors; } int get_cpu_usage(int pid) { //cpu数量 static int processor_count_ = -1; //上一次的时间 static int64_t last_time_ = 0; static int64_t last_system_time_ = 0; FILETIME now; FILETIME creation_time; FILETIME exit_time; FILETIME kernel_time; FILETIME user_time; int64_t system_time; int64_t time; int64_t system_time_delta; int64_t time_delta; int cpu = -1; if(processor_count_ == -1) { processor_count_ = get_processor_number(); } GetSystemTimeAsFileTime(&now); HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, false, pid); if (!GetProcessTimes(hProcess, &creation_time, &exit_time, &kernel_time, &user_time)) { return -1; } system_time = (file_time_2_utc(&kernel_time) + file_time_2_utc(&user_time)) / processor_count_; time = file_time_2_utc(&now); if ((last_system_time_ == 0) || (last_time_ == 0)) { last_system_time_ = system_time; last_time_ = time; return -1; } system_time_delta = system_time - last_system_time_; time_delta = time - last_time_; if (time_delta == 0) return -1; cpu = (int)((system_time_delta * 100 + time_delta / 2) / time_delta); last_system_time_ = system_time; last_time_ = time; return cpu; } int main() { while(1) { int cpu; // 参数为进程id cpu = get_cpu_usage(5160); printf("CPU使用率: %d%%\n",cpu); Sleep(1000); } return 0; }

java 怎么查看服务器的CPU使用率

1、确定当前系统安装的jdk是1.6版本以上
2、windows系统中有获取cpu使用率的可执行文件exe,只要在java中获取该文件的执行路径,通过Java调用即可。
3、获取操作系统可执行文件目录procCmd
4、调用java的Runtime.getRuntime().exec执行cmd应用程序
5、利用java中sleep来计算睡眠前后cpu的忙碌时间与空闲时间,因为sleep不会释放系统资源
6、根据忙碌时间占总时间的比例来计算cpu使用率!

⑦ php通过 远程(通过ip) 获取服务器cpu使用率,内存使用率等

你可以这样做,在服务器端放个获取CPU使用率,内存使用率的API,然后你就可以在远程获取这个服务器的CPU和内存使用率的情况了

⑧ php 怎么查看系统使用率 比如 cpu memory 的使用情况

<?php
system('mem');
?>

⑨ php的服务器cpu数量怎么获取

<?php
header("Content-type:text/html;charset=utf-8");
error_reporting(E_ALL^E_DEPRECATED);
//linux系统探测
functionsys_linux(){
//CPU
if(false===($str=@file("/proc/cpuinfo")))returnfalse;
$str=implode("",$str);
@preg_match_all("/models+names{0,}:+s{0,}([ws)(@.-]+)([ ]+)/s",$str,$model);
@preg_match_all("/cpus+MHzs{0,}:+s{0,}([d.]+)[ ]+/",$str,$mhz);
@preg_match_all("/caches+sizes{0,}:+s{0,}([d.]+s{0,}[A-Z]+[ ]+)/",$str,$cache);
@preg_match_all("/bogomipss{0,}:+s{0,}([d.]+)[ ]+/",$str,$bogomips);
if(false!==is_array($model[1])){
$res['cpu']['num']=sizeof($model[1]);
$res['cpu']['num_text']=str_replace(array(1,2,4,8,16),array('单','双','四','八','十六'),$res['cpu']['num']).'核';
/*
for($i=0;$i<$res['cpu']['num'];$i++){
$res['cpu']['model'][]=$model[1][$i].'&nbsp;('.$mhz[1][$i].')';
$res['cpu']['mhz'][]=$mhz[1][$i];
$res['cpu']['cache'][]=$cache[1][$i];
$res['cpu']['bogomips'][]=$bogomips[1][$i];
}*/
$x1=($res['cpu']['num']==1)?'':'×'.$res['cpu']['num'];
$mhz[1][0]='|频率:'.$mhz[1][0];
$cache[1][0]='|二级缓存:'.$cache[1][0];
$bogomips[1][0]='|Bogomips:'.$bogomips[1][0];
$res['cpu']['model'][]=$model[1][0].$mhz[1][0].$cache[1][0].$bogomips[1][0].$x1;
if(false!==is_array($res['cpu']['model']))$res['cpu']['model']=implode("<br/>",$res['cpu']['model']);
if(false!==is_array($res['cpu']['mhz']))$res['cpu']['mhz']=implode("<br/>",$res['cpu']['mhz']);
if(false!==is_array($res['cpu']['cache']))$res['cpu']['cache']=implode("<br/>",$res['cpu']['cache']);
if(false!==is_array($res['cpu']['bogomips']))$res['cpu']['bogomips']=implode("<br/>",$res['cpu']['bogomips']);
}
//NETWORK
//UPTIME
if(false===($str=@file("/proc/uptime")))returnfalse;
$str=explode('',implode("",$str));
$str=trim($str[0]);
$min=$str/60;
$hours=$min/60;
$days=floor($hours/24);
$hours=floor($hours-($days*24));
$min=floor($min-($days*60*24)-($hours*60));
if($days!==0)$res['uptime']=$days."天";
if($hours!==0)$res['uptime'].=$hours."小时";
$res['uptime'].=$min."分钟";
//MEMORY
if(false===($str=@file("/proc/meminfo")))returnfalse;
$str=implode("",$str);
preg_match_all("/MemTotals{0,}:+s{0,}([d.]+).+?MemFrees{0,}:+s{0,}([d.]+).+?Cacheds{0,}:+s{0,}([d.]+).+?SwapTotals{0,}:+s{0,}([d.]+).+?SwapFrees{0,}:+s{0,}([d.]+)/s",$str,$buf);
preg_match_all("/Bufferss{0,}:+s{0,}([d.]+)/s",$str,$buffers);
$res['mem_total']=round($buf[1][0]/1024,2);
$res['mem_free']=round($buf[2][0]/1024,2);
$res['mem_buffers']=round($buffers[1][0]/1024,2);
$res['mem_cached']=round($buf[3][0]/1024,2);
$res['mem_used']=$res['mem_total']-$res['mem_free'];
$res['mem_percent']=(floatval($res['mem_total'])!=0)?round($res['mem_used']/$res['mem_total']*100,2):0;
$res['mem_real_used']=$res['mem_total']-$res['mem_free']-$res['mem_cached']-$res['mem_buffers'];//真实内存使用
$res['mem_real_free']=$res['mem_total']-$res['mem_real_used'];//真实空闲
$res['mem_real_percent']=(floatval($res['mem_total'])!=0)?round($res['mem_real_used']/$res['mem_total']*100,2):0;//真实内存使用率
$res['mem_cached_percent']=(floatval($res['mem_cached'])!=0)?round($res['mem_cached']/$res['mem_total']*100,2):0;//Cached内存使用率
$res['swap_total']=round($buf[4][0]/1024,2);
$res['swap_free']=round($buf[5][0]/1024,2);
$res['swap_used']=round($res['swap_total']-$res['swap_free'],2);
$res['swap_percent']=(floatval($res['swap_total'])!=0)?round($res['swap_used']/$res['swap_total']*100,2):0;
//LOADAVG
if(false===($str=@file("/proc/loadavg")))returnfalse;
$str=explode('',implode("",$str));
$str=array_chunk($str,4);
$res['load_avg']=implode('',$str[0]);
return$res;
}

//FreeBSD系统探测
functionsys_freebsd(){
//CPU
if(false===($res['cpu']['num']=get_key("hw.ncpu")))returnfalse;
$res['cpu']['num_text']=str_replace(array(1,2,4,8,16),array('单','双','四','八','十六'),$res['cpu']['num']).'核';
$res['cpu']['model']=get_key("hw.model");
//LOADAVG
if(false===($res['load_avg']=get_key("vm.loadavg")))returnfalse;
//UPTIME
if(false===($buf=get_key("kern.boottime")))returnfalse;
$buf=explode('',$buf);
$sys_ticks=time()-intval($buf[3]);
$min=$sys_ticks/60;
$hours=$min/60;
$days=floor($hours/24);
$hours=floor($hours-($days*24));
$min=floor($min-($days*60*24)-($hours*60));
if($days!==0)$res['uptime']=$days."天";
if($hours!==0)$res['uptime'].=$hours."小时";
$res['uptime'].=$min."分钟";
//MEMORY
if(false===($buf=get_key("hw.physmem")))returnfalse;
$res['mem_total']=round($buf/1024/1024,2);
$str=get_key("vm.vmtotal");
preg_match_all("/ VirtualMemory[:s]*(Total[:s]*([d]+)K[,s]*Active[:s]*([d]+)K) /i",$str,$buff,PREG_SET_ORDER);
preg_match_all("/ RealMemory[:s]*(Total[:s]*([d]+)K[,s]*Active[:s]*([d]+)K) /i",$str,$buf,PREG_SET_ORDER);
$res['mem_real_used']=round($buf[0][2]/1024,2);
$res['mem_cached']=round($buff[0][2]/1024,2);
$res['mem_used']=round($buf[0][1]/1024,2)+$res['mem_cached'];
$res['mem_free']=$res['mem_total']-$res['mem_used'];
$res['mem_percent']=(floatval($res['mem_total'])!=0)?round($res['mem_used']/$res['mem_total']*100,2):0;
$res['mem_real_percent']=(floatval($res['mem_total'])!=0)?round($res['mem_real_used']/$res['mem_total']*100,2):0;
return$res;
}

//取得参数值FreeBSD
functionget_key($keyName){
returndo_command('sysctl',"-n$keyName");
}

//确定执行文件位置FreeBSD
functionfind_command($commandName){
$path=array('/bin','/sbin','/usr/bin','/usr/sbin','/usr/local/bin','/usr/local/sbin');
foreach($pathas$p){
if(@is_executable("$p/$commandName"))return"$p/$commandName";
}
returnfalse;
}


//windows系统探测
functionsys_windows(){
if(PHP_VERSION>=5){
$obj_locator=newCOM("WbemScripting.SWbemLocator");
$wmi=&$obj_locator->ConnectServer();
}else{
returnfalse;
}
//CPU
$cpuinfo=GetWMI(&$wmi,"Win32_Processor",array("Name","L2CacheSize","NumberOfCores"));
$res['cpu']['num']=$cpuinfo[0]['NumberOfCores'];
if(null==$res['cpu']['num']){
$res['cpu']['num']=1;
}
$res['cpu']['num_text']=str_replace(array(1,2,4,8,16),array('单','双','四','八','十六'),$res['cpu']['num']).'核';
/*
for($i=0;$i<$res['cpu']['num'];$i++){

$res['cpu']['model'].=$cpuinfo[0]['Name']."<br/>";

$res['cpu']['cache'].=$cpuinfo[0]['L2CacheSize']."<br/>";

}*/
$cpuinfo[0]['L2CacheSize']='('.$cpuinfo[0]['L2CacheSize'].')';
$x1=($res['cpu']['num']==1)?'':'×'.$res['cpu']['num'];
$res['cpu']['model']=$cpuinfo[0]['Name'].$cpuinfo[0]['L2CacheSize'].$x1;
//SYSINFO
$sysinfo=GetWMI(&$wmi,"Win32_OperatingSystem",array('LastBootUpTime','TotalVisibleMemorySize','FreePhysicalMemory','Caption','CSDVersion','SerialNumber','InstallDate'));
$sysinfo[0]['Caption']=iconv('GBK','UTF-8',$sysinfo[0]['Caption']);
$sysinfo[0]['CSDVersion']=iconv('GBK','UTF-8',$sysinfo[0]['CSDVersion']);
$res['win_n']=$sysinfo[0]['Caption'].''.$sysinfo[0]['CSDVersion']."序列号:{$sysinfo[0]['SerialNumber']}于".date('Y年m月d日H:i:s',strtotime(substr($sysinfo[0]['InstallDate'],0,14)))."安装";
//UPTIME
$res['uptime']=$sysinfo[0]['LastBootUpTime'];
$sys_ticks=time()-strtotime(substr($res['uptime'],0,14));
$min=$sys_ticks/60;
$hours=$min/60;
$days=floor($hours/24);
$hours=floor($hours-($days*24));
$min=floor($min-($days*60*24)-($hours*60));
if($days!==0)$res['uptime']=$days."天";
if($hours!==0)$res['uptime'].=$hours."小时";
$res['uptime'].=$min."分钟";
//MEMORY
$res['mem_total']=round($sysinfo[0]['TotalVisibleMemorySize']/1024,2);
$res['mem_free']=round($sysinfo[0]['FreePhysicalMemory']/1024,2);
$res['mem_used']=$res['mem_total']-$res['mem_free'];//上面两行已经除以1024,这行不用再除了
$res['mem_percent']=round($res['mem_used']/$res['mem_total']*100,2);
//LoadPercentage
$loadinfo=GetWMI(&$wmi,"Win32_Processor",array("LoadPercentage"));
$res['load_avg']=$loadinfo[0]['LoadPercentage'];
return$res;
}
functionGetWMI(&$wmi,$strClass,$strValue=array()){
$arrData=array();
$objWEBM=$wmi->Get($strClass);
$arrProp=$objWEBM->Properties_;
$arrWEBMCol=$objWEBM->Instances_();
foreach($arrWEBMColas$objItem){
@reset($arrProp);
$arrInstance=array();
foreach($arrPropas$propItem){
eval("$value=$objItem->".$propItem->Name.";");
if(empty($strValue)){
$arrInstance[$propItem->Name]=trim($value);
}else{
if(in_array($propItem->Name,$strValue)){
$arrInstance[$propItem->Name]=trim($value);
}
}
}
$arrData[]=$arrInstance;
}
return$arrData;
}

//根据操作系统取得CPU相关信息
switch(PHP_OS){
case"Linux":
$sysReShow=(($sys_info=sys_linux())!==false)?"show":"none";
break;
case"FreeBSD":
$sysReShow=(($sys_info=sys_freebsd())!==false)?"show":"none";
break;
case"WINNT":
$sysReShow=(($sys_info=sys_windows())!==false)?"show":"none";
break;
default:
break;
}
?>

此PHP类,根据操作系统来进行判断。

调用<?phpecho'['.$sys_info['cpu']['num_text'].']'.$sys_info['cpu']['model'];?>
阅读全文

与php获取cpu使用率相关的资料

热点内容
做账为什么要用加密狗 浏览:583
考研群体怎么解压 浏览:156
linux修改命令提示符 浏览:224
圆圈里面k图标是什么app 浏览:59
pdf加空白页 浏览:945
linux服务器如何看网卡状态 浏览:316
解压新奇特视频 浏览:704
图书信息管理系统java 浏览:552
各种直线命令详解 浏览:862
程序员泪奔 浏览:147
素材怎么上传到服务器 浏览:516
android百度离线地图开发 浏览:189
web可视化编程软件 浏览:293
java笔试编程题 浏览:746
win11什么时候可以装安卓 浏览:564
java不写this 浏览:1001
云点播电影网php源码 浏览:97
pythonclass使用方法 浏览:226
移动加密软件去哪下载 浏览:294
php弹出alert 浏览:209