位置: 编程技术 - 正文

Mysql占用过高CPU时的优化手段(必看)(mysqld占用cpu高)

编辑:rootadmin

推荐整理分享Mysql占用过高CPU时的优化手段(必看)(mysqld占用cpu高),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mysql sql cpu占用高查询解决,mysql占用cpu很高,mysql占用cpu很高,mysqlcpu占用过高 排查,mysqlcpu占用率高,mysql进程占用cpu过高,mysqlcpu占用过高 排查,mysqlcpu占用率高,内容如对您有帮助,希望把文章链接给更多的朋友!

Mysql占用CPU过高的时候,该从哪些方面下手进行优化?

占用CPU过高,可以做如下考虑:

1)一般来讲,排除高并发的因素,还是要找到导致你CPU过高的哪几条在执行的SQL,show processlist语句,查找负荷最重的SQL语句,优化该SQL,比如适当建立某字段的索引;

2)打开慢查询日志,将那些执行时间过长且占用资源过多的SQL拿来进行explain分析,导致CPU过高,多数是GroupBy、OrderBy排序问题所导致,然后慢慢进行优化改进。比如优化insert语句、优化group by语句、优化order by语句、优化join语句等等;

3)考虑定时优化文件及索引;

4)定期分析表,使用optimize table;

5)优化数据库对象;

6)考虑是否是锁问题;

7)调整一些MySQL Server参数,比如key_buffer_size、table_cache、innodb_buffer_pool_size、innodb_log_file_size等等;

8)如果数据量过大,可以考虑使用MySQL集群或者搭建高可用环境。

9)可能由于内存latch(泄露)导致数据库CPU高

)在多用户高并发的情况下,任何系统都会hold不住的,所以,使用缓存是必须的,使用memcached或者redis缓存都可以;

)看看tmp_table_size大小是否偏小,如果允许,适当的增大一点;

)如果max_heap_table_size配置的过小,增大一点;

)mysql的sql语句睡眠连接超时时间设置问题(wait_timeout)

)使用show processlist查看mysql连接数,看看是否超过了mysql设置的连接数

下面分享一例遇到过的案例:

网站在高峰时段访问,点击页面有点卡。登陆服务器,发现机器负载有点高,并且mysql占用了很高的CPU资源,如下图:

MySQL负载居高不下,如果打开了慢查询日志功能,最好的办法就是针对慢查询日志里执行慢的sql语句进行优化,如果sql语句用了大量的group by等语句,union联合查询等肯定会将mysql的占用率提高。所以就需要优化sql语句

除了优化sql语句外,也可以做一些配置上的优化。在mysql中运行show proceslist;出现下面回显结果:

1.查询有大量的Copying to tmp table on disk状态

Mysql占用过高CPU时的优化手段(必看)(mysqld占用cpu高)

明显是由于临时表过大导致mysql将临时表写入硬盘影响了整体性能。

Mysql中tmp_table_size的默认值仅为MB,在当前的情况下显然是不够用的。mysql> show variables like "%tmp%";+-------------------+----------+| Variable_name | Value |+-------------------+----------+| max_tmp_tables | || slave_load_tmpdir | /tmp || tmp_table_size | || tmpdir | /tmp |+-------------------+----------+4 rows in set (0. sec)

解决办法:调整临时表大小

1)进mysql终端命令修改,加上global,下次进mysql就会生效

mysql> set global tmp_table_size=;Query OK, 0 rows affected (0. sec)

再次登陆mysqlmysql> show variables like "%tmp%";+-------------------+----------+| Variable_name | Value |+-------------------+----------+| max_tmp_tables | || slave_load_tmpdir | /tmp || tmp_table_size | || tmpdir | /tmp |+-------------------+----------+4 rows in set (0. sec)

2)my.cnf配置文件修改

[root@www ~]# vim my.cnf.....tmp_table_size = M

