设为首页 收藏本站
查看: 1940|回复: 0

[经验分享] MySQL存储写入速度慢分析

[复制链接]

尚未签到

发表于 2018-10-8 09:40:37 | 显示全部楼层 |阅读模式
  一、存储结构分析
  MySQL存储结构图:

  解析:
  1、读操作:内存读-->cache缓存读-->磁盘物理读
  读取到的数据会按上述顺序往回送。
  2、写操作:内存数据直接写入cache缓存(非常快)-->写入disk
  由上可知,MySQL之所以读写速度快,cache在其中起到了关键作用。
  1、Cache缓存特点:
  1、速度快
  2、掉电数据丢失  
  3、容量有限
  2、保护数据安全(防止意外掉电的数据丢失)应对措施:
  在存储中,增加BBU(电池备份单元,就是电池),在掉电后,可以把缓存中的数据写到磁盘中,保证数据不会丢失。
  如果没有提供BBU或者BBU坏了,内存数据就不会写入cache缓存中,就会直接写入disk中;相较于写入内存,写入磁盘的速度就大打折扣(万倍之差)。与此同时,因为慢下来的“写”占了绝大部分“读”的带宽。所以BBU问题是读写性能差的一很大的影响因素。
  3、cache缓存容量有限
  (4G、8G、16G、32G),系统为了保持cache有用,会周期性的将cache缓存的数据写入磁盘中,避免cache被占满。
  二、存储写入速度慢分析
  数据库-->写入速度慢-->系统hang住
  Q:如何判断写入速度慢?
  A:
  1、怀疑BBU问题
  监控BBU的bug,解决:重启BBU
  2、cache被占满(类同于BBU坏了的情况)
  1、海量的写入数据占满cache缓存,判断:
  shell> iostat -x
  mysql> show global status like 'handler_write';
  2、cache写入disk的速度慢了(排水速度远小于注水速度)
  硬盘I/O异常,负载过高:数据库海量的物理读(异常SQL),判断:
  mysql> show status like 'Innodb_buffer_pool_reads';
  3、存储性能差问题
  1、存储设备差,更新设备
  2、灾备同步风险,“再好的工程师,敌不过蓝翔的挖掘机、农民工的锄头……”
  三、关于BBU
  英文简称:BBU
  英文全称:Battery Backup Unit
  中文全称:电池备份单元,是电池
  1、作用:
  在掉电后,把缓存中的数据写到硬盘中,保证数据不会丢失;
  是为了意外掉电刷脏数据的一种保护措施;
  能够在系统外部供电失效的情况下,提供后备电源支持,以保证存储阵列中业务数据的安全性。
  2、许多存储设备都会配备BBU
  BBU在电源供应出现问题的时候,为RAID控制器缓存提供电源。当电源断电时,BBU电力可以使控制器内缓存中的数据可以保存一定时间(根据BBU的型号而决定)。用户只需要在BBU电力耗尽(电池有限)之前恢复正常供电,缓存中的数据即可被完整的写回RAID中,避免断电导致数据丢失。
  和服务器电池有点不一样,服务器中,在配置RAID卡的时候可以配一个电池,在系统掉电后,能维持内存中的数据不丢失,但时间有限,大约12个小时左右,假如是12小时,如果在12内没有恢复,内存中的数据就会丢失;
  3、超级电容
  服务器还有一种保护方式,叫超级电容,也是和RAID卡配套的,他能在服务器掉电后把缓存中的数据写入到电容中,而且会永久保存,类似写入硬盘,实际上是写入电容,你就理解成写入U盘把。他比电池好,即使服务器在12个小时后没有恢复电源,也不会造成数据丢失。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-616147-1-1.html 上篇帖子: MySQL 主从延迟复制方法总结 下篇帖子: MySQL触发器trigger的使用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表