Websphere 优化文档

WAS配置概要
描述
参数
缺省值
设置原则
JVM堆栈
服务器 > 应用程序服务 > server1 > Java 虚拟机

最小值为总内存1/8,最大值为总内存1/23/4
连接池
资源 > JDBC提供程序 > (JDBC提供程序名) > 数据源> (数据源名) > 连接池属性
最小连接数:10
最大连接数:50

通过TPV监控连接池的大小变化曲线设置
语句高速缓存
资源 > JDBC提供程序 > (JDBC提供程序名) > 数据源> (数据源名) > WebSphere Application Server 数据源属性 > 语句高速缓存大小
10
比如实际情况下CPU利用率很高,并且表明有瓶颈,performance advisors报警提示prepare statement缓存丢弃率较高,这说明默认的值(10)太小,需要增加该值大小以提高吞吐
JMS
资源JMS提供程序缺省消息传递JMS激活规范激活规范名
最大批次大小:无
最大并发端点数:无
根据实际情况分析
Web容器线程池
服务器 > 应用程序服务器 > (服务器名) >
线程池 > WebContainer

最小大小:10
最大大小:50

通过TPV监控Web容器线程池最大值(在可接受的相应时间范围内),根据此值进行设置
EJB缓存
服务器 > 应用程序服务器 > (服务器名) > EJB告诉缓存设置 > EJB缓存设置 > 高速缓存大小
高速缓存大小:2053
清除时间间隔:3000
比如通过TPV监控发现ejbStore()有很高的调用率并且CPU利用率很低,可以基于期望的最大的活动的EJB实例设置该值

Web 服务器调整参数
WebSphere Application Server 提供用于几个 Web 服务器品牌和版本的插件。每个 Web 服务器操作系统组合都有特定的调整参数,这些参数可影响应用程序性能。
•        IBM HTTP Server
IBM HTTP Server V6.0 是多进程、多线程的服务器。
o        访问日志
        描述:收集所有入局 HTTP 请求。记录日志会降低性能,因为 IO 操作开销导致日志在短时间内显著增加。
        如何查看或设置:
1.        打开 IBM HTTP Server httpd.conf 文件,它位于目录 IBM_HTTP_Server_root_directory/conf 中。
2.        搜索含有文本 CustomLog 的行。
3.        通过在行首放置 # 来注释掉此行。
4.        保存并关闭 httpd.conf 文件。
5.        停止并重新启动 IBM HTTP Server。
        缺省值:启用记录每个入局 HTTP 请求。
        建议值:禁用访问日志。
o        MaxClients
        描述:MaxClients 伪指令控制 Web 服务器在任何时候可以提供的最大同步连接数或用户数。使用处于峰值时,如果您的 Web 服务器需要立即支持 200 个活动用户,则应该把 MaxClients 设置为 220(200 加负载额外增长的 10%)。把 MaxClients 设置得太低会导致有些用户认为 Web 服务器不响应。您在您的 Web 服务器中应该有足够的 RAM 来支持每个已连接的客户机。对于 Unix 上的 IBM HTTP Server V6.0,您应该分配大约 1.5MB MaxClients RAM 供 IBM HTTP Server 使用。对于 Windows 上的 IBM HTTP Server V6.0,您应该分配大约 300KB MaxClients RAM 供 IBM HTTP Server 使用。有些第三方模块会显著地增加每台已连接客户机使用的 RAM 数。
        如何查看或设置:编辑 IBM HTTP Server httpd.conf 文件中的 MaxClients 伪指令,该文件位于目录 IBM_HTTP_Server_root_directory/conf 中。
        缺省值:150
        建议值:通常同步连接到您的 Web 服务器的最大用户数,附加缓冲区另外的 10%。注:KeepAliveTimeout 设置会影响用户连接到 Web 服务器的时间长短。
o        MinSpareServers、MaxSpareServers 和 StartServers
        描述:预分配和维护指定的进程数,以便当负载接近指定的进程数时创建和销毁不多的进程。指定相似的值会减少用于创建和销毁 HTTPD 进程的 CPU 使用情况。等待 IBM HTTP Server 启动更多服务器(以便它可处理 HTTP 请求)时调整此参数是不可接受的。
        如何查看或设置:编辑 httpd.conf 文件中的 MinSpareServers、MaxSpareServers 和 StartServers 伪指令,此文件位于 IBM_HTTP_Server_root_directory/conf 目录中。
        缺省值:MinSpareServers 5、MaxSpareServers 10、StartServers 5
        建议值:要获得最佳性能,为 MinSpareServers 和 StartServers 参数指定相同的值。如果 MaxSpareServers 设置成小于 MinSpareServers,那么 IBM HTTP Server 复位 MaxSpareServer=MinSpareServer+1。把 StartServers 设置过高可导致内存不足时的交换,从而降低性能。
