- 1、本文档共20页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
服务器性能优化
性能优化解决方案
大型门户网站系统10万人 一个小时内,会跟数据库10,数据库瓶颈,每个数据库最大连接数(socket)2000
在某一段短暂时间内1万人,会跟数据库发生1万次交互,2000-8000【30秒】5000 3000
12000个用户很快就可以到达页面
25000个访问页面比较慢
33000提示超时/服务器出现例外
解决方案:
页面静态化 html解决方案:使用模板技术(velocity【9-10】、Freemarket【5-6】)
html
body onload=”$get(/data/count.do,”{productid:50}”)”
!- - 记录页面访问次数--(
img src=”/data/count.do?productid=50” width=”0” height=”0” /
/html
缓存技术(当数据更新较快,几秒钟更新一次,或者需要实时反映数据变化,或者页面有多种风格,不便于生成静态页面)
页面缓存(View,html代码)缺点:不能做到实时更新,优点:比二级缓存性能更高
二级缓存(mode/业务层,domain对象)优点:实时更新
JPA二级缓存
JPA关于hibernate的二级缓存配置方案:
第一步:导入ehcache的ehcache.jar文件(hibernate中有)
第二步:在persistence.xml中添加下面配置项:
property name=“vider_class”
value=“org.hibernate.cache.EhCacheProvider”/
property name=”hibernate.cache.use_second_level_cache” value=”true”/
property name=”hibernate.cache.use_query_cache” value=”false” /
第三步:在实体类上面标注@Cache,
如@Cache(region=”cn.itcast.bean.Person”,usage=CacheConcurrencyStrategy.READ_WRITE)
第四步:在classpath下放入ehcache.xml,内容模板如下:
?xml version=1.0 encoding=UTF-8?
ehcache
diskStore path=D:\cache/
!-- 设置缓存默认数据的过期策略 --
defaultCache
maxElementsInMemory=”1000”
eternal=”false”
overflowToDisk=”true”
timeToIdleSeconds=”120”
timeToLiveSeconds=”180”
diskPersistent=”false”
diskExpiryThreadIntervalSeconds=”60” /
!-- 设定具体的命名缓存的数据过期策略,每个命名缓存代表一个缓存区域,每个缓存区域有各自的数据过期策略。
命名缓存机制使得用户可以在每个类以及每个类的集合的粒度上设置数据过期策略。
name:缓存的名字,取值为累的全限定名或类的集合的名字
maxElementsInMemory:设置基于内存的缓存中可存放得对象的最大数目
eternal:设置对象是否为永久,若为ture,将忽略timeToIdleSeconds和timeToLiveSeconds属性,默认值(false)
timeToIdleSeconds:设置对象空闲最长时间,超过时间就过期,EHCache将从缓存中清除,如果为0,表示对象可以无限地处于空闲状态
timeToLiveSeconds:设置对象生存最长时间,超过时间就过期,EHCache将从缓存中清除。如果为0,表示对象可以无限地存在于缓存中
overflowToDisk:设置基于内存的缓存中的对象数目达到上限后,是否把溢出的对象写到硬盘的缓存中
--
cache name=”cn.itcast.bean.Person”
maxElementsInMemory=”100” eternal=”false”
overflowToDisk=”true”
timeToIdleSeconds=”300”
timeToLiveSeconds=”600”
diskPersisitent=”false” /
/ehcache
注意:cache节点中的name属性值要和@Cache(region=”cn.itcast.bean.Person”)中的region相同
ehcache.xml文件中各项属性说明如下:
defaultCache节点为缺省的缓存策略
maxElementsinMemory内存中最大允
文档评论(0)