MYSQL的硬盘IO过高引起的CPU过高判断

其实,为客户提供相关日志,不就是RACKSPACE主要作的事?

俺们以后也可以效仿的。不要去解决,而是协助客户定位。

http://blog.const.net.cn/a/17275.htm

上文的思路明显的。

top命令 查看服务器负载,发现 mysql竟然百分之两百的cpu,引起Mysql 负载这么高的原因,估计是索引问题和某些变态SQL语句.

排查思路

1. 确定高负载的类型,top命令看负载高是CPU还是IO。

2. mysql 下执行查看当前的连接数与执行的sql 语句。

3. 检查慢查询日志,可能是慢查询引起负载高。

4. 检查硬件问题,是否磁盘故障问题造成的。

5. 检查监控平台,对比此机器不同时间的负载。

~~~~~~~~~~~~~~~~~

记录慢查询 编辑Mysql 配置文件(my.cnf),在[mysqld]字段添加以下几行:

  1. log_slow_queries = /usr/local/mysql/var/slow_queries.log   #慢查询日志路径 
  2. long_query_time = 10                                       #记录SQL查询超过10s的语句 
  3. log-queries-not-using-indexes = 1                          #记录没有使用索引的sql 

查看慢查询日志

  1. tail /usr/local/mysql/var/slow_queries.log 
  2. # Time: 130305  9:48:13 
  3. # User@Host: biotherm[biotherm] @  [8.8.8.45] 
  4. # Query_time: 1294.881407  Lock_time: 0.000179 Rows_sent: 4  Rows_examined: 1318033 
  5. SET timestamp=1363916893; 
  6. SELECT * FROM xxx_list WHERE tid = '11xx'  AND del = 0  ORDER BY  id DESC  LIMIT 0, 4;  

4个参数 Query_time: 0 Lock_time: 0 Rows_sent: 1 Rows_examined: 54 分别意思为:查询时间 锁定时间 查询结果行数 扫描行数,主要看扫描行数多的语句,然后去数据库加上对应的索引,再优化下变态的sql 语句。
极端情况kill sql进程

  1. 找出占用cpu时间过长的sql,在mysql 下执行如下命令: 
  2. show processlist; 
  3. 确定后一条sql处于Query状态,且Time时间过长,锁定它的ID,执行如下命令: 
  4. kill QUERY  269815764;  

注意:杀死 sql进程,可能导致数据丢失,所以执行前要衡量数据的重要性。

 

时间: 2024-08-03 23:29:47

MYSQL的硬盘IO过高引起的CPU过高判断的相关文章

应对Win8硬盘及cpu温度高的完美策略

  应对Win8硬盘及cpu温度高的完美策略: 1.驱动问题,从网友测试结果来看大多数是无线网卡驱动问题和Intel英特尔芯片组,建议更新到支持Win8版本的最新驱动,可以用驱动精灵更新. 2.关闭数据完整性扫描,这功能是个计划任务,非常占用资源,往往会占掉一个核的性能,但在任务管理器里是不会显示出来的.关闭数据完整性扫描: "Computer"右键,"Manage",左侧窗口打开树形"Computer Management->System Tool

dsp-dm642的IO口输出的电压信号频率多高?和cpu主频一样吗?

问题描述 dm642的IO口输出的电压信号频率多高?和cpu主频一样吗? 5C dm642的IO口输出的电压信号频率多高?和cpu主频一样吗?现在测的IO口的输出电压为2.4v!

mysql.ini cpu过高优化方法

mysql教程.ini cpu过高优化方法 tmp_table_size=200m  tmp_table_size越大,被转化为disk tmp table的概率越 小 php教程程序页面mysql及时关闭 设置mysql超时时间 low-priority-updates 设置查询与更新优先 及 low_priority_updates = no;设置读优先级 wait_timeout = 10;  大概10秒就可以了. table_cache=1024 物理内存越大,设置就越大.默认为2402

每一个程序员都应该知道的高并发处理技巧、创业公司如何解决高并发问题、互联网高并发问题解决思路、caoz大神多年经验总结分享

原文:每一个程序员都应该知道的高并发处理技巧.创业公司如何解决高并发问题.互联网高并发问题解决思路.caoz大神多年经验总结分享 本文来源于caoz梦呓公众号高并发专辑,以图形化.松耦合的方式,对互联网高并发问题做了详细解读与分析,"技术在短期内被高估,而在长期中又被低估",而不同的场景和人员成本又导致了巨头的方案可能并不适合创业公司,那么如何保证高并发问题不成为创业路上的拦路虎,是每一个全栈工程师.资深系统工程师.有理想的程序员必备的技能,希望本文助您寻找属于自己的"成金之

数据库内核月报 - 2015 / 10-MySQL · 答疑解惑 · 索引过滤性太差引起CPU飙高分析

前言 在操作数据库系统的时候,有个常识就是在建表的时候一定要建索引.为什么要建索引呢? 这里以MySQL的InnoDB存储引擎为例,因为InnoDB会以索引的排序为基准建立B+树,这样在检索数据的时候就可以通过B+树来查找,查找算法的时间复杂度是O(logn)级别的,避免全表扫描带来的性能下降和额外资源损耗. 理论上一个表所有的字段都可以建索引,那么给哪些字段建索引效果好呢? 一个想法是给频繁在SQL的where条件中出现的字段建立索引,这样可以保证通过索引来查找数据. 有一点是经常被忽略的,那

SQLSERVER排查CPU占用高的情况

今天中午,有朋友叫我帮他看一下数据库,操作系统是Windows2008R2 ,数据库是SQL2008R2 64位 64G内存,16核CPU 硬件配置还是比较高的,他说服务器运行的是金蝶K3软件,数据库实例里有多个数据库   现象 他说是这几天才出现的,而且在每天的某一个时间段才会出现CPU占用高的情况 内存占用不太高,只占用了30个G CPU占用100% 排查方向   一般排查都是用下面的脚本,一般会用到三个视图sys.sysprocesses ,dm_exec_sessions ,dm_exe

性能优化-位运算效率高还是位运算效率高?

问题描述 位运算效率高还是位运算效率高? 在<java程序性能优化>中写到,位运算是运算中最高效的,而我依照书上的代码运行了一遍 发现并不是这样. 补上代码: public class BitOperate { public static void main(String[] args) { nomal(); bit(); } private static void nomal() { long start =System.currentTimeMillis(); long a = 100;

高质量的链接和高质量的内容: SEO策略的重要支柱

你曾多少次听到过有人说"内容为王"这句话?对网页优化是为了确保您的网站内容符合搜索引擎的口味,并取得好的排名. 你可以不花一点心思去复制,完全拷贝别人的内容,这是很方便的,同时你在网页中还结合了适当最有效的关键字.但这种排名往往不是非常好的.因为搜索引擎喜欢原创性的文章. 值得庆幸的是,页面优化的过程是完全掌握在自己手中的.你可以把你的内容细化,不断地修补,并不断更新内容.有效的关键字可以很快获得并使用,像Google Analytics分析工具可以让你获得高质量的关键字. 反向链接页

CPU使用率高怎么办?

  CPU使用率高怎么办?            当出现由于CPU资源不足,往往很容易导致电脑卡或者无响应等情况. 那么针对CPU使用率高怎么办? 网上关于'cpu使用率忽高忽低不稳定'这个话题讨论很多,其实都是从两个方面去考虑:一个是软件方面,另外一个则是硬件方面,其中硬件方面其决定性因素. 下面就跟系统大全一起来详细了解分析下,是什么原因造成的'cpu使用率100%'以及'cpu使用率不稳定'.