mysqld.exe cpu占用进程占用cpu较高,是什么问题?怎么解决

Mysql 占用cpu资源高的分析 - 吕滔博客
Mysql 占用cpu资源高的分析
&8342&次浏览
(Windows 2003 + IIS + PHP + MYSQL )近来 MySQL 服务进程
(mysqld-nt.exe) CPU 占用率总为 100% 高居不下。此主机有10个左右的 database,
分别给十个网站调用。据朋友测试,导致 mysqld-nt.exe cpu 占用奇高的是网站A,一旦在 IIS 中将此网站停止服务,CPU
占用就降下来了。一启用,则马上上升。MYSQL CPU 占用 100% 的解决过程&&& 今天早上仔细检查了一下。目前此网站的七日平均日 IP 为2000,PageView 为 3万左右。网站A 用的 database 目前有39个表,记录数 60.1万条,占空间 45MB。按这个数据,MySQL 不可能占用这么高的资源。于是在服务器上运行命令,将 mysql 当前的环境变量输出到文件 output.txt:d:\web\mysql& mysqld.exe --help &output.txt发现 tmp_table_size 的值是默认的 32M,于是修改 My.ini, 将 tmp_table_size 赋值到 200M:d:\web\mysql& notepad c:\windows\my.ini [mysqld] tmp_table_size=200M然后重启 MySQL 服务。CPU 占用有轻微下降,以前的CPU 占用波形图是 100% 一根直线,现在则在 97%~100%之间起伏。这表明调整 tmp_table_size 参数对 MYSQL 性能提升有改善作用。但问题还没有完全解决。于是进入 mysql 的 shell 命令行,调用 show processlist, 查看当前 mysql 使用频繁的 sql 语句:mysql&反复调用此命令(每秒刷两次),发现网站 A 的两个 SQL 语句经常在 process list 中出现,其语法如下:
SELECT t1.pid, t2.userid, t3.count, t1.date FROM _mydata AS t1 LEFT
JOIN _myuser AS t3 ON t1.userid=t3.userid LEFT JOIN _mydata_body AS t2
ON t1.pid=t3.pid ORDER BY t1.pid LIMIT 0,15
调用 show columns 检查这三个表的结构 :
mysql& show columns from _ mysql& show columns from _ mysql& show columns from _mydata_
终于发现了问题所在:_mydata 表,只根据 pid 建立了一个 primary key,但并没有为 userid 建立索引。而在这个 SQL 语句的第一个 LEFT JOIN ON 子句中:
LEFT JOIN _myuser AS t3 ON t1.userid=t3.userid
_mydata 的 userid 被参与了条件比较运算。于是我为给 _mydata 表根据字段 userid 建立了一个索引:
mysql& ALTER TABLE `_mydata` ADD INDEX ( `userid` )
建立此索引之后,CPU 马上降到了 80% 左右。看到找到了问题所在,于是检查另一个反复出现在 show processlist 中的 sql 语句:
SELECT COUNT(*) FROM _mydata AS t1, _mydata_key AS t2 WHERE t1.pid=t2.pid and t2.keywords = '孔雀'
经检查 _mydata_key 表的结构,发现它只为 pid 建了了 primary key, 没有为 keywords 建立
index。_mydata_key 目前有 33 万条记录,在没有索引的情况下对33万条记录进行文本检索匹配,不耗费大量的 cpu
时间才怪。看来就是针对这个表的检索出问题了。于是同样为 _mydata_key 表根据字段 keywords 加上索引:
mysql& ALTER TABLE `_mydata_key` ADD INDEX ( `keywords` )
建立此索引之后,CPU立刻降了下来,在 50%~70%之间震荡。
再次调用 show prosslist,网站A 的sql 调用就很少出现在结果列表中了。但发现此主机运行了几个 Discuz 的论坛程序, Discuz论坛的好几个表也存在着这个问题。于是顺手一并解决,cpu占用再次降下来了。
至此,问题解决。
扫一扫支付
评论数: 27
评论数: 20
评论数: 19
评论数: 14
评论数: 11
评论数: 10
评论数: 9
评论数: 8
评论数: 8
评论数: 7
$lunarInfo数组是怎么来的,这是重点
这个肯定解决的不是空间的问题,可能是复用的问题,有可能是“站群...
Hello! This post could not be w...
你好,yaf怎么使用循环输出数据到模板中
为什么我的没有mvn命令,而且setting.xml文件是在 ...
请问pid怎么用
请问你这个pid是哪里的
一般台式机速度从来都没有低于100MB/S,服务器做RAID5...
牛人,学习了,致敬。
lvm2-monitor
0:off 1:on 2:on...
评论数: 0
评论数: 0
评论数: 0
评论数: 6
评论数: 1
评论数: 0
评论数: 0
评论数: 0
评论数: 2
评论数: 0用户名:liangey
文章数:154
评论数:34
访问量:33892
注册日期:
阅读量:1297
阅读量:3317
阅读量:582630
阅读量:467460
51CTO推荐博文
故障:& & & 晚上大概7点钟左右,收到播放中心投诉,说视频播放很慢,加载很久不出来。一开始,哥以为是tomcat服务又挂了。所以到tomcat服务器上查看下catalina.out输出日志。却没发现任务错误信息。分析:& & & &想了想,视频加载慢,会不会是数据库问题呢?果断上mysql数据库(从库)看下top如下:&&PID&USER&&&&&&PR&&NI&&VIRT&&RES&&SHR&S&%CPU&%MEM&&&&TIME+&&COMMAND&&
&37258&mysql&&&&20&&&0&17.2g&&12g&5032&S&769.5&81.3&&&4383:29&mysqld没想到cpu居然达到769%了!& & &然后进入mysql的慢查询语句的目录下面,看下slow.logselect&count(*)&as&col_0_0_&from&card_received&cardreceiv0_&where&(cardreceiv0_.statusCode='1'&or&cardreceiv0_.statusCode='2')&and&(cardreceiv0_.ownerCardNum='6209'&or&cardreceiv0_.ownerPhoneNum='')&and&cardreceiv0_.readStatus=0\G;发现这条查询语句耗时5秒左右,但是slow.log里面全部是这条语句。所以我觉得很可疑。再用explain分析下看mysql&&explain&select&count(*)&as&col_0_0_&from&card_received&cardreceiv0_&where&(cardreceiv0_.statusCode='1'&or&cardreceiv0_.statusCode='2')&and&(cardreceiv0_.ownerCardNum='6209'&or&cardreceiv0_.ownerPhoneNum='')&and&cardreceiv0_.readStatus=0\G;
explain结果:
**************************&1.&row&***************************
&&&&&&&&&&&id:&1
&&&&&&&&&&&select_type:&SIMPLE
&&&&&&&&&&&table:&cardreceiv0_
&&&&&&&&&&&type:&ref
possible_keys:&readStatus,ownerCardNum,statusCode,ownerPhoneNum
&&&&&&&&&&&key:&readStatus
&&&&&&&&&&&key_len:&5
&&&&&&&&&&&ref:&const
&&&&&&&&&&&rows:&2394190
&&&&&&&&&&&Extra:&Using&where
1&row&in&set&(0.00&sec)
No&query&specified居然扫描了:2394190行。。。。& &最后跟开发沟通后,因为这边表数据并不重要。故将一些旧数据情况了,表示已经清空了200万行!最后mysql的cpu终于降下来了。。。不过要彻底解决问题,仍需要优化语句,建立索引哪。。不然数据多了,肯定还会出问题的。好了,此次故障也仅仅给提供一些解决问题的思路。具体问题还是需要具体分析的。本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)
10:00:27 10:40:34 17:03:15解决mysql占用cpu资源100%的问题
解决占用cpu资源100%的问题
一个Win2003服务器,以前就跑了一个tomcat实例也没用nginx做前端代理,这个tomcat里面带了不少网站,但是访问量并不是很大,基本属于业务集中型。
解决的过程其实也挺easy,这里记录一下思路。
首先把mysql服务器升级到最新的版本,尽量避免是mysql本身问题。
然后在my.ini里面mysqld里面配置:
slow-query-log = 1
slow-query-log-file = slow.log
重启mysql这样所有'slow'的都会记录到日志里面。
然后再到慢的时候就能看到具体什么sql引发了慢的问题(slow.log在datadir下),最后发现慢的那个表查询里面username没有加索引而且并发不小,开始数据不多还没问题,后来数据多了些达到了十几万的时候,并发查没索引的表就出来问题了,每次比较十几万次字符串是挺要命。
给这个字段加上索引,马上cpu就降下来了。转:mysqld-nt.exe&占cpu高处理
如果服务器的mysqld-nt.exe 占CPU很高
如果服务器的mysqld-nt.exe
占CPU很高,一般是因为MYSQL的数据库中有数据进行采集,或者是数据库出现问题。观察办法是:使用phpmyadmin
进行观察,在phpmyadmin “进程”中查看在线的数据库,点击Kill
删除可疑的进程,如果删除了出错数据库mysqld-nt.exe所占的CPU会马上下降。
发现数据库后可以进行修复,或者禁止该用户使用该数据库。一般CPU过高是因为该用户生成静态或者进行采集。而控制程序池无法解决数据库CPU过高的问题,不知道有什么好办法可以控制某个数据库占数据库CPU。
UPdate:发现该数据库有问题,已经关闭该用户,一切恢复正常。
1.开始 = 运行
假设你的mysql在D:\wamp\bin\mysql\mysql5.5.8\bin输入以下命令:
2. cd wamp
4. cd mysql
5. cd mysql5.5.8
就会进入mysql所在程序
输入 mysql -uroot -padmin进入mysql控制台
输入& mysql&
查询现在mysql在干什么。
按向上箭头 在查询一边,看哪个数据库查询的语句比较频繁!
一般是睡眠连接过多,严重消耗mysql服务器资源(主要是cpu, 内存),并可能导致mysql崩溃。
mysql的配置my.ini文件中,有一项:
wait_timeout, 即可设置睡眠连接超时秒数,如果某个连接超时,会被mysql自然终止。
如设置: 
wait_timeout=100
#即设置mysql连接睡眠时间为100秒,任何sleep连接睡眠时间若超过100秒,将会被mysql服务自然终止,要比编写shell脚本更简单。
对于正在运行中的生产服务器
以root用户登录到mysql,执行:
set global wait_timeout=100
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。Explorer.exe进程CPU占用率高的原因和解决方法
Explorer.exe进程CPU占用率高的原因和解决方法
Explorer.exe进程CPU占用率高的原因和解决方法。
B460笔记本电脑,主要配置是IntelP6200CPU+HM55芯片组+GF310M显卡+ST320G硬盘,安装的是WinXP操作系统。配置虽说不算高档,不过对付日常的办公处理还是游刃有余,就是这样的配置前不久却发生有时运行速度特别慢的故障。当故障出现时360杀毒软件弹出系统性能警告对话框(下图),从图中可以看出是Explorer.exe进程CPU占用率高造成的,当结束该进程后CPU的使用率马上就下降,可是过一会儿又会出现类似的现象。将360杀毒软件升级后进行全盘扫描也没有发现任何问题,用鲁大师软件检查发现电脑的CPU、显卡、主板及硬盘等硬件工作均正常,无奈之下将C盘格式化并重做系统可故障还是依旧。问题出在哪儿呢?后来通过反复操作发现,当打开G盘时就出现上述故障,而打开其他盘却没有问题,可是G盘之前扫描过也没有病毒呀,唯一的区别就是G盘存有不少高清电影,难道与这些高清电影有关不成?于是将这些电影转移至移动硬盘,没想到故障彻底消失,看来Explorer.exe进程CPU占用率高确实与这些高清电影相关,可这又是为什么呢?后来查资料得知:WinXP操作系统默认是开启视频预览功能的,当打开G盘瞬间系统进行预览时。就会导致Explorer.exe进程的CPU占用率高,从而出现前述的现象,严重时还会导致资源管理器崩溃。解决的办法是在“运行”对话框中输入“regsvr32/ushmedia.dll”(下图)命令关闭视频预览功能(若要恢复的话,可执行命令regsvr32shmedia.dll)。其实不光是视频文件,一些大体积的文件夹在遇到杀毒软件的监控、硬盘搜索类工具的索引等情况下,也会出现类似的故障。建议尽量不要将这些文件放在根目录,可以建立一个文件夹来存放。
型号/产品名
深圳市鑫蓝丰电子有限公司
深圳市硅虎电子有限公司
广州红升电子科技有限公司
广州红升电子科技有限公司
深圳市福田区赛格电子市场科利源电子商柜}

我要回帖

更多关于 mysqld 占用cpu 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信