当前位置: 首页 >> >>

Web应用的缓存优化主要包括哪些方面?

1. 操作系统磁盘缓存     减少磁盘机械操作

  • 文件系统提供的Disk Cache:操作系统会把经常访问到的文件内容放入到内存当中,由文件系统来管理
  • 当应用程序通过文件系统访问磁盘文件的时候,操作系统从Disk Cache当中读取文件内容,加速了文件读取速度
  • Disk Cache由操作系统来自动管理,一般不用人工干预,但应当保证物理内存充足,以便于操作系统可以使用尽量多的内存充当Disk Cache,加速文件读取速度
  • 特殊的应用程序对文件系统Disk Cache有很高的要求,会绕开文件系统Disk Cache,直接访问磁盘分区,自己实现Disk Cache策略
  • ™ Oracle的raw device(裸设备) – 直接抛弃文件系统
  • ™ MySQL的InnoDB: innodb_flush_method = O_DIRECT

2.数据库缓存                减少文件系统I/O

  • 为什么数据库非常依赖缓存?

™ 数据库通常是企业应用系统最核心的部分

™ 数据库保存的数据量通常非常庞大

™ 数据库查询操作通常很频繁,有时还很复杂

™ 以上原因造成数据库查询会引起非常频繁的磁盘I/O读取操作,迫使CPU挂起等待,数据库性能极度低下

  • 数据库有哪些缓存策略?

™ Query Cache

™ Data Buffer

3.应用程序缓存            减少对数据库的查询

  • 对象缓存
  • 查询缓存
  • 页面缓存
  • ™ 动态页面静态化
  • ™ Servlet缓存
  • ™ 页面内部缓存

4.Web服务器缓存       减少应用服务器请求

  • 基于代理服务器模式的Web服务器端缓存
  • ™ squid/nginx
  • Web服务器缓存技术被用来实现CDN(内容分发网络 content delivery network)
  • 被国内主流门户网站大量采用
  • 不需要编程,但仅限于新闻发布类网站,页面实时性要求不高

5.客户端浏览器缓存    减少对网站的访问

  • 浏览器缓存(Browser Caching)是为了节约网络的资源加速浏览,浏览器在用户磁盘上对最近请求过的文档进行存储,当访问者再次请求这个页面时,浏览器就可以从本地磁盘显示文档,这样就可以加速页面的阅览。
  • 浏览器缓存主要有两类:缓存协商:Last-modified ,Etag 和彻底缓存:cache-control,Expires。

 

Loading