一、存储结构分析
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个小时后没有恢复电源,也不会造成数据丢失。
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个小时后没有恢复电源,也不会造成数据丢失。
编辑推荐:
- Mysql存储写入速度快慢是怎么形成的?02-28
- MySQL--pt-osc的介绍与使用02-28
- SQLServer转MYSQL的方法详解02-28
- 几种MySQL数据库的优化方案02-28
- 用xtrabackup备份mysql数据库方法指导02-28
- 用MYSQL替换时间字段且时分秒不变的方法02-28
- MySQL的入门介绍02-28
- MYSQL的排序sql语句02-28
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
