- 1、本文档共38页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
缓存技术浅谈 Robbin Fan 缓存是什么,解决什么问题? Cache是高速缓冲存储器 一种特殊的存储器子系统,其中复制了频繁使用的数据以利于快速访问 凡是位于速度相差较大的两种硬件/软件之间的,用于协调两者数据传输速度差异的结构,均可称之为 Cache 基于Web应用的系统架构图 Web应用系统存在哪些速度差异? 读取文件系统 ? 读取磁盘 读取数据库内存 ? 读取文件系统 读取应用内存 ? 访问数据库服务器 读取静态文件 ? 访问应用服务器 读取浏览器缓存 ? 访问网站 缓存技术分类 操作系统磁盘缓存 ? 减少磁盘机械操作 数据库缓存 ? 减少文件系统I/O 应用程序缓存 ? 减少对数据库的查询 Web服务器缓存 ? 减少应用服务器请求 客户端浏览器缓存 ? 减少对网站的访问 操作系统缓存概述 文件系统提供的Disk Cache:操作系统会把经常访问到的文件内容放入到内存当中,由文件系统来管理 当应用程序通过文件系统访问磁盘文件的时候,操作系统从Disk Cache当中读取文件内容,加速了文件读取速度 Disk Cache由操作系统来自动管理,一般不用人工干预,但应当保证物理内存充足,以便于操作系统可以使用尽量多的内存充当Disk Cache,加速文件读取速度 特殊的应用程序对文件系统Disk Cache有很高的要求,会绕开文件系统Disk Cache,直接访问磁盘分区,自己实现Disk Cache策略 Oracle的raw device(裸设备) – 直接抛弃文件系统 MySQL的InnoDB: innodb_flush_method = O_DIRECT Windows的Disk Cache Linux的Disk Cache 数据库缓存的重要性 为什么数据库非常依赖缓存? 数据库通常是企业应用系统最核心的部分 数据库保存的数据量通常非常庞大 数据库查询操作通常很频繁,有时还很复杂 以上原因造成数据库查询会引起非常频繁的磁盘I/O读取操作,迫使CPU挂起等待,数据库性能极度低下 数据库有哪些缓存策略? Query Cache Data Buffer Query Cache 以SQL作为key值缓存查询结果集 一旦查询涉及的表记录被修改,缓存就会被自动删除 设置合适的Query Cache会极大提高数据库性能 Query Cache并非越大越好,过大的Qquery Cache会浪费内存。 MySQL: query_cache_size= 128M MySQL Query Cache监控工具 show status like Qcache%; mysqlreport脚本 MySQL Administrator Query Cache状态示例 Data Buffer data buffer是数据库数据在内存中的容器 data buffer的命中率直接决定了数据库的性能 data buffer越大越好,多多益善 MySQL的InnoDB buffer:innodb_buffer_pool_size = 2G MySQL建议buffer pool开大到服务器物理内存60-80% MySQL buffer 监控工具 show innodb status\G show status like innodb%; mysqlreport脚本 innotop InnoDB buffer状态示例 应用程序缓存概述 对象缓存 查询缓存 页面缓存 动态页面静态化 Servlet缓存 页面内部缓存 对象缓存 由O/R Mapping框架例如Hibernate提供,透明性访问,细颗粒度缓存数据库查询结果,无需业务代码显式编程,是最省事的缓存策略 当软件结构按照O/R Mapping框架的要求进行针对性设计,使用对象缓存将会极大降低Web系统对于数据库的访问请求 良好的设计数据库结构和利用对象缓存,能够提供极高的性能,对象缓存适合OLTP(联机事务处理)应用 对象缓存分类 对映射数据库表记录的entity对象进行缓存 对1对n关系的集合进行缓存 对n对1关系的关联对象进行缓存 Hibernate对象缓存配置 Hibernate二级缓存是提升web应用性能的法宝 OLTP类型的web应用,由于应用服务器端可以进行群集水平扩展,最终的系统瓶颈总是逃不开数据库访问; 哪个框架能够最大限度减少数据库访问,降低数据库访问压力,哪个框架提供的性能就更高; 针对数据库的缓存策略: 对象缓存:细颗粒度,针对表的记录级别,透明化访问,在不改变程序代码的情况下可以极大提升web应用的性能。对象缓
您可能关注的文档
最近下载
- 高斯小学奥数含答案二年级(下)第06讲-扫雷游戏.pdf VIP
- 《景区运营与管理实务》课件——旅游景区管理要素.pptx VIP
- GB50171-2012 电气装置安装工程 盘、柜及二次回路接线施工及验收规范.pdf VIP
- 《工程制图》教学教案(1-10次课,合计50次课).doc VIP
- 统编版道德与法治九年级上册第三单元《文明与家园》作业设计.docx
- 高斯小学奥数含答案二年级(下)第06讲扫雷游戏.pdf VIP
- 旅游景区运营管理手册(制度)[257页].doc VIP
- 中南大学ORcad实验报告(程嘉洲版实验2到实验7)完美步骤,完美报告!.doc
- 部编版九年级道德与法治第四单元《文明与家园》作业设计.docx
- 《工程制图》教学教案(11-20次课,合计50次课).doc VIP
文档评论(0)