mysql 老是占用80% cpu 怎么处理

[复制链接]
查看11 | 回复9 | 2011-4-2 17:01:06 | 显示全部楼层 |阅读模式


mysql.JPG (122.67 KB, 下载次数: 8)
下载附件
2012-1-1 13:45 上传

谁能给我解决下
show processlist 命令好象没用
我是在本机用root登陆的呀

回复

使用道具 举报

千问 | 2011-4-2 17:01:06 | 显示全部楼层
提供一些配置信息
回复

使用道具 举报

千问 | 2011-4-2 17:01:06 | 显示全部楼层
show processlist;
回复

使用道具 举报

千问 | 2011-4-2 17:01:06 | 显示全部楼层
show innodb status
回复

使用道具 举报

千问 | 2011-4-2 17:01:06 | 显示全部楼层
show processlist; 楼主怎么漏了一个;呢?这样就认为你没有结束这个语句,当然没有任何结果了.我觉得你是否可以开启满查询看看呢,看看那些句子占用这么多的资源.我公司的一个ecshop的站cpu之前是几乎100%的,用这个才找出了原因。
回复

使用道具 举报

千问 | 2011-4-2 17:01:06 | 显示全部楼层
这个问题我们使用Ecshop时候遇到过。不知道和你的是不是一样:
1.服务器重启后,CPU占用很低。一切正常
2.随着客户访问量的增大,CPU占用很快升高。
3.ECshop刚刚上线时候,没有这个问题,运行6个月左右出现问题。
如果你的网站符合以上特点,请检查:
1.分析产品页面,找到访问成交量最大的10个产品页面。查看下面成交的数量,如果超过3万条购物记录的,新建一个同样的产品,也就是把这个productid 归0.
如果症状消失,可能是以下问题:
a 客户访问交易量大于3万以上的产品页面,Ecshop会执行查询和统计,把历史订单库里面有这个产品的订单全部搜索出来,然后展示成交时间和客户的ID。如果网站刚建好,
一个产品只有100个订单,mysQL占用会很低,因为遍历数据表花不了多少时间。当你的产品成交量一大,数据库里面订单很多,问题就暴露出来。
解决思路:
1.把成交量大的产品剔除,新建一个商品,成交量从0开始。
2.修改页面逻辑。把成交记录哪里的数量,改为用counter计数器统计,也就是在product表里面增加一个计数器,每成交一个就自动加1. 成交的历史记录,只展示top 10
例如select XX ,XX fromtop100 控制展示的成交记录的数量。
我的QQ965461565

回复

使用道具 举报

千问 | 2011-4-2 17:01:06 | 显示全部楼层
ecshop 很挫的 。
回复

使用道具 举报

千问 | 2011-4-2 17:01:06 | 显示全部楼层
show processlist 都没有运行成功。
另外 i5 4g内存的机器做服务器?
回复

使用道具 举报

千问 | 2011-4-2 17:01:06 | 显示全部楼层
mysql cpu负载高90%以上是索引问题。先检查下慢SQL
回复

使用道具 举报

千问 | 2011-4-2 17:01:06 | 显示全部楼层
楼上说的对,先打开慢查询日志,然后针对sql优化一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行