o        ListenBackLog
        描述:设置暂挂连接队列的长度。当几个客户机请求连接到 IBM HTTP Server 并使用了所有线程时,有一个队列保留其他客户机请求。然而,如果您使用 Windows 上的 IBM HTTP Server V6.0 的缺省快速响应高速缓存加速器(FRCA)功能,则因为 FRCA 有其自己的内部队列而不使用 ListenBackLog 伪指令。
        如何查看或设置:对于非 FRCA:编辑 IBM HTTP Server httpd.conf 文件。然后,添加或查看 ListenBackLog 伪指令。
        缺省值:对于 HTTP Server V6.0:1024 启用了 FRCA,511 禁用了 FRCA
        建议值:使用缺省值。
•        IBM HTTP Server - Linux
o        MaxRequestsPerChild
        描述:设置单个子服务器进程处理的请求数的限制。在请求数达到为 MaxRequestsPerChild 参数设置的值后,子进程死亡。当销毁和创建子进程时调整此参数会降低您的 Web 服务器性能。
        如何查看或设置:
1.        编辑 IBM HTTP server httpd.conf 文件,它位于 IBM_HTTP_Server_root_directory/conf 目录中。
2.        更改参数的值。
3.        保存更改并重新启动 IBM HTTP server。
        缺省值:500
        建议值:通常应该设置为 0。如果观察到子内存使用情况随时间的过去稳定地增长,则非零设置会有用。有时在 IBM HTTP Server 使用的第三方模块和各种 OS 运行时库中会观察到内存泄漏。
•        IBM HTTP Server - Windows 2000 和 Windows 2003
o        ThreadsPerChild
        描述:设置 IBM HTTP Server 中任何时刻运行的并发线程数。
        如何查看或设置:编辑 IBM HTTP Server 文件(httpd.conf 文件),它位于目录 IBM_HTTP_Server_root_directory/conf 中。更改参数的值。保存更改并重新启动 IBM HTTP Server。
有两种在欠载状态下查找使用多少线程的方法:
1.        使用 Windows 2000 和 Windows 2003 性能监视器,它位于桌面“开始”菜单下:
a.        右键单击桌面上的状态栏。单击任务管理器。
b.        选择进程选项卡。
c.        单击查看 > 选择列。
d.        选择线程计数。
e.        单击确定。
进程选项卡在线程列名下显示每个进程的线程数(包括 Apache)。
2.        使用 IBM HTTP Server 服务器状态(此选项可在所有平台上使用,并不仅限 Windows):
.        按如下所示编辑 IBM HTTP Server httpd.conf 文件:从以下各行除去注释字符 #:#LoadModule status_module、modules/ApacheModuleStatus.dll、#、#SetHandler server-status 和 #
a.        保存更改并重新启动 IBM HTTP Server。
b.        在 Web 浏览器中,转至 URL:http://yourhost/server-status。换句话说,
c.        单击重新装入以更新状态。
d.        (可选的)如果浏览器支持刷新,转至 http://your_host/server-status?refresh=5 以每五秒刷新一次。您将看到当前处理 45 个空闲服务器的五个请求。
        缺省值:对于 IBM HTTP Server V6.0 为 250。
        建议值:设置该值以避免瓶颈,它允许有恰好足够的流量通过应用程序服务器。
o        Web 服务器配置重新装入时间间隔
        描述:跟踪有关 WebSphere Application Server 资源的配置信息的变化。Web 服务器需要了解一些此类信息,如指向 WebSphere Application Server 资源的统一资源标识(URI)。此配置数据是在由此参数指定的时间间隔中通过 WebSphere Application Server 插件推进到 Web 服务器中的。定期更新添加新的 servlet 定义,而无须重新启动任何 WebSphere Application Server 服务器。然而,动态重新生成此类配置信息在性能方面的代价很高。在稳定的生产环境中调整此参数。
        如何查看或设置:使用“刷新配置时间间隔 Web 服务器插件”属性更改此参数的当前设置。在管理控制台中,单击服务器 > Web 服务器 > Web_server_name > 插件属性。
        缺省值:缺省重新装入时间间隔为 60 秒。
        建议值:增加值的重新装入间隔,该值表示一个在 servlet 更新和 Web 服务器更新间的可接受的等待时间。

