ITPub博客

首页 > Linux操作系统 > Linux操作系统 > WebSphere Portlet性能优化

WebSphere Portlet性能优化

原创 Linux操作系统 作者:jieforest 时间:2009-05-26 09:21:43 0 删除 编辑

WebSphere Portlet性能优化

本文讨论了从缓存、数据集大小、建立器(builder)调用、会话大小、profiling等技术探讨了提高Portlet应用的速度、效率和架构的方法。

一、什么是WPF?
先说一个概念。WPF全称为WebShpere Portlet Factory,即WebSphere Portlet工厂。

二、缓存
可以使用缓存控制建立器(Cache Control Builder)在WPF缓存指定动作的输出。如果有多个用户执行同样的操作产生同样的结果,那么建立器就派上大用场了。如果每个用户返回的结果不同,服务器就得为每个用户执行相应的动作。
如果结果随着时间推移而改变,且适用于所有用户,那么还是应该考虑使用缓存控制建立器。在这种情况下,你需要设置建立器的刷新时间间隔(秒),使得建立器满足更新需求。在需要精确结果的情况下,即不能接受微小错误数据的情况,不应该使用缓存控制建立器。 
其它的几个WPF建立器也内置了缓存功能。例如,服务提供建立器(Service Operation Builder)就有所谓的结果缓存(Result Caching),与缓存控制建立器相似,它缓存操作的结果。的缓存结果的操作(这实际上也同样的事情作为缓存控制建设者指向服务业务呼叫) 。同样,查询表建立器(Lookup Table Builder)有一个刷新间隔(秒)输入,可配置什么时间开始更新查找表的内容。
可使用log4j.logger.bowstreet.system.server.logging.serverStats属性来分析应用程序的缓存使用情况。默认情况下,属性输出写入到日志目录的serverStats.txt文件。

三、数据集大小
检索大量的数据集可能比较缓慢,而且它跟内存大小密切相关,特别是数据没有缓存且并发请求很多。当然,如果数据检索的性能存在问题,可以在数据检索方法使用缓存控制建立器,还有一些其他的方法也能改进数据检索的性能。例如,可以通过减少返回数据集的尺寸来提高数据检索的性能。换言之,应该设计适合的接口,以限制返回的数据,而不是让用户来筛选不想要的数据。 
如果这样做了仍然存在系统性能问题,就应该考虑使用数据分页了。使用数据分页,每次只取回一小块数据,可大大加快应用程序。

四、建立器调用
一般情况而言,模型中的建立器越多,系统资源则越紧张。一些大型模型(可能包含50以上的建立器)肯定能降低应用程序的速度,并使得它们难以维护。为防止发生这种情况,可以考虑尽可能分隔建立器到不同的模型下,并使用后端进程来代替建立器的功能。比如说,最好是运行后端的Java方法来持久化更改的新记录,而不是直接从前端运行WPF的方法来实现。

五、会话的大小
用户会话的大小可造成性能不佳,需要做一些事情,以防止会话尺寸失控。
首先是减少使用对每个用户存储大量不同值的变量。如果变量实际上是指常数,可标记变量为“共享且只读”,以防止每个用户拥有自己的变量副本。 
另外,考虑标记变量的请求范围,而不是会议的范围,以防止变量保存到会话中。如果变量的数据不需要跨越多个请求,那么这非常有用。但是,如果对于所有用户,变量数据均相同,那么你应该使用“共享只读”选项。最显著的例子是使用XML变量。请注意,如果XML难以被建立器硬编码,那么不应该对用于多个请求的XML变量使用请求范围,因为这可能导致XML数据创建多个副本。如果XML没有被建立器硬编码,且每个请求均动态地检索数据和抛弃数据,那么使用请求范围就很有效了。
在设计WPF应用程序,减少会话的大小时,还应该考虑profiling。如果设置的用户变量基于profiles,那么可以在给定的profile下给所有用户共享变量。

六、会话跟踪
如果你关心会话的大小,可以使用会话跟踪来查看实际的会话有多大。通过打开文件bowstreet.orioertues文件,并修改bowstreet.diagnostic.trace.enabled属性为True。然后把注释符去掉,并设置bowstreet.diagnostic.trace.sessionSize.interval属性为1。这使得会话信息可以记录到sessionsize.csv文件中,记录时间间隔为1秒,且每个请求都会记录日志信息。
会话跟踪需要注意几件事:
(1)长期运行会话跟踪对系统性能有影响。
尤其是sessionSize.interval设置为1秒时,会话日志信息非常多,影响性能。
要关闭会话跟踪,可以设置bowstreet.diagnostic.trace.enabled属性为false,并重启应用服务器。
(2)在运行会话跟踪时为确保准确度量,最好采用单用户访问受跟踪的应用。
在运行会话跟踪后,可以检查sessionsize.csv文件的内容。

七、Profiling
Profiling机制创建了单独的Web应用,该Web应用基于你设置的profiles的值。可以把profiles理解成一种定制、一种针对目标的配置,或者说类似于数据库表的视图。因为大家都知道,数据库表视图是虚表,它基于物理存储的数据库表,并根据目标的需要生成了一种表视图。
总之,应该避免为每个不同的用户设置创建单独的Web应用,因为它对资源的消耗很大。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/301743/viewspace-604165/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-04-23

  • 博文量
    443
  • 访问量
    515285