缓存技术对比分析精选文档.ppt
《缓存技术对比分析精选文档.ppt》由会员分享,可在线阅读,更多相关《缓存技术对比分析精选文档.ppt(38页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、缓存技术对比分析本讲稿第一页,共三十八页缓存是什么,解决什么问题?vCache是高速缓冲存储器 一种特殊的存储器子系统,其中复制了频繁使用的数据以利于快速访问v凡是位于速度相差较大的两种硬件/软件之间的,用于协调两者数据传输速度差异的结构,均可称之为 Cache本讲稿第二页,共三十八页基于Web应用的系统架构图数据库应用服务器Web服务器存储设备浏览器Web应用架构操作系统的文件系统本讲稿第三页,共三十八页Web应用系统存在哪些速度差异?v读取文件系统 读取磁盘v读取数据库内存 读取文件系统 v读取应用内存 访问数据库服务器v读取静态文件 访问应用服务器v读取浏览器缓存 访问网站本讲稿第四页,
2、共三十八页缓存技术分类v操作系统磁盘缓存 减少磁盘机械操作v数据库缓存 减少文件系统I/Ov应用程序缓存 减少对数据库的查询 vWeb服务器缓存 减少应用服务器请求v客户端浏览器缓存 减少对网站的访问本讲稿第五页,共三十八页操作系统缓存概述v文件系统提供的Disk Cache:操作系统会把经常访问到的文件内容放入到内存当中,由文件系统来管理v当应用程序通过文件系统访问磁盘文件的时候,操作系统从Disk Cache当中读取文件内容,加速了文件读取速度vDisk Cache由操作系统来自动管理,一般不用人工干预,但应当保证物理内存充足,以便于操作系统可以使用尽量多的内存充当Disk Cache,加
3、速文件读取速度v特殊的应用程序对文件系统Disk Cache有很高的要求,会绕开文件系统Disk Cache,直接访问磁盘分区,自己实现Disk Cache策略 Oracle的raw device(裸设备)直接抛弃文件系统 MySQL的InnoDB:innodb_flush_method=O_DIRECT本讲稿第六页,共三十八页Windows的Disk Cache本讲稿第七页,共三十八页Linux的Disk Cache本讲稿第八页,共三十八页数据库缓存的重要性v为什么数据库非常依赖缓存?数据库通常是企业应用系统最核心的部分 数据库保存的数据量通常非常庞大 数据库查询操作通常很频繁,有时还很复杂
4、 以上原因造成数据库查询会引起非常频繁的磁盘I/O读取操作,迫使CPU挂起等待,数据库性能极度低下v数据库有哪些缓存策略?Query Cache Data Buffer本讲稿第九页,共三十八页Query Cachev 以SQL作为key值缓存查询结果集v 一旦查询涉及的表记录被修改,缓存就会被自动删除v 设置合适的Query Cache会极大提高数据库性能vQuery Cache并非越大越好,过大的Qquery Cache会浪费内存。vMySQL:query_cache_size=128M本讲稿第十页,共三十八页MySQL Query Cache监控工具vshow status like Qc
5、ache%;vmysqlreport脚本vMySQL Administrator本讲稿第十一页,共三十八页Query Cache状态示例_ Query Cache _Memory usage 25.77M of 64.00M%Used:40.26Block Fragmnt 24.73%Hits 6.98M 3.2/sInserts 100.87M 46.9/sInsrt:Prune 34.15:1 45.5/sHit:Insert 0.07:1本讲稿第十二页,共三十八页Data Buffervdata buffer是数据库数据在内存中的容器vdata buffer的命中率直接决定了数据库的性能
6、vdata buffer越大越好,多多益善vMySQL的InnoDB buffer:innodb_buffer_pool_size=2GvMySQL建议buffer pool开大到服务器物理内存60-80%本讲稿第十三页,共三十八页MySQL buffer 监控工具vshow innodb statusGvshow status like innodb%;vmysqlreport脚本vinnotop本讲稿第十四页,共三十八页InnoDB buffer状态示例_ InnoDB Buffer Pool _Usage 1000.00 of 1000.00%Used:100.00Read hit 99
7、.99%Pages Free 0%Total:0.00 Data 59.69k 93.26%Drty:0.02 Misc 4311 6.74 Latched 0 0.00Reads 60.30G 28.0k/s From file 7.01M 3.3/s 0.01 Ahead Rnd 98684 0.0/s Ahead Sql 9548 0.0/sWrites 86.79M 40.3/sFlushes 14.08M 6.5/sWait Free 0 0/s本讲稿第十五页,共三十八页应用程序缓存概述v对象缓存v查询缓存v页面缓存 动态页面静态化 Servlet缓存 页面内部缓存本讲稿第十六页,共
8、三十八页对象缓存v由O/R Mapping框架例如Hibernate提供,透明性访问,细颗粒度缓存数据库查询结果,无需业务代码显式编程,是最省事的缓存策略v当软件结构按照O/R Mapping框架的要求进行针对性设计,使用对象缓存将会极大降低Web系统对于数据库的访问请求v良好的设计数据库结构和利用对象缓存,能够提供极高的性能,对象缓存适合OLTP(联机事务处理)应用本讲稿第十七页,共三十八页对象缓存分类v对映射数据库表记录的entity对象进行缓存v对1对n关系的集合进行缓存v对n对1关系的关联对象进行缓存本讲稿第十八页,共三十八页Hibernate对象缓存配置Entity Cache(us
9、age=CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)public class Forest .配置配置entity对象缓存对象缓存配置关联集合的缓存配置关联集合的缓存OneToMany(cascade=CascadeType.ALL,fetch=FetchType.EAGER)JoinColumn(name=CUST_ID)Cache(usage=CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)public SortedSet getTickets()return tickets;仅仅添加Annotat
10、ion就可以了,无须编码,即可自动享受对象缓存。Hibernate会拦截对象的CRUD操作,针对对象读取操作进行缓存,针对对象修改操作自动清理缓存本讲稿第十九页,共三十八页Hibernate二级缓存是提升web应用性能的法宝vOLTP类型的web应用,由于应用服务器端可以进行群集水平扩展,最终的系统瓶颈总是逃不开数据库访问;v哪个框架能够最大限度减少数据库访问,降低数据库访问压力,哪个框架提供的性能就更高;v针对数据库的缓存策略:对象缓存:细颗粒度,针对表的记录级别,透明化访问,在不改变程序代码的情况下可以极大提升web应用的性能。对象缓存是ORM的制胜法宝。对象缓存的优劣取决于框架实现的水平
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 缓存 技术 对比 分析 精选 文档
限制150内