通过IBM Http Server(下文称为IHS)静态页面分离技术与利用WebSpere Application
Server(下文称为WAS)的动态高速缓存(Dynamic
Cache)技术优化访问页面性能。客户端访问静态页面无须与后端数据交互,减少了容器与数据源的压力,从而达到优化系统的性能。
IBM Http Server不但可以作为 WAS 的前一级 Http
请求队列的缓冲,减轻WAS的压力,还可以利用其静态页面分离方案减轻部分压力。在系统的部署或者构建的时候,我们可以把一些非重要的静态页面放在
IHS 中,当客户端发送请求访问该页面资源时,由IHS直接响应请求并将静态页面资源返回客户端,无须再经过WAS,从而达到减轻达到WAS
负担的目的。
除了IHS静态页面分离方案,另外还可以利用WAS的动态高速缓存技术,将J2EE应用中静态的(Html、Flash、Css、Js、Jpg、Gif图
片等文件)和动态的(需要与数据库、Web
Service等服务交互才能得到的数据)内容缓存到应用服务器的JVM中(如:Jsp、Servlet、*.do等请求)。在访问相关被缓存的资源时,
所有的相关输出都可以直接从JVM的内容中获得,而无须再与数据库、Web Service、静态文件等交互,从而有效地提高系统的性能。
IHS分离静态内容方案
整个操作过程主要分3步完成
n 关闭Was的File Serving Servlet服务
n 重新生成插件(Plugin-cfg.xml)
n 修改IHS配置文件并拷贝静态文件到指定的目录
关闭Was的File Serving Servlet服务
1) 在Was中部署的Web应用中分别找到2个在/WEB-INF/ 目录下面的 ibm-web-ext.xmi 文件。
参考路径:
Ø IBM/WebSphere/AppServer/profiles/节点/conf/cell/applications/应用包名/
deployments/应用包名/应用包名/WEB-INF/目录下
Ø IBM/WebSphere/AppServer/profiles/节点/应用安装部署目录/应用包名/应用包名/WEB-INF/目录下
2) 打开 ibm-web-ext.xmi 文件,找到 fileServingEnabled 属性项,把它设为 flase,
默认是ture。找不到该属性项可直接手工添加(fileServingEnabled="false")。
如:
<?xml version="1.0" encoding="UTF-8"?>
<com.ibm.ejs.models.base.extensions.webappext:WebAppExtension
xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI"
xmlns:com.ibm.ejs.models.base.extensions.webappext="webappext.xmi"
xmi:id="WebAppExtension_1260496854906"
fileServingEnabled="false">
<webApp href="WEB-INF/web.xml#WebApp_1260496854890"/>
<jspAttributes xmi:id="JSPAttribute_1260496854906"
name="reloadEnabled" value="true"/>
<jspAttributes xmi:id="JSPAttribute_1260496854907"
name="reloadInterval" value="10"/>
</com.ibm.ejs.models.base.extensions.webappext:WebAppExtension>
3) 重启Was,重启完校验配置是否生效。访问Web应用中的静态文件,如会报404错误的,这是正常现象,表示Was中的 File Serving
servle 服务功能已经被关闭了。
重新生成插件(Plugin-cfg.xml)
Ø 登陆Was控制台,环境->更新全局 Web 服务器插件配置->确定,重新生成插件。
Ø 服务器->Web服务器->选择相应的web服务器->生产播件->传播插件
Ø 检查配置文件是否正取。
打开IHS/Plugins/conf/web服务名/plugin-cfg.xml.找到UriGroup项,检查其配置。如Uri中的配置还是指定为
Name=”/*”,须注释该行配置,否则IHS会将所有的请求都返回给WAS处理,那么所有访问静态内容都会报404错误。可通过手工配置相应无须过滤
的Uri。
具体参考配置如下:
<UriGroup Name="default_host_kpiCluster_URIs">
<!--<Uri AffinityCookie="JSESSIONID"
AffinityURLIdentifier="jsessionid" Name="/*"/> -->
<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid"
Name="/*.do"/>
<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid"
Name="*.jsp*"/>
<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid"
Name="/j_security_check"/>
<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid"
Name="/ibm_security_logout"/>
</UriGroup>
修改IHS配置文件并拷贝静态文件到指定的目录
1) 在IHS的默认路径,打开 \IBM HTTP Server\conf\http.conf文件,找到如下配置:
#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "D:\IBM\HTTPServer/htdocs/en_US"
#
# This should be changed to whatever you set DocumentRoot to.
#
<Directory "D:\IBM\HTTPServer/htdocs/en_US">
可将 D:\IBM\HTTPServer/htdocs/en_US 设置为新的目录,自定义新的静态页面目录。
我们将非重要的静态文件放到E:\PageFiles\2009-12-11\目录下,配置如下:
DocumentRoot "E:\PageFiles\2009-12-11"
<Directory " E:\PageFiles\2009-12-11">
2) 把应用中的静态文件拷到 上述在Httpd.conf配置文件定义好的路径中去。
最后可根据上面的配置,将静态文件都是从Was应用中拷贝到E:\PageFiles\2009-12-11\目录中。
3) 重新启动IHS
通过页面再次访问静态页面,此时不会再出现404错误了,IHS接到请求访问静态页面内容时,会直接读取E:\PageFile\2009-12-11
\返回页面请求,通过该配置可以进一步减轻Was的压力。
启用WAS动态高速缓存
启用动态高速缓存服务同样也分为3步
n 在WAS控制台上启用动态高速缓存服务
n 为应用服务器配置 Servlet 高速缓存
n cachespec.xml配置文件
在WAS控制台上启用动态高速缓存服务:
1) 登录Was的管理控制台
2) 在管理控制台中,启用“服务器->应用程序服务器->Server1->容器服务->动态高速缓存服务”
(勾上‘在服务器启动时启用服务’)
3) 确定并保存配置
为应用服务器配置 Servlet 高速缓存:
1) 在管理控制台中,启用“服务器->应用程序服务器->Server1->Web容器设置->Web容器->
启用servlet 高速缓存
(勾上‘启用servlet 高速缓存’)
2) 确定并保存配置
cachespec.xml配置文件
1) 在应用目录下WEB-INF/下增加cachespec.xml配置文件,通过该文件指定缓存对象。
内容如下:注意红色部分,要正确指定cachespec.dtd文件位置,一般情况下是在/IBM/WebSphere/Appserver
/properties目录下。
<?xml version="1.0" ?>
<!DOCTYPE cache SYSTEM
"D:\IBM\WebSphere\AppServer\properties\cachespec.dtd">
<cache>
<cache-entry>
<class>servlet</class>
<name>index.jsp</name>
<cache-id>
<component id="*" type="parameter">
<required>false</required>
</component>
<component id="" type="pathinfo">
<required>false</required>
</component>
<component id="host" type="header">
<required>false</required>
</component>
<timeout>180</timeout>
</cache-id>
</cache-entry>
</cache>
2) 在完成前三步后,在服务器上安装Cache Monitor组件,来监控刚才配置的动态高速缓存(Dynamic Cache)是否成功运行。
发布IBM/WebSphere/AppServer/installableApps/CacheMonitor.ear,并且将该应用与要业务应用部
署在用一个Server下。
3) 部署完毕后,重启整个WAS。
4) 测试校验部署是否生效。
分别访问:
Ø http://127.0.0.1/index.jsp
Ø http://127.0.0.1/index.jsp?123
通过访问 http://127.0.0.1/cachemonitor 就可以查看到index.jsp已进行了缓存
如图所示:
以上的两种技术一种是基于WEB服务器一级别的优化,另一种则是基于Websphere应用服务器上的优化,合理的使用两种技术,可更有效的帮助应用系统
提高性能。
虽然在 WAS V6 以上的版本中,Web Container 对于 Http 请求采用了非阻塞I/O 方式,使得IHS
的这一功能作用已经非常弱化,但在大并发访问的情况下,还是建议大家使用IHS+WAS架构,使用IHS缓冲客户端请求与并且利用其得静态页面技术,直接
返回静态资源,减轻应用服务器压力;开启Was动态高速缓存,缓存一些变动较少的Jsp、Servlet等资源,进一步有效的优化系统的性能。分别将
IHS与WAS 部署到两台物理主机上,可以让在系统在性能扩展上更加灵活,利用垂直扩展优化可更有效的提高系统的性能。
分享到:
相关推荐
WebSphere性能优化_线程池的设置
【WebSphere性能优化:JVM运行效率】 在WebSphere应用服务器的性能调优过程中,Java虚拟机(JVM)的优化扮演着至关重要的角色。由于Java程序中的内存管理主要是通过垃圾收集(GC)来实现,因此,理解并优化GC的行为...
JVM(Java虚拟机)的调优是Websphere性能优化的关键步骤之一。调整JVM的主要目的是确保应用程序能够在资源约束下高效运行,避免内存溢出等问题。具体操作是在Websphere管理控制台中,通过路径“服务器->应用程序...
随着业务的发展,系统的性能优化变得越来越重要。为了更好地进行性能监控与分析,本篇将围绕WebSphere的性能监控功能进行详细介绍。 #### 二、前期准备步骤 1. **登录控制台**: - 使用自己的用户名登录到...
此外,WebSphere的性能调优涉及多个层面,包括但不限于JVM参数调整(如设置合适的堆大小、垃圾收集策略)、数据库连接池优化、线程池配置、会话缓存管理、应用服务器的并发处理能力等。这些调优策略需要根据实际工作...
WebSphere性能检测论文的设计与实现 WebSphere是IBM公司推出的一个基于Java的应用服务器,它的性能检测是非常重要的。本论文主要介绍了WebSphere性能检测的设计与实现,涵盖了应用服务器的技术发展趋势、J2EE的现状...
七、WebSphere性能优化 1. 监控与分析:使用内置的性能监视工具,如JMX(Java Management Extensions)和Tivoli Monitoring,收集性能数据并进行分析。 2. 参数调整:根据应用需求调整JVM(Java Virtual Machine)...
Websphere优化是提高应用程序性能和稳定性的关键环节,尤其对于大型企业级应用而言,合理的配置和优化可以显著...《Websphere优化文档.doc》将详述这些优化步骤和策略,帮助读者深入理解并实施Websphere的性能优化。
性能调优是确保Websphere MQ高效运行的关键环节,对于优化系统资源利用、提高服务响应速度和降低系统延迟具有重要意义。 一、理解Websphere MQ核心概念 在进行性能调优前,首先要理解Websphere MQ的基本概念,包括...
Websphere 性能分析及内存泄漏 Websphere 是一个基于 Java 的应用服务器,它提供了强大的功能来支撑高并发的应用系统。...通过合理的配置和优化,可以提高应用系统的性能和响应速度,减少资源消耗和内存泄漏。
### WebSphere性能调优知识点详解 #### 一、引言 在IT领域中,WebSphere作为一款企业级应用服务器,其稳定性和性能至关重要。尤其是在面对高并发、大数据量的应用场景时,如何有效地优化WebSphere的性能,成为了很...
WebSphere 优化策略 在 WebSphere 应用服务器中,为了提高服务器的访问速度和稳定性,需要对服务器进行优化。下面将详细介绍 WebSphere 优化策略。 1. JDBC 数据源连接池调整 在 WebSphere 应用服务器中,JDBC ...
本文将深入探讨Websphere性能调优的关键知识点,涵盖性能优化的基本概念、常见性能问题及诊断方法、性能优化的一般步骤以及性能瓶颈定位方法等内容。 ### 性能优化概述 性能优化的目标是在保证系统稳定性的前提下...
### 使用Apache JMeter进行WebSphere性能测试 #### 一、引言 随着互联网技术的不断发展,Web应用在企业中的地位日益重要。为了确保这些应用程序能够高效稳定地运行,进行性能测试变得至关重要。Apache JMeter是一...