php 查看cpu占用率_php获取CPU使用情况的代码

在php中,可以使用getrusage()获取CPU的使用情况,该方法仅适用于linux系统。

例子:

//获取cpu使用情况

print_r(getrusage());

/* 输出

Array

(

[ru_oublock] => 0

[ru_inblock] => 0

[ru_msgsnd] => 2

[ru_msgrcv] => 3

[ru_maxrss] => 12692

[ru_ixrss] => 764

[ru_idrss] => 3864

[ru_minflt] => 94

[ru_majflt] => 0

[ru_nsignals] => 1

[ru_nvcsw] => 67

[ru_nivcsw] => 4

[ru_nswap] => 0

[ru_utime.tv_usec] => 0

[ru_utime.tv_sec] => 0

[ru_stime.tv_usec] => 6269

[ru_stime.tv_sec] => 0

)

*/

解释:

ru_oublock: 块输出操作

ru_inblock: 块输入操作

ru_msgsnd: 发送的message

ru_msgrcv: 收到的message

ru_maxrss: 最大驻留集大小

ru_ixrss: 全部共享内存大小

ru_idrss:全部非共享内存大小

ru_minflt: 页回收

ru_majflt: 页失效

ru_nsignals: 收到的信号

ru_nvcsw: 主动上下文切换

ru_nivcsw: 被动上下文切换

ru_nswap: 交换区

ru_utime.tv_usec: 用户态时间 (microseconds)

ru_utime.tv_sec: 用户态时间(seconds)

ru_stime.tv_usec: 系统内核时间 (microseconds)

ru_stime.tv_sec: 系统内核时间?(seconds)

有时需要查看脚本消耗了多少CPU,需要看看“用户态的时间”和“系统内核时间”的值。

秒和微秒部分是分别提供的,可以把微秒值除以100万,并把它添加到秒的值后,可以得到有小数部分的秒数。

例子:

// sleep for 3 seconds (non-busy)

sleep(3);

$data = getrusage();

echo “User time: “.

($data['ru_utime.tv_sec'] +

$data['ru_utime.tv_usec'] / 1000000);

echo “System time: “.

($data['ru_stime.tv_sec'] +

$data['ru_stime.tv_usec'] / 1000000);

/* 输出

User time: 0.011552

System time: 0

*/

sleep是不占用系统时间的,例子:

// loop 10 million times (busy)

for($i=0;$i<10000000;$i++) {

}

$data = getrusage();

echo “User time: “.

($data['ru_utime.tv_sec'] +

$data['ru_utime.tv_usec'] / 1000000);

echo “System time: “.

($data['ru_stime.tv_sec'] +

$data['ru_stime.tv_usec'] / 1000000);

/* 输出

User time: 1.424592

System time: 0.004204

*/

以上代码的运行,大约消耗了14秒的CPU时间,几乎所有的都是用户的时间,因为没有系统调用。

系统时间是CPU花费在系统调用上的上执行内核指令的时间。

例子:

$start = microtime(true);

// keep calling microtime for about 3 seconds

while(microtime(true) – $start < 3) {

}

$data = getrusage();

echo “User time: “.

($data['ru_utime.tv_sec'] +

$data['ru_utime.tv_usec'] / 1000000);

echo “System time: “.

($data['ru_stime.tv_sec'] +

$data['ru_stime.tv_usec'] / 1000000);

/* prints

User time: 1.088171

System time: 1.675315

*/

以上示例,展示了更高级别的cpu消耗。

您可能感兴趣的文章:

php的file_get_contents导致cpu飙升问题的解决方法

php获取CPU使用情况的代码

php中使用proc/loadavg监控CPU的平均负载

php记录服务器负载、内存、cpu状态的代码

php页面缓存的例子(减经cpu与mysql负担)

php获取cpu与内存使用情况的代码一例

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

php获取计算机唯一标识信息(cpu,网卡,MAC地址)的代码

PHP-CGI 进程 CPU 100% 与 file_get_contents 函数的关系

php程序随机记录mysql rand()造成CPU 100%的解决方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值