`
DigitalSonic
  • 浏览: 215266 次
社区版块
存档分类
最新评论

利用缓存提高小型站点性能

阅读更多

        最近结束了一个小型网站项目,主要功能就是一个文章系统,为了提升站点性能,我在首页上使用了OSCache,在访问首页时,性能的确有不小的提升(具体数据见《JMeter小实验——JSP性能简单测试》),但我对此并不满足,打算使用Hibernate的二级缓存来优化访问文章和栏目时的速度。
        Hibernate的二级缓存有很多选择,我选择了默认的EHCache。它的配置十分简单,只要在Hibernate配置里加入hibernate.cache.provider_class=net.sf.hibernate.cache.EhCacheProvider,然后在Classpath里加入EHCache.xml文件,我的文件内容如下:

<ehcache>
    <diskStore path="java.io.tmpdir"/>
    <defaultCache
        maxElementsInMemory="1000"
        eternal="false"
        timeToIdleSeconds="600"
        timeToLiveSeconds="600"
        overflowToDisk="false"
        />
</ehcache>

        JavaEye上的《hibernate二级缓存攻略》对这些属性有如下说明:eternal表示缓存是不是永远不超时,timeToLiveSeconds是缓存中每个元素(这里也就是一个POJO)的超时时间,如果eternal="false",超过指定的时间,这个元素就被移走了。timeToIdleSeconds是发呆时间,是可选的。当往缓存里面put的元素超过500个时,如果overflowToDisk="true",就会把缓存中的部分数据保存在硬盘上的临时文件里面。注意:我的配置中最大元素设成了1000。
        如果希望每个缓存的POJO有自己的配置,可以把defaultCache换成cache name="com.xxx.pojo.Foo"。
        完成了EHCache.xml的配置,接下来在每个要被缓存的POJO映射 文件里加入<cache usage="read-write" />,其中read-write是缓存策略,Hibernate还有read-only、nonstrict-read-write和transactional这些策略以供选择。
        配置完成后,我用JMeter测试,发现头两次访问的时间很长,但随后的访问速度有很大提升,数字上相差两位呢。虽然在实际使用时还有网络等因素会影响站点的访问,不过总的来说对于这样的小型文章系统,二级缓存的使用还是对整体性能有帮助的。最后要做的就是根据实际使用情况,适当调整一下缓存设置,我用SpringAOP建立了一个处理日志的拦截器,记录访问量和访问间隔,先让它运行一段时间,随后根据日志情况对缓存作调整。

分享到:
评论

相关推荐

    缓存设计详解:低成本的高性能Web应用解决方案.doc

    对于小型站点,可以考虑使用开源的缓存解决方案,如Squid作为代理服务器。对于大型企业,可能需要专业的CDN厂商提供服务。同时,根据业务规模选择合适的数据中心或托管服务也是优化性能的重要决策。 总的来说,缓存...

    构建高性能WEB站点

    在构建高性能Web站点的过程中,架构师需要掌握一系列关键技术和策略,以确保网站能够高效、稳定地为用户提供服务。本教程将深入探讨这些重要知识点,帮助读者成为熟练的Web架构师。 1. **负载均衡**:当网站面临...

    高性能高并发服务器架构和构建高性能web站点.zip

    在构建高性能的Web站点和设计高并发服务器架构的过程中,我们需要考虑多个关键因素,这些因素将直接影响到系统的响应速度、稳定性以及资源的效率利用。以下是一些核心知识点的详细阐述: 1. **负载均衡**:在高并发...

    构建高性能Web站点

    在构建高性能Web站点的过程中,我们需要考虑多个关键领域,以确保网站能够快速响应用户请求,提供流畅的用户体验,并能处理高并发访问。以下是一些核心知识点: 1. **前端优化**: - **代码压缩**:合并JavaScript...

    构建高性能WEB站点(完整版)

    在构建高性能Web站点的过程中,我们需要考虑许多关键因素以确保系统的可扩展性、稳定性和效率。以下是一些核心知识点,它们涵盖了分布式系统设计的基础以及优化Web性能的重要策略。 1. **负载均衡**:为了应对高...

    IIS 多站点管理 方便好用

    - 使用应用程序池,每个站点可以关联到不同的应用程序池,以便隔离资源和设置,提高性能和安全性。 - 配置错误页面,根据需要自定义404、500等错误页面,提升用户体验。 4. **安全性考虑** - 对每个站点实施安全...

    html静态页 站点

    发布时要考虑HTTP/HTTPS协议、域名设置、错误页面配置以及性能优化(如压缩资源、启用缓存等)。 8. **SEO优化**:对于希望被搜索引擎发现的静态页站点,优化SEO至关重要。这包括编写有意义的元标签(如`...

    缓存设计详解_低成本的高性能Web应用解决方案.pdf

    对于大型站点,可能需要考虑使用CDN服务,而对于小型站点,自建转向代理或使用开源解决方案(如Squid)也是可行的。混合缓存机制可用于文件下载,确保动态事务的处理,同时创建缓存映像以隔离可缓存和不可缓存对象。...

    java公交站点查询系统

    为了提高查询速度,系统可能采用了数据缓存技术,如在内存中暂存常用查询结果。此外,合理的索引设置和SQL查询优化也是提升性能的关键。 7. **异常处理**: 在开发过程中,Java的异常处理机制(try-catch-finally...

    单台web服务器如何尽可能的提高网站性能

    总的来说,优化单台Web服务器性能的核心策略是利用缓存技术。根据业务场景选择适当的缓存策略,如全页面缓存、部分数据缓存等,结合高效的运行环境和进程管理,可以显著提高网站的响应速度和并发处理能力。开发人员...

    提高系统并发方法总结

    - **软件四层交换**:利用开源工具如LVS(Linux Virtual Server)实现,成本较低,配置灵活,适合中小型企业或对成本敏感的项目。LVS通过心跳线heartbeat实现高可用性,并提供了丰富的虚拟VIP管理和配置选项,适用...

    wp-fastest-cache-premium-v1.5.7_cache_

    7. **内存缓存**:除了硬盘缓存,插件还提供内存缓存,利用服务器内存来加速动态内容的生成。 8. **白名单和黑名单**:允许用户自定义哪些页面或文件不进行缓存,避免因特定页面的特殊性导致的问题。 9. **多语言...

    一个后台完整的asp站点

    9. **性能优化**:对于企业级网站,性能优化是必不可少的,包括减少数据库查询次数、缓存常用数据、压缩和合并CSS/JS文件等。 10. **响应式设计**:随着移动设备的普及,后台系统也需要适应不同屏幕尺寸。ASP开发者...

    分布式站点间的跨域文件系统.pdf

    分布式站点间的跨域文件系统研究是针对高能物理实验中的海量数据管理所提出的技术方案,目的是解决传统网格计算在中小型站点间数据共享时面临的资源利用率低、响应时间长、部署与维护困难等问题。该研究的贡献在于...

    最新四端同步影视源码苹果cms影视四端APIcloud混合原生APP源码支持选集+秒播+缓存下载等.txt

    - **个人或小型团队**:对于想要搭建自己的视频站点的个人开发者或者小型团队来说,这套源码是一个不错的选择,因为它集成了苹果CMS和APIcloud两大利器,可以快速构建起功能完善且易于维护的平台。 - **教育机构**:...

    (word完整版)网站部署方案.doc

    为了跟踪用户状态,采用COOKIE存储,同时利用缓存服务器减轻数据库查询的压力,进一步优化系统性能。网络层同样需要千兆以太网或光纤网络的支持。 在数据库存储方面,无论是资讯主站点还是查询主站点,都需要高效的...

    Traffic Server 管理员手册

    Traffic Server可以增加互联网请求的处理能力,提升网站性能,并提高Web站点的可扩展性。它通过在本地缓存网站内容来减少对原始服务器的负载,从而在用户请求数据时提供更快的响应时间。Traffic Server还可增强网络...

    Distributed Caching with Memcached

    将页面上的每个对象单独缓存,而不是整个页面一起缓存,可以更有效地利用空间,避免因部分内容更新而导致整个页面缓存失效的问题。 Memcached的工作原理 Memcached通过在内存中存储数据,提供快速的数据访问,减轻...

    2011年大型网站架构设计方案

    - **社区型网站**:可以使用Memcached或Redis等分布式缓存系统来缓存热门帖子、用户信息等数据,提高数据访问速度。 #### 五、镜像 镜像是为了提高数据安全性和访问速度而采用的一种技术。它通常用于解决不同网络...

Global site tag (gtag.js) - Google Analytics