重启mysql[root@www ~]# /etc/init.d/mysqld restart

2.show processlist;命令的输出结果显示了有哪些线程在运行,可以帮助识别出有问题的查询语句。比如下面结果:

Id User Host db Command Time State Info root ..1.: mytest Sleep 5 NULL 先简单说一下各列的含义和用途,第一列,id,不用说了吧,一个标识,你要kill一个语句的时候很有用。user列,显示单前用户,如果不是root,这个命令就只显示你权限范围内的sql语句。host列,显示这个语句是从哪个ip的哪个端口上发出的。呵呵,可以用来追踪出问题语句的用户。db列,显示这个进程目前连接的是哪个数据库 。command列,显示当前连接的执行的命令,一般就是休眠(sleep),查询(query),连接(connect)。time列,此这个状态持续的时间,单位是秒。state列,显示使用当前连接的sql语句的状态,很重要的列,后续会有所有的状态的描述,请注意,state只是语句执行中的某一个状态,一个sql语句,已查询为例,可能需要经过copying to tmp table,Sorting result,Sending data等状态才可以完成,info列,显示这个sql语句,因为长度有限,所以长的sql语句就显示不全,但是一个判断问题语句的重要依据。

常见问题:

一般是睡眠连接过多,严重消耗mysql服务器资源(主要是cpu, 内存),并可能导致mysql崩溃。

解决办法 :

在mysql的配置my.cnf文件中,有一项wait_timeout参数设置.即可设置睡眠连接超时秒数,如果某个连接超时,会被mysql自然终止。 wait_timeout过大有弊端,其体现就是MySQL里大量的SLEEP进程无法及时释放,拖累系统性能,不过也不能把这个指设置的过小,否则你可能会遭遇到“MySQL has gone away”之类的问题。通常来说,把wait_timeout设置为小时是个不错的选择,但某些情况下可能也会出问题,比如说有一个CRON脚本,其中两次SQL查询的间隔时间大于秒的话,那么这个设置就有问题了(当然,这也不是不能解决的问题,你可以在程序里时不时mysql_ping一下,以便服务器知道你还活着,重新计算wait_timeout时间):

MySQL服务器默认的“wait_timeout”是秒即8小时,意味着如果一个连接的空闲时间超过8个小时,MySQL将自动断开该连接。

然而连接池却认为该连接还是有效的(因为并未校验连接的有效性),当应用申请使用该连接时,就会导致下面的报错:

The last packet successfully received from the server was , milliseconds ago.mysql> show variables like 'wait_timeout';+---------------+-------+| Variable_name | Value |+---------------+-------+| wait_timeout | |+---------------+-------+1 row in set (0. sec)

seconds,也就是8小时。

如果在wait_timeout秒期间内,数据库连接(java.sql.Connection)一直处于等待状态,mysql就将该连接关闭。这时,你的Java应用的连接池仍然合法地持有该连接的引用。当用该连接来进行数据库操作时,就碰到上述错误。可以将mysql全局变量wait_timeout的缺省值改大。

查看mysql手册,发现对wait_timeout的最大值分别是天/天(windows/linux)。

比如将其改成天

mysql> set global wait_timeout=;Query OK, 0 rows affected (0. sec)

以上这篇Mysql占用过高CPU时的优化手段(必看)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持积木网。

mysql 5.7. 安装教程 附MySQL服务无法启动的解决方法 最为.net开发来说,微软的sqlserver数据库是比较熟悉,而至于MySQL,Oracle以前都有使用,但都是很熟悉,所以.....准备阶段mysql官网

在win系统下安装Mysql 5.7.图文教程 操作系统winMySQL为官网下载的位zip解压缩Community版本。因为想要在公司电脑上安装Mysql,于是到官网上下载了最新版本的Mysql-5.7.,首先通过网上教程

