高CPU - 怎么做

时间:2010-09-30 01:01:48

标签: mysql performance cpu-usage

我的MYSQL存在高CPU问题,使用“top”(linux)显示90%的cpu峰值。

我试图找到问题的根源,打开常规日志和慢查询日志, 慢查询日志没有找到任何内容。

Db包含一些小表和一个包含近10万行的大表,数据库引擎是MyIsam。奇怪的是我注意到在大桌子上,选择,插入非常快,但更新需要0.2 - 0.5秒。

已经使用过优化和修复而没有改进。

表经常更新,这可能是高CPU%的来源吗?

我该怎么做才能改善这个?

7 个答案:

答案 0 :(得分:1)

你的MySQL服务器上是否有神经网络设置?常规的神经节指标以及神经节的mysql_stats插件可能会揭示正在发生的事情。

答案 1 :(得分:1)

我发现mytop非常有帮助。

答案 2 :(得分:0)

首先,您能定义哪个是超载服务器的查询?在这种情况下,请将其粘贴在这里,也许我们可以帮您解决一下。 另外,请查看表格结构。具有许多索引的表可能具有较慢的更新时间跨度。 我还建议您向我们提供有关该问题的更多数据。

希望有所帮助,

答案 3 :(得分:0)

首先要考虑的是索引,但由于您的选择和插入速度很快,因此不适合。它通常是插入和更新,会在“过度索引”表上减慢速度。这留下了触发器...你在那张桌子上有一个更新触发器,它可能会做很多工作并导致尖峰吗?

答案 4 :(得分:0)

一个耗时0.5秒的查询将不会显示在100%的最高CPU中。太小了。 也可以试试“show full processlist”;验证你my.cnf,甚至尝试减少慢查询超时。慢查询日志可以捕获任何足够慢的东西。

答案 5 :(得分:0)

基于表的键,该表上的任何更新语句都很慢。 例如UPDATE客户SET CustMoney = 1 WHERE CustUID ='someid'

 CREATE TABLE IF NOT EXISTS `customers` (
  `CustFullName` varchar(45) NOT NULL,
  `CustPassword` varchar(45) NOT NULL,
  `CustEmail` varchar(128) NOT NULL,
  `SocialNetworkId` tinyint(4) NOT NULL,
  `CustUID` varchar(64) character set ascii NOT NULL,
  `CustMoney` bigint(20) NOT NULL default '0',
  `LastIpAddress` varchar(45) character set ascii NOT NULL,
  `LastLoginTime` datetime NOT NULL default '1900-10-10 10:10:10',
  `SmallPicURL` varchar(120) character set ascii default '',
  `LargePicURL` varchar(120) character set ascii default '',
  `LuckyChips` int(10) unsigned NOT NULL default '0',
  `AccountCreationTime` datetime NOT NULL default '2009-11-11 11:11:11',
  `AccountStatus` tinyint(4) NOT NULL default '1',
  `CustLevel` int(11) NOT NULL default '0',
  `City` varchar(32) NOT NULL default '',
  `State` varchar(32) NOT NULL default '0',
  `Country` varchar(32) NOT NULL default '',
  `Zip` varchar(16) character set ascii NOT NULL,
  `CustExp` bigint(20) NOT NULL default '0',
  PRIMARY KEY  (`CustUID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

同样我不确定这是高CPU使用率的原因,但在我看来,更新语句花费那么长时间是不正常的。 (0.5秒)

该表目前每秒更新最多5次,将来会更频繁地更新。

答案 6 :(得分:0)

这是什么类型的服务器?我已经看过slooow写入和虚拟机上相对快速的读取。 http://en.wikipedia.org/wiki/Hdparm有什么要说的? 你有什么cpu / ram?负载平均值是什么?