连接池设置
管理控制台页面可与一系列资源类型通用;例如,JDBC 数据源和 JMS 队列连接工厂。要查看此页面,根据资源的类型决定路径,但通常选择资源提供者的实例,然后选择资源类型的实例,并单击连接池。例如:单击资源 > JDBC 提供者 > JDBC_provider > 数据源 > data_source > 连接池。
“配置”选项卡
连接超时
指定时间间隔(以秒为单位),这个时间间隔过后连接请求超时并抛出 ConnectionWaitTimeoutException。
此值表明空闲池中没有可用连接或无法创建新连接(通常这是因为特定连接池中的连接数达到了最大值)时,请求连接所等待的秒数。例如,如果连接超时设置为 300,并且最大连接数都在使用,则池管理器等待 300 秒以使物理连接可供使用。如果物理连接在这段时间内不可用,则池管理器将产生 ConnectionWaitTimeout 异常。通常,重试 getConnection() 方法没有用;如果需要更长的等待时间,您应该增加连接超时设置值。如果应用程序捕捉到 ConnectionWaitTimeout 异常,那么管理员应该查看需要的应用程序连接池用法,并相应地调整连接池和数据库。
如果连接超时设置为 0,则在连接变为可用之前,只要需要池管理器将一直等下去。此情况发生在应用程序完成事务并将连接返回到池的时候,或发生在连接数降到最大连接值之下(允许创建新的物理连接)的时候。
如果最大连接数设置为 0(允许无限多个物理连接数),则将忽略连接超时值。
数据类型        整型
单位        秒
缺省值        180
范围        0 到最大整数
最大连接数
指定您可以在此池中创建的最大物理连接数。
这些是到后端资源的物理连接。一旦达到此数,就不再创建新的物理连接,并且在当前使用的物理连接返回给池或产生 ConnectionWaitTimeout 异常之前,请求者将一直等下去。
例如,如果最大连接数的值设置为 5,并已使用了 5 个物理连接,则池管理器等待连接超时中指定的时间,直至物理连接为空闲。
如果最大连接数设置为 0,则允许连接池无限制地增长。这也有导致连接超时值被忽略的副作用。
如果多个单机应用程序服务器使用同一数据源,则每个应用程序服务器有一个池。如果使用克隆,则对于每个克隆,存在一个数据池。配置数据库最大连接数时,了解数据池的个数很重要。
可使用 Tivoli Performance Viewer 查找池中最优连接数。如果并发等待者的数目大于 0,但是 CPU 负载未接近 100%,则考虑增加连接池大小。如果使用百分比值一直低于正常工作负载,则考虑减少池中的连接数。
数据类型        整型
缺省值        10
范围        0 到最大整数
最小连接数
指定要保持的最小物理连接数。
如果连接池的大小处于最小连接池大小或比它还小,则未使用超时线程不废弃物理连接。但是,池不会只为了确保维持最小连接池大小而创建连接。同样,如果您设置时效超时值,则废弃时效到期的连接,而无论最小池大小设置是什么。。
数据类型        整型
缺省值        1
范围        0 到最大整数
收集时间
指定运行池维护线程之间的时间间隔(以秒为单位)。
例如,如果“收集时间”设置为 60,则池维护线程每 60 秒运行一次。收集时间时间间隔影响未使用超时和时效超时设置的准确度。时间间隔越小,准确度越大。如果启用了池维护线程,则您应该将“收集时间”值设置为小于“未使用超时”和“时效超时”的值。当池维护线程运行时,它废弃所有未使用的时间长于“未使用超时”中指定的时间值的连接,直到它到达最小连接数中指定的连接数为止。池维护线程还废弃所有活动时间长于“时效超时”中指定的时间值的连接。
收集时间间隔还影响性能。更短的时间间隔意味着池维护线程将更频繁的运行并降低性能。
要禁用池维护线程,“收集时间”设置为 0,或“未使用超时”和“时效超时”都设置为 0。禁用池维护线程的建议方法是将“收集时间”设置为 0,在这种情况下,将忽略“未使用超时”和“时效超时”。但是,如果“未使用超时”和“时效超时”都设置为 0,则池维护线程将运行,但是仅废弃由于非零超时值引起的超时的物理连接。
数据类型        整型
单位        秒
缺省值        180
范围        0 到最大整数
未使用超时
指定废弃未使用的或空闲连接后的时间间隔,以秒为单位。
为了优化性能,设置“未使用超时”值高于“收集超时”值。如果当前连接数超过最小连接数设置,则仅废弃未使用的物理连接。例如,如果未使用超时值设置为 120,并且启用池维护线程(收集时间不是 0),则将废弃两分钟没有使用的任何物理连接。注意,这个超时和性能的准确度都受到“收集时间”值的影响。请参阅“收集时间”以获取更多信息。
数据类型        整型
单位        秒
缺省值        1800
范围        0 到最大整数
时效超时
指定废弃物理连接前的时间间隔(以秒为单位)。
将时效超时设置为 0 支持活动的物理连接无限制地保留在池中。为了优化性能,设置“时效超时”值高于“收集超时”值。例如,如果“时效超时”设置为 1200,并且“收集时间”不是 0,则从池中废弃已经存在 1200 秒(20 分钟)的所有物理连接。注意,这个超时和性能的准确度都受到“收集时间”值的影响。请参阅“收集时间”以获取更多信息。
数据类型        整型
单位        秒
缺省值        0
范围        0 到最大整数