mysql表名忽略大小写配置方法详解 linux下mysql默认是要区分表名大小写的。mysql是否区分大小写设置是由参数lower_case_table_names决定的,其中:1)lower_case_table_names=0区分大小写(即对大小写

标签: mysqld占用cpu高

本文链接地址:https://www.jiuchutong.com/biancheng/349969.html 转载请保留说明!

上一篇:Window 下安装Mysql5.7.17 及设置编码为utf8的方法(windows安装mysql8.0)

下一篇:mysql 5.7.17 安装教程 附MySQL服务无法启动的解决方法(mysql 5.7.28安装)

  • 税金及附加属于管理费用吗
  • 什么是代扣代缴申报
  • 费用报销哪些可以不用合同的
  • 个人生产经营所得税
  • 法人把自己的车租给公司交什么税
  • 应收账款的账面价值等于什么
  • 库存商品进行非货币资产交换收入怎么确定
  • 携程电子发票可以发到QQ邮箱吗
  • 公司贷款买车后影响公司收购吗
  • 建筑行业增值税税率是多少
  • 手撕票验旧是什么意思
  • 税务会计核算范围
  • 住宿服务住宿服务可以么
  • 非公司员工可以交社保吗
  • 小微企业免增值税到什么时候
  • 营改增房租增值税税率
  • 认证费计入什么科目
  • 违约金收入是否交增值税
  • 返利发票税率
  • 小规模企业现金规定最新
  • 苹果手机录音怎么转换成mp3格式
  • 棚户区改造贷款管理办法
  • 京东预付卡怎么做账
  • win7如何禁用wifi
  • 在win7中怎么安转只兼容win10的软件
  • 蓝牙耳机连电脑
  • php格式转换
  • php wechat
  • 哪种审计证据更可靠
  • Calanques de Piana岩层上的一个心形洞,法国科西嘉岛 (© joningall/Getty Images)
  • 什么是水利建设基金税
  • 劳务公司成本核算方法选择什么
  • 私企固定资产管理办法
  • php array_walk_recursive 使用自定的函数处理数组中的每一个元素
  • php代码自动生成
  • php 下载上传文件
  • 公益性怎么解释
  • 大病医疗保险是社保吗
  • 在建工程怎么做账务处理
  • linux mint 下mysql中文支持问题
  • 一般商品销售的会计分录
  • 企业转让股权如何缴纳企业所得税
  • 盈余公积转增资本所有者权益会变吗
  • 期初余额调整怎么做凭证
  • 其他应收款借方表示增加吗
  • 盘盈固定资产明细表
  • 报销为什么不能打给投保人
  • 个人承担社保有哪些
  • 代收的车船税没有发票怎么入账
  • 销售货物没有开票的会计分录
  • 收到法院退回的诉讼费怎么做账
  • 物业管理单位收取的物业费征不征收增值税
  • 小规模企业应交税费分录
  • 工程类企业存货包括哪些
  • 发票章盖得不清晰怎么办
  • mysql修改默认端口方法
  • win7怎么下载win10
  • linux系统怎么安装
  • centos分区说明
  • 光盘做镜像文件
  • 昂达主板插线安装图解
  • win8 分屏
  • win8.1系统HDMI高清线连接电视后没有声音的原因及解决办法
  • mmc.exe是什么
  • nginx实现负载均衡的流程
  • linux操作系统root
  • Linux VPS vsftp/proftpd FTP时间差八小时的解决方法
  • win7连接VPN时提示800错误怎么办 连接VPN时提示错误800解决方法
  • python中pillow模块
  • unity3d cant add script
  • python基础开发
  • jquery.validate[.unobtrusive]和Bootstrap实现tooltip错误提示问题分析
  • 学完js不会用怎么办
  • jquery怎么写
  • javascript怎么学
  • 总结网络io模型的特点
  • 税务系统干部选拔任用工作树立导向
  • 江西省企业社会保险费缴费指南
  • 生产变压器有什么危害
  • 大乐透中奖查询走势图
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设