好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>CMS系统>Dedecms
<tfoot draggable='sEl'></tfoot>

php查询cpu信息 php进程cpu占用高 怎么排查

很多站长朋友们都不太清楚php查询cpu信息,今天小编就来给大家整理php查询cpu信息,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 php的服务器cpu数量怎么获取 2、 PHP如何在windows下获取计算机的cpu和内存 3、 Windows下 PHP怎么获取CPU和内存使用率。。。。急 4、 PHP能否获取客户端唯一标识(cpu序列号,mac地址等) php的服务器cpu数量怎么获取

<?php

header("Content-type: text/html; charset=utf-8"); 

error_reporting(E_ALL ^ E_DEPRECATED);

//linux系统探测

function sys_linux() {

    // CPU

    if (false === ($str = @file("/proc/cpuinfo"))) return false;

    $str = implode("", $str);

    @preg_match_all("/model\s+name\s{0,}\:+\s{0,}([\w\s\)\(\@.-]+)([\r\n]+)/s", $str, $model);

    @preg_match_all("/cpu\s+MHz\s{0,}\:+\s{0,}([\d\.]+)[\r\n]+/", $str, $mhz);

    @preg_match_all("/cache\s+size\s{0,}\:+\s{0,}([\d\.]+\s{0,}[A-Z]+[\r\n]+)/", $str, $cache);

    @preg_match_all("/bogomips\s{0,}\:+\s{0,}([\d\.]+)[\r\n]+/", $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"))) return false;

    $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"))) return false;

    $str = implode("", $str);

    preg_match_all("/MemTotal\s{0,}\:+\s{0,}([\d\.]+).+?MemFree\s{0,}\:+\s{0,}([\d\.]+).+?Cached\s{0,}\:+\s{0,}([\d\.]+).+?SwapTotal\s{0,}\:+\s{0,}([\d\.]+).+?SwapFree\s{0,}\:+\s{0,}([\d\.]+)/s", $str, $buf);

      preg_match_all("/Buffers\s{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;

    // LOAD AVG

    if (false === ($str = @file("/proc/loadavg"))) return false;

    $str = explode(' ', implode("", $str));

    $str = array_chunk($str, 4);

    $res['load_avg'] = implode(' ', $str[0]);

    return $res;

}

//FreeBSD系统探测

function sys_freebsd() {

    //CPU

    if (false === ($res['cpu']['num'] = get_key("hw.ncpu"))) return false;

  $res['cpu']['num_text'] = str_replace(array(1,2,4,8,16), array('单','双','四','八','十六'), $res['cpu']['num']).'核';

    $res['cpu']['model'] = get_key("hw.model");

    //LOAD AVG

    if (false === ($res['load_avg'] = get_key("vm.loadavg"))) return false;

    //UPTIME

    if (false === ($buf = get_key("kern.boottime"))) return false;

  $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"))) return false;

  $res['mem_total'] = round($buf/1024/1024, 2);

  $str = get_key("vm.vmtotal");

  preg_match_all("/\nVirtual Memory[\:\s]*\(Total[\:\s]*([\d]+)K[\,\s]*Active[\:\s]*([\d]+)K\)\n/i", $str, $buff, PREG_SET_ORDER);

  preg_match_all("/\nReal Memory[\:\s]*\(Total[\:\s]*([\d]+)K[\,\s]*Active[\:\s]*([\d]+)K\)\n/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

function get_key($keyName) {

  return do_command('sysctl', "-n $keyName");

}

//确定执行文件位置 FreeBSD

function find_command($commandName) {

  $path = array('/bin', '/sbin', '/usr/bin', '/usr/sbin', '/usr/local/bin', '/usr/local/sbin');

    foreach($path as $p) {

        if (@is_executable("$p/$commandName")) return "$p/$commandName";

    }

    return false;

}

//windows系统探测

function sys_windows() {

    if(PHP_VERSION >= 5) {

        $obj_locator = new COM("WbemScripting.SWbemLocator");

        $wmi = $obj_locator->ConnectServer();

    } else {

        return false;

    }

    //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;

}

function GetWMI($wmi, $strClass, $strValue = array()) {

    $arrData = array();

    $objWEBM = $wmi->Get($strClass);

    $arrProp = $objWEBM->Properties_;

    $arrWEBMCol = $objWEBM->Instances_();

    foreach($arrWEBMCol as $objItem) {

        @reset($arrProp);

        $arrInstance = array();

        foreach($arrProp as $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类,根据操作系统来进行判断。

调用<?php echo '['.$sys_info['cpu']['num_text'].'] '.$sys_info['cpu']['model']; ?>

PHP如何在windows下获取计算机的cpu和内存

在cmd下 用批处理语句获取windows的CPU 内存使用情况的语句,找下。

然后php有执行 OS 原生脚本的函数,跟你在CMD下执行一样。

执行完,获取返回的信息即可。

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

参考如下:

获取服务器性能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);

PHP能否获取客户端唯一标识(cpu序列号,mac地址等)

权限足够的情况下,可以输出cpu信息php调用:$a = exec('cat /proc/stat'); php有个执行方式是用``包裹字符串,同样可以在系统上直接执行 同样需要足够的权限。

关于php查询cpu信息的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于php查询cpu信息 php进程cpu占用高 怎么排查的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did168718
更新时间:2023-04-11   阅读:49次

上一篇: 包含phpfread慢的词条

下一篇:图片分享php源码 php图片分享网站管理系统

相关资讯

最新资料更新

  • 1.DEDECMS自动锚文本的设置方法与技巧详解
  • 2.织梦建站访问首页时后面都会添加上index.html该如何去掉
  • 3.dedecms任意页面调用栏目内容标签{dede:field.content/}的方法
  • 4.让dedecms生成html速度快1倍
  • 5.DedeCMS Error Warning!提示信息的修改方法
  • 6.dedecms首页调用随机文章及自动更新功能实例
  • 7.织梦DedeCMSv5.7安装初始化数据体验包失败的解决方法
  • 8.dede织梦文章列表隔行换色的方法
  • 9.dedecms 的cn_substr_utf8字符串截取函数商榷
  • 10.dedecms提示你的用户名不存在的解决方法
  • 11.dedecms5.7商城系统游客可下订单购买的修改方法
  • 12.dede5.7解决senddate比pubdate时间晚的问题
  • 13.dedecms中sql标签调用数据实例分析
  • 14.详解织梦DedeCms的安全问题优化解决办法(安全设置)
  • 15.DEDECMS的20位MD5加密密文解密示例介绍
  • 16.详解织梦DEDECMS模板防止被盗用被下载被偷窥的方法
  • 17.dedecms调用栏目名称与栏目链接地址的方法分析
  • 18.Dede后台验证码不显示解决方法详解(dedecms 5.7)
  • 19.详解织梦模板DEDE首页列表页AJAX无限加载瀑布流修正版
  • 20.详解织梦首页、列表页调用文章body内容的两种方法

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]