SHOPNC占用CPU过高

今天一个SHOPNC商城突然变慢,查看服务器情况,发现MYSQL占用181%CPU,然后查看PHP慢查询,发现这样的内容

[22-Nov-2016 20:55:41]  [pool www] pid 50624
script_filename = /home/xxxx/public_html/mobile/index.php
[0x00007fcc47bad470] query() /home/xxx/public_html/core/framework/db/mysqli.php:90
[0x00007fcc47bad308] query() /home/xxxx/public_html/core/framework/db/mysqli.php:115
[0x00007fcc47bad190] getAll() /home/xxxx/public_html/core/framework/libraries/model.php:651
[0x00007fcc47bad070] select() /home/xxxx/public_html/core/framework/libraries/model.php:304
[0x00007fcc47bacf78] find() /home/xxxx/public_html/data/model/mb_user_token.model.php:24
[0x00007fcc47bace98] getMbUserTokenInfo() /home/xxxx/public_html/data/model/mb_user_token.model.php:31
[0x00007fcc47bacd78] getMbUserTokenInfoByToken() /home/xxxx/public_html/mobile/control/control.php:68
[0x00007fcc47bacc70] __construct() /home/xxxx/public_html/mobile/control/member_index.php:16
[0x00007fcc47bacb48] __construct() /home/xxxx/public_html/core/framework/core/base.php:88
[0x00007fcc47baca40] control() /home/xxxx/public_html/core/framework/core/base.php:46
[0x00007fcc47bac978] run() /home/xxxx/public_html/mobile/index.php:26

这是第三方登陆用到的,然后我查看了 mb_user_token 这表,发现居然没有索引,把 token 这个字段加个索引,解决问题

时间: 2024-10-23 15:58:11

SHOPNC占用CPU过高的相关文章

w3wp占用CPU过高

w3wp占用CPU过高 在此之前项目有发生过两次类似的状况,都得以解决,但最近又会发现偶尔CPU会跑满,虽然之前使用过WinDbg解决过两次问题但人的记忆是不可靠的,今天处理同样问题的时候还是遇到了一些障碍,这一次希望可以记录的更全面些. 上两次的博文链接:记一次w3wp占用CPU过高的解决过程(Dictionary和线程安全).EntityFramework中的线程安全,又是Dictionary. 首先请大家不要喷我,因为这一次还是关于Dictionary的一些低级错误,我自己看到都无语了..

[转]生产环境中程序占用cpu过高的程序的排查办法

一个应用占用CPU很高,除了确实是计算密集型应用之外,通常原因都是出现了死循环.以我们最近出现的一个实际故障为例,介绍怎么定位和解决这类问题. 根据top命令,发现PID为28555的Java进程占用CPU高达200%,出现故障. 通过ps aux | grep PID命令,可以进一步确定是tomcat进程出现了问题.但是,怎么定位到具体线程或者代码呢? 首先显示线程列表: ps -mp pid -o THREAD,tid,time 找到了耗时最高的线程28802,占用CPU时间快两个小时了!

【shell脚本实例】一个恶作剧—— kill掉占用CPU较高的matlab进程

我们实验室有台服务器,博士们在服务器上跑MATLAB,基本都是4核都是超过95%的CPU占用,想了个恶作剧的shell 定时kill掉MATLAB程序,是不是很邪恶啊,哈哈~~~  不过我只是干过一次,因为老伯们也不容易啊,屌丝何苦为难屌丝... 废话不多说了上脚本! ? 1 2 3 找出CPU占用超过90%的MATLAB进程,grep -v 去掉"grep"进程 pids=`ps aux|grep "MATLAB"|grep -v "grep"

SQL Server 占用CPU较高的解决方法

触发原因:月底系统结账的时候对ERP的操作较多,有用户反馈系统之间的数据传输很久没有同步.随即到服务器上查看,没有发现有程序导致的问题,看了一下CPU的使用率,发现SQL Server占用率在百分之九十以上. 解决过程:首先Baidu了一下,看了一下可能的原因应该是索引问题.之前有仔细看过SQL Server索引相关的书籍和查找优化索引的方法.所以立即使用SQL Server Profiler开始检测对CPU使用率高的SQL statement. 经过检测发现更新数据传输的语句占用CPU很高(u

关于mysql占用CPU过高,问题解决

使用SHOW PROCESSLIST 查看 原因: 使用了 一个触发器 不断的去删除日志,保证每个用户的日志只有10条 去掉之后,CPU使用率从97% 降到了 17%. 利用show columns from 表名 查看 和 SQL 对比 查出 根本原因 : 删除条件里面 有一个 没有加索引,添加了索引后CPU在6%到40%波动,由于CPU单核,又加了很多触发器,所以去掉了这个 会频繁被触发的触发器. lower_case_table_names=1可以忽略表名大小写 SHOW VARIABLE

Linux排查Java程序占用CPU很高的解决办法

Java的工具集相当强大,学习成本也很低,处理线上问题时,jstack这个工具就比微软的windbg,好学好用很多,3步找出占用CPU很高的源所在.而windbg反人类的各种命令,实在不敢恭维. 故意设置了一个CPU占用很高的场景: 排查问题,步骤: 1. ps -mp [替换为进程ID PID] -o THREAD,tid,time 发现线程6322.6323占用CPU很高,时间也很长. 2. printf “%x” [线程ID TID] 把TID转换为16进制. 3. jstack [进程I

Linux排查java程序占用cpu过高的线程代码

分几步骤: 1.通过top,查出占用CPU过高的java进程 ,比如: pid :6666 2.通过ps -mp 6666 -o THREAD,tid,time| sort -n -k1 -r 查看此进程占用线程的情况,比如查到占用CPU异常高的线程的线程Id :8888 以上两步,可以直接通过top -H搞定 3.将需要的线程ID转换为16进制格式: printf “%x\n” 8888 [[email protected]]# printf “%x\n” 8888“22b8n” 4.最后打印

Java虚拟机六:Java进程占用cpu过高问题分析

在平时开发过程中,经常会碰到Java进程占用cpu过高的现象,本篇将简单记录一下自己分析该类问题的步骤. 1.使用 top -p <pid> 命令(<pid>为Java进程的id号)查看Java进程的cpu占用: 该Java进程占用cpu达到92.2%. 2.使用 top -Hp <pid>  命令(<pid>为Java进程的id号)查看该Java进程内所有线程的资源占用情况(按shft+p按照cpu占用进行排序,按shift+m按照内存占用进行排序)此处按

linux 分析进程占用CPU过高

重点是查看进程的线程中,哪个线程占用cpu过高,然后用gdb附加到进程,调试线程,看是否有死循环或者死锁等问题,步骤如下: 1 先用ps + grep找出该死的进程pid,比如 1706 2 top -H -p 1706,(top然后shift+H可以看出某个线程,左上角有提示:thread on 则为可查看线程)所有该进程的线程都列出来, 看看哪个线程pid占用最多,记下对应的线程号,如:1723 gdb attach 到进程号码(1706) (仍然在gdb中) info threads 结果