MySQL 服务器CPU负载超高,怎么分析
1、确定高负载的类型 htop,dstat命令看负载高是CPU还是IO
尉氏网站建设公司创新互联建站,尉氏网站设计制作,有大型网站制作公司丰富经验。已为尉氏1000+提供企业网站建设服务。企业网站搭建\成都外贸网站建设公司要多少钱,请找那个售后服务好的尉氏做网站的公司定做!
看具体是哪个用户哪个进程占用了相关系统资源,当前CPU、内存谁在使用
2、监控具体的sql语句,是insert update 还是 delete导致高负载
抓取mysql包分析,一般抓3306端口的数据 看出最繁忙的sql语句了
3、检查mysql日志
分析mysql慢日志,查看哪些sql语句最耗时
检查mysql配置参数是否有问题,引起大量的IO或者高CPU操作
innodb_flush_log_at_trx_commit 、innodb_buffer_pool_size 、key_buffer_size 等重要参数
4、检查硬件问题
mysql 负载高可用 哪个方案最好
mysql负责高可用,可以参考如下几种方案:
1.基于共享存储的方案SAN
方
案介绍:SAN(Storage Area
Network)简单点说就是可以实现网络中不同服务器的数据共享,共享存储能够为数据库服务器和存储解耦。使用共享存储时,服务器能够正常挂载文件系统
并操作,如果服务器挂了,备用服务器可以挂载相同的文件系统,执行需要的恢复操作,然后启动MySQL。共享存储的架构如下:
优点:
1.可以避免存储外的其它组件引起的数据丢失。
2.部署简单,切换逻辑简单,对应用透明。
3.保证主备数据的强一致。
限制或缺点:
1.共享存储是单点,若共享存储挂了,则会丢失数据。
2.价格比价昂贵。
2.基于磁盘复制的方案 DRBD
方
案介绍:DRBD(Distributed Replicated Block
Device)是一种磁盘复制技术,可以获得和SAN类似的效果。DBRD是一个以linux内核模块方式实现的块级别同步复制技术。它通过网卡将主服务
器的每个块复制到另外一个服务器块设备上,并在主设备提交块之前记录下来。DRBD与SAN类似,也是有一个热备机器,开始提供服务时会使用和故障机器相
同的数据,只不过DRBD的数据是复制存储,不是共享存储。DRBD的架构图如下:
优点:
1.切换对应用透明
2.保证主备数据的强一致。
限制或缺点:
1.影响写入性能,由于每次写磁盘,实质都需要同步到网络服务器。
2.一般配置两节点同步,可扩展性比较差
3.备库不能提供读服务,资源浪费
3.基于主从复制(单点写)方案
前面讨论的两种方案分别依赖于底层的共享存储和磁盘复制技术,来解决MYSQL服务器单点和磁盘单点的问题。而实际生产环境中,高可用更多的是依赖
MySQL本身的复制,通过复制为Master制作一个或多个热副本,在Master故障时,将服务切换到热副本。下面的几种方案都是基于主从复制的方
案,方案由简单到复杂,功能也越来越强大,实施难度由易到难,各位可以根据实际情况选择合适的方案。
MySQL-14mysql负载均衡
大家好,一起来搞一下mysql的负载均衡这个技术点。
1. haproxy介绍与配置
2. keeplived介绍与配置
3. mysql高可用搭建
1. 可靠性与稳定性都非常出色,可与硬件级设备媲美。
2. 支持连接拒绝,可以用于防止 DDoS 攻击
3. 支持长连接、短连接和日志功能,可根据需要灵活配置
4. 路由 HTTP 请求到后端服务器,基于 cookie 作会话绑定;同时支持通过获取指定的 url 来检测后 端服务器的状态
5. HAProxy 还拥有功能强大的 ACL 支持,可灵活配置路由功能,实现动静分离,在架构设计与实现上 带来很大方便
6. 可支持四层和七层负载均衡,几乎能为所有服务常见的提供负载均衡功能
7. 拥有功能强大的后端服务器的状态监控 web 页面,可以实时了解设备的运行状态 ,还可实现设备上 下线等简单操作。
8. 支持多种负载均衡调度算法,并且也支持 session 保持。
9. Haproxy 七层负载均衡模式下,负载均衡与客户端及后端的服务器会分别建立一次 TCP连接,而在 四层负载均衡模式下(DR),仅建立一次 TCP 连接;七层负载均衡对负载均衡设备的要求更高,处理能力 也低于四层负载均衡。
全局设定
global settings:主要用于定义 haproxy 进程管理安全及性能相关的参数。
代理设定
proxies 共分为4段:defaults,frontend,backend,listen
注意:此处只做配置文件介绍,不做为后期负载均衡配置
在192.168.199.175与192.168.199.172(负载均衡服务器)中安装与配置如下
haproxy状态检测脚本不执行问题,如果是使用的service keeplived start 或者是 systemctl 方式启动,脚本可能会不执行,可以使用 Keepalived -f /etc/keepalived/keepalived.conf方式启动Keepalived
新闻标题:怎么模拟mysql高负载 mysql负载高优化
文章位置:http://lswzjz.com/article/hiodgg.html