php 获得linux 机器的性能

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

function get_cpu_usg()
{
     $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);
     $total=0;
     for($n=0;$n<count($out[1]);$n++)
     {
                $usg=(100*($out[1][$n]+$out[2][$n]+$out[3][$n])/($out[4][$n]+$out[5][$n]+$out[6][$n]+$out[7][$n]));
               $total+=$usg;
      }
     return $total;
}

function get_mem_usg()
{
     $str = shell_exec('more /proc/meminfo');
     $pattern = "/(.+):\s*([0-9]+)/";
     preg_match_all($pattern, $str, $out);
     $memusg= (100*($out[2][0]-$out[2][1])/$out[2][0]) ;
     return $memusg;

}

输出形式如下

共有11个CPU,每个CPU利用率如下:

cpu=0.46448573378952%

cpu0=0.31392223749401%

cpu1=0.53497469529473%

cpu2=0.48665815912626%

cpu3=0.44933676279833%

cpu4=0.39351618273537%

cpu5=0.25942202031553%

cpu6=0.72395782907821%

cpu7=0.15144390649732%

cpu8=0.10644291691583%

cpu9=0.12204804936289%

物理内存总量:32776832

已使用的内存:240852

-----------------------------------------

内存使用率:99.265176085352%

共有4个网络接口,每个网络接口利用率如下:

eth0:收到 307077767 个数据包,发送 303024103 个数据包

eth1:收到 240252949 个数据包,发送 119448221 个数据包

eth2:收到 0 个数据包,发送 0 个数据包

eth3:收到 0 个数据包,发送 0 个数据包

时间: 2024-11-05 23:25:11

php 获得linux 机器的性能的相关文章

如何正确查看Linux机器内存使用情况

如何正确查看Linux机器内存使用情况 背景 ??只要工作上涉及到Linux机器,基本上都会有这样一个需求,查看内存使用情况,但是怎么看才正确呢?之前使用的是top命令,一直存在一个误区. 为什么top命令看内存会有误区? ??top是个很好用的系统分析工具,可以实时查看进程,cpu使用率,内存使用率等情况,有点像windows下的任务管理器.我以前一直以为top看到的就是真正的内存使用情况,后来baidugoogle好久,才发现自己图样.= =|| 首先看下top命令后展示出来的内存使用情况,

GNU Linux高并发性能优化方案

/*********************************************************** * Author : Samson * Date : 07/14/2015 * Test platform: * gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2 * GNU bash, 4.3.11(1)-release (x86_64-pc-linux-gnu) * Nginx version: * Nginx 1.6.2 * Nginx 1.8.0

linux查看CPU性能及工作状态的指令

衡量CPU性能的指标: 1,用户使用CPU的情况:CPU运行常规用户进程CPU运行niced processCPU运行实时进程 2,系统使用CPU情况:用于I/O管理:中断和驱动用于内存管理:页面交换用户进程管理:进程开始和上下文切换 3,WIO:用于进程等待磁盘I/O而使CPU处于空闲状态的比率. 4,CPU的空闲率,除了上面的WIO以外的空闲时间 5,CPU用于上下文交换的比率 6,nice 7,real-time 8,运行进程队列的长度 9,平均负载 Linux中常用的监控CPU整体性能的

linux查看CPU性能及工作状态的指令mpstat,vmstat,iostat,sar,top

衡量CPU性能的指标: 1,用户使用CPU的情况:CPU运行常规用户进程CPU运行niced processCPU运行实时进程 2,系统使用CPU情况:用于I/O管理:中断和驱动用于内存管理:页面交换用户进程管理:进程开始和上下文切换 3,WIO:用于进程等待磁盘I/O而使CPU处于空闲状态的比率. 4,CPU的空闲率,除了上面的WIO以外的空闲时间 5,CPU用于上下文交换的比率 6,nice 7,real-time 8,运行进程队列的长度 9,平均负载 Linux中常用的监控CPU整体性能的

通过/proc/sys/net/ipv4/优化Linux下网络性能

通过/proc/sys/net/ipv4/优化Linux下网络性能 /proc/sys/net/ipv4/优化1)      /proc/sys/net/ipv4/ip_forward该文件表示是否打开IP转发.0,禁止1,转发 缺省设置:02)      /proc/sys/net/ipv4/ip_default_ttl   该文件表示一个数据报的生存周期(Time To Live),即最多经过多少路由器.   缺省设置:64 增加该值会降低系统性能. 3)      /proc/sys/ne

4个常用Linux VPS/服务器性能测评的脚本工具整理

我们网友在看到或者买到一台Linux VPS主机之后会做什么?肯定是要看看新买的这台机器是不是正如我们看到商家宣传或者网友说的那么好,比如在性能.速度.评分.IO读写上面的数据是否如何我们使用需要.当然,任何的软件测试或者别人的测试都不代表自己使用的效果,我们还是需要经受自己使用才能看到这个产品是否符合我们的用途. 4个常用Linux VPS/服务器性能测评的脚本工具整理4个常用Linux VPS/服务器性能测评的脚本工具整理 每一个网友都有自己的评判产品的标准或者工具,一般我们使用的工具都来自

性能测试 基于Python结合InfluxDB及Grafana图表实时采集Linux多主机性能数据

基于Python结合InfluxDB及Grafana图表实时采集Linux多主机性能数据   by:授客 QQ:1033553122 实现功能 测试环境 环境搭建 使用前提 使用方法 运行程序 效果展示 实现功能 无需在被监控主机上安装代理,一键对Linux远程服务器不同主机执行性能监控.性能数据采集命令,并实时展示 支持跨堡垒机收集实时性能数据(注:定制化开发,非通用) 支持docker容器(因为程序实现是从docker容器内部获取性能数据,所以目前仅支持 CPU,内存,I/O) 使用前提 可

Linux机器24项安全合规设置

工作的一些内容,这是中国移动集团当前linux机器安全合规标准,找了点时间将其归类,并查了一些资料,每项配置是什么意思,不仅要知其然,还要知其所以然.好记性不如烂笔头. 1.  检查FTP配置-限制用户FTP登录 控制FTP进程缺省访问权限,当通过FTP服务创建新文件或目录时应屏蔽掉新文件或目录不应有的访问允许权限. 操作: (1)vsftp: # vi /etc/vsftp/vsftpd.conf 手动将userlist_enable改为yes //限制/etc/vsftpd/user_lis

linux下的性能查询命令

(1)查看各个CPU核的使用情况 sudo top -d 1 进入之后,按1,会出现下面的CPU使用情况,其中us列反映了各个CPU核的使用情况,百分比大说明该核在进行紧张的任务. (2)查看哪个进程在哪个CPU核上运行 sudo top -d 1 进入之后,依次按f.j和空格,会出现如下(其中P列指示的是该进程最近使用的CPU核,如进程mencoder的P列为7,则表示mencoder最近在核7上运行,对于多线程甚至单线程的进程,在不同时刻会使用不同的CPU Core): (3)vmstat查