MySQL单机load过高问题讨论
有一个朋友问我: "hi,我想问下你们遇到单机load过高的情况 采取什么紧急措施啊?"
我问他是不是mysql db server?
他说是。
我给他如下建议:
1 先看下是不是mysqld进程造成的load高?
2 如果是的话,去看下当前线程有没有比较慢的sql
朋友再问: 嗯 都没有呢,这个如果由于业务的原因导致load高呢
我给出自己的建议:
1 并发量过高
2 业务原因,是crontab 任务,可以停止就停止掉
朋友再问:不是 sql的原因啊 db机器一般出现load高都是因为io,cpu这些导致的 这些很大部分都是由于业务繁忙处理不过来吧
我回复 :
1 嗯,不是慢sql导致io cpu爆增的,我还没碰到过,可能是我们这边单机性能太好了, [做人要坦诚特别是技术讨论]
2 如果是io,cpu,那也是有事务操作吧
3 看看db参数设置是否合理,如果参数合理的话,估计就是到了单机性能的瓶颈了
朋友问:额 没有遇到过 .... 这,那没有遇到过db机器load高需要处理的啊?
我回复:
遇到很多,大部分都是慢sql造成的
朋友再问:嗯 一般不急?
我回复:
1 嗯,不会啊,我们事先上应用之前都会做压力测试,峰值测试
2 业务量不会超过预计的峰值
3 你们单台load过高,现在mysql不都是多台吗?分布式,读写负载均衡,一台load过高,那另外几台呢?
朋友再问: 我假设某个业务 突然一天访问量很高(超过之前预估),这个时候又只访问一个主,而业务肯定不能停的,机器明显感觉处理不过来,load急速上升,有什么办法处理吗?我们的不是不是分布式的,现在的分布式都有负载均衡,对这样的情况太好处理了。
我回复:
1 这个时候业务不能停,单机硬件升级更不是可行方案。
2 在发现cpu过高了,就马上去准备加新的db机器,如果新的db机器在单台db爆掉之前准备好的话,直接添加上去,分担app访问压力。
3 这个操作不会对业务产生影响,我们一般用的都是vip吧,在vip下再加一台db,应该是很方便的。
朋友再问: 我在想这样的问题还真是有点难处理啊?
我表示疑惑:为什么,你们不是用vip访问db?
朋友说:不是,都是直接写真实ip上去连接应用的。
说道这里,如果没有vip,而且是单台db,到时候瞬间爆掉了,我只能表示我水平有限暂时也没有别的好招了,只有暂停业务并且重新架构db了。
不过我还是给他一些自己的建议,希望能带给他一些帮组:
1 上新的app之前,做好db的压力测试和峰值测试。
2 要做db的ha方案,并且测试通过。
3 db的ip已经app的ip已经要用类似vip的处理方式,以便方便扩展。
4 db要做好备份机制,并随时抽查备份的有效性。
大家有碰到过类似的情况,有好的经验,欢迎share下。
MySQL单机load过高问题讨论的更多相关文章
- 数据库系统load飙高问题解决思路(转)
工作过程中有时候会接收到数据库服务器器load 飙高的报警,比如: load1 15.25 base: 8.52,collect time:2014-08-30 如何处理load 异常飙高的报警呢? ...
- 数据库系统load飙高问题解决思路
工作过程中有时候会接收到数据库服务器器load 飙高的报警,比如: load1 15.25 base: 8.52,collect time:2014-08-30 如何处理load 异常飙高的报警呢? ...
- JDBC使用MYSQL的LOAD DATA LOACAL INFILE和LOAD DATA INFILE
MYSQL的LOAD方法都必须建立在mysql服务允许使用该命令的情况下: 开启该命令的方法: 1.在实例对应的my.cnf(windows为my.ini)中添加一行local-infile=1(默认 ...
- Mysql占用CPU过高如何优化,如何解决
2017-02-28 15:13 331人阅读 评论(0) 收藏 举报 MySQL占用CPU过高如何优化 一次生产DB服务器的 超负荷运行问题解决: 1.查看生产DB服务器top列表, 执行 to ...
- cpu load过高问题排查
load average的概念 top命令中load average显示的是最近1分钟.5分钟和15分钟的系统平均负载. 系统平均负载被定义为在特定时间间隔内运行队列中(在CPU上运行或者等待运行多少 ...
- MySQL基于域名做高可用切换(Consul初试)
一,Consul功能介绍 服务发现 - Consul的客户端可用提供一个服务,比如 api 或者mysql ,另外一些客户端可用使用Consul去发现一个指定服务的提供者.通过DNS或者HTTP应用程 ...
- 分享MYSQL中的各种高可用技术(源自姜承尧大牛)
分享MYSQL中的各种高可用技术(源自姜承尧大牛) 图片和资料来源于MYSQL大牛姜承尧老师(MYSQL技术内幕作者) 姜承尧: 网易杭州研究院 技术经理 主导INNOSQL的开发 mysql高可用各 ...
- mysql导出csv/excel文件的几种方法,mysql的load导入csv数据
方法一 php教程用mysql的命令和shell select * into outfile './bestlovesky.xls' from bestlovesky where 1 order by ...
- [置顶] LOAD语句:利用MSSQL中的xp_cmdshell功能,将指定文件夹下的指定文件,生成mysql的LOAD语句
LOAD语句:利用MSSQL中的xp_cmdshell功能,将指定文件夹下的指定文件,生成mysql的LOAD语句 declare @sql varchar(4000), @dirpath varch ...
随机推荐
- ATL字符串转换宏
有比MultiByteToWideChar和WideCharToMultiByte更简单的字符串转换宏,你相信吗?头文件 d:\program files\microsoft visual studi ...
- 如何实现在H5里调起高德地图APP?(上)
这一篇文章,将讲述如何在H5里调起高德地图APP,并展示兴趣点.适合于展示某个餐馆,商场等,让用户自行选择前往方式. 场景一.在高德地图上展示Marker点或者POI标记 在一些基于位置分享的应用开发 ...
- eclipse、myeclipse,svn插件subclipse 忘记密码的解决方法(win7、win8、xp)
如果是Windows7.Windows8系统只要删除当前用户目录下的AppData\Roaming\Subversion\auth\svn.simple 比如我的用户名taoweiji,就删除C:\U ...
- Git中当add错误的时候怎么办?
傻傻分不清楚. “git add .”是我常用的添加命令,添加完后来个“git status ”总是有那么几次发现有不想添加的东西.好多人用reset,nonono,这样不好会有个head错误爆出. ...
- centos 7 /etc/rc.local 开机不执行的问题
最近发现centos7 的/etc/rc.local不会开机执行,于是认真看了下/etc/rc.local文件内容的就发现了问题的原因了 1 2 3 4 5 6 7 8 9 10 11 #!/bin/ ...
- 【原创】从零开始学SpagoBI5.X源码汉化编译
从零开始学SpagoBI5.X源码汉化编译 一.新建Tomact Server 服务器并配置测试1.文件-新建-其他-过滤server-服务类型选择Tomact V7.0 Server2.根据需要修改 ...
- WordPress添加固定位置的百度分享按钮
第一步,在你所用主题目录新建一个名称为:share.php的模板文件,将下面的代码复制到进去并保存 <div id="share"> <div class=&qu ...
- 由于源码使用是c\c++与oc混编导致Unknown type name 'NSString'
今天看到个问题,编辑工程提示Unknown type name 'NSString',如下图 解决方案三: 将Compile Sources As 改为 Objective-C++
- iOS 10.0 更新点(开发者视角)
html, body {overflow-x: initial !important;}html { font-size: 14px; } body { margin: 0px; padding: 0 ...
- 《objective-c基础教程》学习笔记(九)—— Foundation框架介绍
在之前的博文中,我们创建的项目文件的时候,默认都有引用#import <Foundation/foundation.h> 这个头文件.但是,之前我们对Foundation都没有展开介绍.这 ...