运行php程序cpu 100%,php 应用 cpu 100% 调试方法

本文介绍了如何定位和解决CPU占用过高的问题,包括PHP进程分析、使用GDB调试、strace工具检查Java程序以及VxWorks操作系统的调试手段。重点关注了HashMap在多线程环境下的死循环问题,并提供了相应的调试步骤和代码行分析。
摘要由CSDN通过智能技术生成

找出进程占用cpu高的原因。

进程占用cpu高,一般是由于进程长时间占用cpu,又没有主动释放占用。如果想主动释放cpu,可以调用sleep。在写程序的时候,尤其要注意while 等循环的地方。

找出php进程在执行那段代码

$sudo gdb -p 10434

(gdb) print (char *)executor_globals.active_op_array->filename

$13 = 0x2924118 "/home/admin/gearman_manager/pecl-manager.php"

(gdb) print executor_globals->current_execute_data->opline->lineno

$14 = 55

(gdb) c

Continuing.

^C

Program received signal SIGINT, Interrupt.

0x00000031d32306d0 in sigprocmask () from /lib64/libc.so.6

(gdb) print executor_globals->current_execute_data->opline->lineno

$15 = 71

(gdb) c

Continuing.

^C

Program received signal SIGINT, Interrupt.

0x00000000006250e1 in zend_hash_find ()

(gdb) print executor_globals->current_execute_data->opline->lineno

$16 = 53

如果对上面的命令有疑问,可以查看 当cpu飙升时,找出php中可能有问题的代码行

根据上面的信息,我们可以知道,cpu高时,正在执行/home/admin/gearman_manager/pecl-manager.php文件。并且正在执行53和71行附近的代码。

还可以通过strace进行调试

java 程序消耗 cpu 100% 查找方法

问题原因:由于HashMap是非线程安全的,在多线程访问时,造成死循环. 查找问题方法: 1. top 找出最耗费cpu的进程号 如:27377 2. top -p 27377 -H 找出此进程下的所 ...

java程序CPU 100%调试

前置 PID为进程id,NID为线程ID 步骤一.找到最耗CPU的进程 top 然后键入P,按CPU占用率排序(M是按内存排序) 步骤二.找到进程中最耗CPU的线程 top -Hp PID 步骤三.将 ...

Linux:CPU使用率100%排查方法

Linux作为一个多任务操作系统,将每个CPU的时间划分为很短的时间片,再通过调度器轮流分配给各个任务使用,因此造成多任务同时运行的错觉. CPU使用率 Linux作为一个多任务操作系统,将每个CPU ...

VxWorks操作系统shell命令与调试方法总结

VxWorks下的调试手段 主要介绍在Tornado集成开发环境下的调试方法,和利用支撑定位问题的步骤.思路. 1         Tornado的调试工具 嵌入式实时操作系统VxWorks和集成开发 ...

【转】STM32: 一种计算CPU使用率的方法及其实现原理

1  前言出于性能方面的考虑,有的时候,我们希望知道CPU的使用率为多少,进而判断此CPU的负载情况和对于当前运行环境是否足够“胜任”.本文将介绍一种计算CPU占有率的方法以及其实现原理. 2  移植 ...

转:Linux环境下段错误的产生原因及调试方法小结

源地址:http://www.cnblogs.com/panfeng412/archive/2011/11/06/2237857.html 补充:http://baike.baidu.com/link ...

Linux环境下段错误的产生原因及调试方法小结

转载自http://www.cnblogs.com/panfeng412/archive/2011/11/06/2237857.html 最近在Linux环境下做C语言项目,由于是在一个原有项目基础之 ...

[转]不正当使用HashMap导致cpu 100%的问题追究

以前项目中遇到类似业务,但使用的是CurrentHashMap,看到这篇文章,转载记录,警示自己. 以下内容转自: 转载自并发编程网 – ifeve.com(http://ifeve.com/hash ...

随机推荐

ios之JavaScript

初次接触java脚本,感觉java脚本so interesting!为什么呢?写javascript代码感觉就像是在记流水账,无拐弯抹角,一个字,就是"干",想怎么干就怎么干,哈哈 ...

javascript 正在加载中,请稍后效果实现

/*蒙版*/ .loading-mask { width: 100%; height: 100%; position: fixed; top:; left:; right:; bottom:; bac ...

Wijmo金融图表系列之等量图&成交量柱状图

Wijmo金融图表有很多类型,我们来一一介绍.之前介绍了平均K线图(Heikin-Ashi)和砖形图,现在我们来一起看看等量图和成交量柱状图. 图表 #3: 等量图(EquiVolume) 等量图和K ...

附带详细注释的log4net的app.config文件配置例子

<?xml version="1.0" encoding="utf-8" ?>

Hive静态分区表&amp&semi;动态分区表

静态分区表: 一级分区表: CREATE TABLE order_created_partition ( orderNumber STRING , event_time STRING ) PARTIT ...

【EF】 proxy

逐步解說:使用 WCF 序列化 POCO Proxy (Entity Framework) .NET Framework 4   POCO Proxy 型別無法由 Windows Communicat ...

页面中插入百度地图(使用百度地图API)

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWF5dW4wNTE2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA ...

03&period;javabean

一.javabean简介 1,  作用:一个可重用组件,在jsp开发中可减少重复代码,使HTML与JAVA代码分离便于日后维护. 2,  javabean类要求: 所有类必须放在包中,且为public ...

linux中的颜色控制

\033[031m  xxx  \033[0m  ---------------------->中间的xxx部分显示为红色,不接后面的\033[0m,则以后显示的都是红色,\033表示开始和结束 ...

Ribbon

Ribbon是一个客户端的负载均衡器,它提供对大量的HTTP和TCP客户端的访问控制.Feign也是用的Ribbon,所以在这一章你也可以用@FeignClient Ribbon的一个核心概念是命名的 ...

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值