Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3280113
  • 博文数量: 515
  • 博客积分: 5116
  • 博客等级: 大校
  • 技术积分: 4137
  • 用 户 组: 普通用户
  • 注册时间: 2006-09-30 11:24
个人简介

黑马王子就是我! 技术认证:系统分析师,网络规划设计师,网络工程师,信息系统监理师,系统集成项目管理师,初级程序员,MCSE,MCDBA,CCNA 目前主攻虚拟化技术,VPN,系统架构,集群和高可用性等。

文章分类

全部博文(515)

文章存档

2023年(11)

2022年(17)

2021年(19)

2020年(28)

2019年(42)

2018年(53)

2017年(41)

2016年(33)

2015年(43)

2014年(25)

2013年(13)

2011年(6)

2010年(28)

2009年(47)

2008年(55)

2007年(26)

2006年(28)

分类: 架构设计与优化

2014-09-24 08:44:13

      SSD与传统磁盘相比,第一是没有机械装置,第二是由磁介质改为了电介质。在SSD内部有一个FTL(Flash Transalation Layer),它相当于磁盘中的控制器,主要功能就是作地址映射,将flash memory的物理地址映射为磁盘的LBA逻辑地址,并提供给OS作透明访问。

  SSD没有传统磁盘的寻道时间和延迟时间,所以SSD可以提供非常高的随机读取能力,这是它的最大优势,SLC类型的SSD通常可以提供超过35000的IOPS,传统15k的SAS磁盘,最多也只能达到160个IOPS,这对于传统磁盘来说几乎就是个天文数字。SSD连续读的能力相比普通磁盘优势并不明显,因为连续读对于传统磁盘来说,并不需要寻道时间,15k的SAS磁盘,连续读的吞吐能力可以达到130MB,而SLC类型的SSD可以达到170-200MB,我们看到在吞吐量方面,SSD虽然比传统磁盘高一些,但优势虽然并不明显。

  SSD的IO特点分析

  1.随机读能力非常好,连续读性能一般,但比普通SAS磁盘好。

  2.不存在磁盘寻道的延迟时间,随机写和连续写的响应延迟差异不大。

  3.erase-before-write特性,造成写入放大,影响写入的性能。

  4.写磨损特性,采用wear leveling算法延长寿命,但同时会影响读的性能。

  5.读和写的IO响应延迟不对等(读要大大好于写),而普通磁盘读和写的IO响应延迟差异很小。

  6.连续写比随机写性能好,比如1M顺序写比128个8K的随即写要好很多,因为随即写会带来大量的擦除。

基于SSD的上述特性,如果将数据库全部放在SSD上,可能会有以下的问题:

  1.日志文件sequential logging会反复擦写同一位置,虽然有损耗均衡算法,但是长时间写入依然会导致性能下降。

  2.数据文件in place update会产生大量的随机写入,erase-before-write会产生写入放大。

  3.数据库读写混合型应用,存在大量的随机写入,同时会影响读的性能,产生大量的IO延迟。

  基于SSD的数据库优化法则:

  基于SSD的优化就是解决erase-before-write产生的写入放大的问题,不同类型的IO分离,减少写操作带来的性能影响。

  1.将sequential logging修改为In-page logging,避免对相同位置的反复擦写。

  2.通过缓存写入的方式将大量的in-place update随机写入合并为少量顺序写入。

  3.利用SSD随机读写能力高的特点,减少写增加读,从而达到整体性能的提升。

阅读(5473) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~