终于揪出数据库负载高的元凶:高效云盘
这几天,运营那边老报app卡顿,大量5**报错。通过排查,是mysql数据库卡住了,数据库错误日志看,有大量如下信息:
企图修改数据库选项文件/etc/my.cnf相关的值,来消除问题,效果甚微,修改的两项如下:
interactive_timeout=120 connect_timeout=120 |
接着看系统的负载,用top指令,输出如下:
Load飙升,IO也很异常。查mysql的连接数,登录mysql,用指令 “show processlist;”查看,峰值在300个左右,远低于设定值3000.
磁盘io为啥会这么高呢?莫非是磁盘性能问题?数据库由一主两从组成,数据存放在单独的高效云盘。还是来测一下所谓高效云盘的读取性能,然后与自有的物理服务器做过对比。
测试磁盘性能我选用hdparm,最小安装的centos 7可能没有这个包,执行指令“yum install hdparm”很容易就安装上了。
² 系统磁盘挂接情况
² 测试本地盘读取性能
速度是103M每秒,多测几次,减少偏差。
² 高效云盘读取性能测试
读取速度130M每秒的样子,感觉这个速度不是很理想。找一台自有的线上物理服务器进行对比测试,sas盘,15000转容量为600G的系统。
² 物理机磁盘状况
² 物理机系统磁盘读取测试
平均400M每秒钟。
² 物理机数据盘读取测试
每秒钟读取速度390M。
所谓高效云盘,才100多M每秒,差距好大呢!再试试高效云盘加缓存方式的读取,得到如下的输出:
由此可以大致推断,所谓的高效云盘,很可能是sata垃圾盘,前边加ssd缓存,我呸!!经阿里云早期实施工程师确认,还真是这样啊!
处理思路及步骤:
从负载均衡摘除任意一台从数据库mysql,挂接云ssd磁盘,把数据库的数据目录完整的复制到ssd的挂接点,重启数据库并同步数据库。
通过讨论,决策人同意采购一块ssd云盘,用来做对比。一切准备就绪,数据库主从同步完毕,加入负载均衡,把应用程序的请求转发过来,负载的对比差异还相当明显。
采用云ssd磁盘的负载情况
原高效云盘的负载情况
在用hdparm测试,云ssd却如官网所宣,能到200多兆的速度;再看数据库错误日志,采用云ssd的不在疯狂滚屏。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
k8s实践6:从解决报错开始入门RBAC
1.在k8s集群使用过程中,总是遇到各种rbac的权限问题.记录了几个报错,见下: 报错1: "message": "pods is forbidden: User \"kubernetes\" cannot list resource \"pods\" in API group \"\" at the cluster scope" "message": "pservices is forbidden: User \"kubernetes\" cannot list resource \"pservices\" in API group \"\" at the cluster scope", 报错2: [root@k8s-master2 ~]# curl https://192.168.32.127:8443/logs --cacert /etc/kubernetes/cert/ca.pem --cert /etc/kubernetes/cert/kubernetes.pem --key /etc/kubernetes/cert/kubernetes-key.pem { "kind"...
- 下一篇
Oracle RAC集群测试-生产环境最佳方法(Oracle 11g/12c/18c/19 RAC)
生产环境Oracle RAC集群测试最佳方法(支持Oracle 11g/12c/18c/19c RAC安装后期测试过程) 一、Oracle RAC集群测试背景 某中大型制造业公司,由于要新上项目,建设了一套业务系统-ERP系统,这套系统的数据库环境是Oracle RAC(RHEL Linux7+Oracle11gR2 RAC)架构 ,根据风哥提供的建设方案项目已经建设完成。 这套ERP系统的RAC集群数据库在上线之前,我们需要对RAC集群做一些功能测试,这个测试方法适用于Oracle11g/12c,也适用于oracle18c/19c,关于更多生产技术交流,请加入QQ群:787523185 二、Oracle RAC集群的介绍 在测试之前,这里风哥给大家介绍一下Oracle RAC是什么:Oracle 真正应用集群技术(Oracle Real Application Cluster )是Oracle 9i及以后版本,Oracle 9i之前叫OPS集群。Oracle RAC主要支持Oracle9i、10g、11g、12c版本(18c,19c)。 在Oracle RAC环境下,Oracle集群...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Hadoop3单机部署,实现最简伪集群
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8安装Docker,最新的服务器搭配容器使用
- SpringBoot2全家桶,快速入门学习开发网站教程
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS7,8上快速安装Gitea,搭建Git服务器