mysql负载飙高原因分析

摘要:
某些进程/服务消耗更多的CPU资源;发生严重互换;发生相对严重的中断;磁盘I/O速度慢;因为表数据量很小,所以不要编写任何SQL语句。任何联接都不会出现性能瓶颈。文件系统使用ext4甚至ext3代替xfs。当I/O压力高时,%util可能已达到100%,但iops无法改善。通常,xfs可以显著提高;内核的ioscheduler策略采用了cfq而不是deadline或noop,可以直接在线调整或大幅改进。

某些进程/服务消耗更多CPU资源(服务响应更多请求或存在某些应用瓶颈);
发生比较严重的swap(可用物理内存不足);
发生比较严重的中断(因为SSD或网络的原因发生中断);
磁盘I/O比较慢(会导致CPU一直等待磁盘I/O请求);

绝对不要因表数据量小,sql语句随便写都行,随便join都不会出现性能瓶颈,决不能有这
种思想。
尽量避免join表 join表笛卡尔积
如果要join表一定要把where条件写全,安全起见最好加个limit。
一次请求读写的数据量太大,导致磁盘I/O读写值较大,例如一个SQL里要读取或更新几万>行数据甚至更多,这种最好是想办法减少一次读写的数据量;

SQL查询中没有适当的索引可以用来完成条件过滤、排序(ORDER BY)、分组(GROUP BY)
、数据聚合(MIN/MAX/COUNT/AVG等),添加索引或者进行SQL改写吧;
瞬间突发有大量请求,这种一般只要能扛过峰值就好,保险起见还是要适当提高服务器的>配置,万一峰值抗不过去就可能发生雪崩效应;
因为某些定时任务引起的负载升高,比如做数据统计分析和备份,这种对CPU、内存、磁盘
I/O消耗都很大,最好放在独立的slave服务器上执行;
服务器自身的节能策略发现负载较低时会让CPU降频,当发现负载升高时再自动升频,但通
常不是那么及时,结果导致CPU性能不足,抗不过突发的请求;
使用raid卡的时候,通常配备BBU(cache模块的备用电池),早期一般采用锂电池技术,>需要定期充放电(DELL服务器90天一次,IBM是30天),我们可以通过监控在下一次充放电
的时间前在业务低谷时提前对其进行放电,不过新一代服务器大多采用电容式电池,也就>不存在这个问题了。
文件系统采用ext4甚至ext3,而不是xfs,在高I/O压力时,很可能导致%util已经跑到100%了,但iops却无法再提升,换成xfs一般可获得大幅提升;
内核的io scheduler策略采用cfq而非deadline或noop,可以在线直接调整,也可获得大幅
提升。

免责声明:文章转载自《mysql负载飙高原因分析》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇jquery实现自定义弹出框Spring5学习笔记下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

mysql数据库命令使用

1、mysql> SHOW GLOBAL STATUS LIKE'Open_files';     #当前打开文件数  2、mysql> SHOW VARIABLES LIKE'open_files_limit';       #最大打开文件数  3、解决办法: 5.6 GTID版本不支持这种语法  create table B select ...

两种常见的mysql集群架构

常见的mysql集群架构 根据业务发展阶段和业务代码部署情况不同,对于扩展单数据库可以使用以下几种部署架构模型 单地域高可用架构 单地域高可用架构的构成 dbproxy数据库代理: 主要处理:读写分离,主从切换等。 主库(高可用):处理业务写流量。 从库(多实例,可选高可用):处理业务读流量。 单地域高可用的架构可以处理 业务流量在单地域的的业务结...

docker 安装jumpserver

#docker 安装mkdir /etc/dockerecho "{    "registry-mirrors" : [    "https://registry.docker-cn.com",    "https://docker.mirrors.ustc.edu.cn",    "http://hub-mirror.c.163.com",    "ht...

将 excel文件数据导入MySQL数据库中

    第一步:先将Excel文件另存为文本文件(制表符分割) 第二步:将生成的txt文件另存,并修改编码格式utf8; 第三步:将文件放到指定位置,或自己想要的位置: G:city.txt 第四步:避免创建数据库及表出现中文乱码和查看编码方法: 1、创建数据库的时候:CREATE DATABASE `test` CHARACTER SET 'utf8...

mysql复杂查询(一)

所谓复杂查询,指涉及多个表、具有嵌套等复杂结构的查询。这里简要介绍典型的几种复杂查询格式。 一、连接查询 连接是区别关系与非关系系统的最重要的标志。通过连接运算符可以实现多个表查询。连接查询主要包括内连接、外连接等。 假设有Student和Grade两个表如下: +-----+--------+-------+ +-----+-----------...

lamp安装教程

LAMP环境配置安装注意安装步骤及说明事项。 Linux + apache+mysql+php 附件: 1. 访问ftp报错 解决: 关闭selinux vi /etc/selinux/config 内容修改为: selinux=disable 之后重启reboot。 下图分别为selinux关闭前 和 关闭后: 2. 依赖软件查询 http://rp...