数据源设置
创建与 JDBC 提供者关联的数据源。将数据源想象成一组必须用于管理应用程序和数据库间事务的共享连接。
要查看此管理控制台页面,单击资源 > JDBC 提供者 > JDBC_provider > 数据源 > 新建(如果要创建新的数据源)或者 > data_source(如果您要查看建立的数据源)。
注: 如果应用程序使用 Enterprise JavaBean(EJB)1.1 或 Java Servlet 2.2 模块,则您必须使用数据源(V4) > data_source 控制台页面。
“配置”选项卡
名称
指定数据源的显示名称。
此名称的有效字符包括字母和数字,但并不包含多数特殊字符。例如,您可将该字段设置为测试数据源。但任何以句点(•)开头或包含特殊字符(\ / , : ; " * ? < > | = + & % ' `)的名称都不是有效名称。
JNDI 名称
指定 Java 命名和目录接口(JNDI)名称。
分布式计算环境经常使用命名和目录服务来获取共享组件和资源。命名和目录服务将名称与位置、服务、信息和资源关联起来。
命名服务提供名称到对象映射。目录服务提供对象的信息和定位那些对象所需的搜索工具。
有很多命名和目录服务实施,它们的接口也各不相同。JNDI 提供用于访问各种命名和目录服务的公共接口。
例如,您可使用名称 jdbc/markSection。
如果您将此字段保留为空白,则将从数据源的名称生成一个 JNDI 名称。例如,markSection 的数据源名称生成 jdbc/markSection 的 JNDI 名称。
设置此值后,将它保存并重新启动服务器,当您运行转储名称空间工具时,您可以看到此字符串。
容器管理的持久性
指定此数据源是否用于 Enterprise bean 的容器管理的持久性。
如果选取此字段,则为关系资源适配器创建与此数据源相应的 CMP 连接器工厂。
数据类型        复选框
缺省        启用(字段已选取。)
描述
指定资源的文本描述。
数据类型        字符串
类别
指定可用于分类或分组资源的类别字符串。
数据类型        字符串
数据存储器 helper 类名
指定 DataStoreHelper 实施类的名称,该类可扩展您所选的 JDBC 驱动程序实施类的能力以执行数据库特定的功能。
WebSphere Application Server 为每个它所支持的 JDBC 提供者驱动程序提供一组 DataStoreHelper 实施类。这些实施类在包 com.ibm.websphere.rsadapter 中。例如,如果 JDBC 提供者是 DB2,则缺省 DataStoreHelper 类是 com.ibm.websphere.rsadapter.DB2DataStoreHelper。然而,您正在查看的管理控制台页面可能使多个 DataStoreHelper 类名在下拉列表中可用;确保选择一个您的数据库配置所需的类名。否则,您的应用程序可能不能正确地运行。如果您要使用不在下拉列表中显示的 DataStoreHelper,则选择指定用户定义的 DataStoreHelper 并输入标准类名。请参阅信息中心主题“示例:开发您自己的 DataStoreHelper 类。”
数据类型        下拉列表或字符串(如果选择了用户定义的 DataStoreHelper)
重要数据源属性
这些属性特定于与您所选的 JDBC 提供者相关的数据源。它们是数据源所需的,或对于数据源特别有用。您可以在信息中心中的主题“特定于供应商的数据源最小必需设置”中找到所有支持的 JDBC 提供者所需的完整属性列表。
组件管理的认证别名
此别名用于运行时的数据库认证。
仅当应用程序资源引用在使用 res-auth = Application 时才使用组件管理的认证别名。
如果您的数据库(例如 Cloudscape)不支持用户标识和密码,则不要在“组件管理的认证别名”字段或“容器管理的认证别名”字段中设置别名。否则,您在系统日志中会看到警告消息,表明用户和密码不是有效属性。(此消息仅为警告消息;创建数据源仍成功。)
如果您未设置别名(组件管理的或其他),而您的数据库要求用户标识和密码获取连接,则您在运行时期间接收到异常。
数据类型        下拉列表
容器管理的认证别名(不推荐)
为到资源的容器管理的登录指定认证数据(转换到用户标识和密码的字符串路径)。
注: 从 WebSphere Application Server V6.0 开始,对于 res-auth=Container 的组件,容器管理的认证别名由部署时有关资源引用映射的登录配置规范来取代。
从安全性 > JAAS 配置 > J2C 认证数据 下定义的别名中选择。
要定义还未出现在选取列表中的新别名:
•        单击应用陈列“相关项”。
•        单击 J2C 认证数据条目。
•        定义别名。
•        单击位于 J2C 认证数据条目页面顶部的连接工厂名称,返回到连接工厂页面。
•        选择别名。
数据类型        下拉列表
映射配置别名(不推荐)
允许用户从安全性 > JAAS 配置 > 应用程序登录配置列表中进行选择。
注: 从 WebSphere Application Server V6.0 开始,对于 res-auth=Container 的组件,映射配置别名由部署时有关资源引用映射的登录配置规范来取代。
DefaultPrincipalMapping JAAS 配置将认证别名映射到用户标识和密码。您可定义和使用其他映射配置。
数据类型        下拉列表
用于 XA 恢复的认证别名
此可选字段用于指定应该在 XA 恢复处理期间使用的认证别名。
如果资源适配器不支持 XA 事务,则不会显示此字段。缺省值将来自所选的应用程序认证别名(如果指定)。
使用组件管理的认证别名
选择此单选按钮指定在 XA 恢复时使用为组件管理的认证设置的别名。
数据类型        单选按钮
指定:
选择此单选按钮使您能从已配置别名的下拉列表中选择认证别名。
数据类型        单选按钮

线程池设置
使用此页面配置应用程序服务器使用的线程组。请求通过任何 HTTP 传输通道或 HTTP 传输方法发送到服务器。线程池使服务器的组件能重用线程以消除在运行时创建新线程的需要。创建新的线程消耗的时间和资源。
要查看此管理控制台页面,单击服务器 > 应用程序服务器 > server_name > 线程池,然后选择线程池。(您可以通过多个导航路由获取此页面。)
“配置”选项卡
最小大小
指定池中允许的最小线程数。
数据类型        整型
缺省值        10
最大大小
指定池中允许的最大线程数。
如果 Tivoli Performance Viewer 显示最大百分比度量值以始终保持在双精度数字,则考虑增加最大大小。最大百分比度量值表明使用已配置线程的时间数。如果存在多台并发客户机连接到服务器端 ORB,增加大小以支持最多达 1000 台客户机。
数据类型        整型
缺省值        50
建议        50(Linux 系统上 25 个)
线程不活动超时
指定在收回线程之前应该经过的不活动的毫秒数。为 0 的值表明不等待而负值(小于 0)意味着永远等待。
注: 管理控制台不允许您将不活动超时设置为负数。要执行该操作,您必须直接在 server.xml 文件中修改值。
数据类型        整型
单位        毫秒
缺省值        3500
允许线程分配超过最大线程大小
指定线程数是否能增加至超过为线程池配置的最大大小。
数据类型        布尔
缺省值        未启用(false)

你可能感兴趣的:([随笔分类]Websphere,MQ)