WebSphere 应用服务器性能调优工具5

String node 


					String server 


					String name 


					double throughput 


					double jdbcThroughput 


					double avgResponseTime 


					double avgJdbcResponseTime 


					double avgWaitTime 


					long errorCount 


					double prepStmtCacheDiscardCount 


					long poolSize 


					long maxPoolSize 


					long minPoolSize 


					long usedPool 

 


					EjbEvent: 


					String node 


					String server 


					String beanName 


					String jarName 


					String methodName 


					String beanType 


					double throughput 


					double avgResponseTime 


					long concurrentInvocations 

 


					JcaPoolEvent: 


					String node 


					String server 


					String name 


					double throughput 


					double avgResponseTime 


					double avgWaitTime 


					long errorCount 


					long maxUsagePercentage 


					long poolSize 


					long maxPoolSize 


					long minPoolSize 


					long usedPool 

 


					PerformanceEvent: 


					double changeRateOfServletResponseTime 


					double changeRateOfServletThroughput 


					double changeRateOfWebPoolUsed 

 


					RunTimeEvent: 


					long cpuUsage 


					long heapSize 


					long maxHeapSize 


					long usedMemory 

 


					ProxyEvent: 


					double throughput 


					double proxiedThroughput 


					double localThroughput 


					double responseTime 


					double serverResponseTime 


					long outboundConnectionCount 


					long activeOutboundConnectionCount 


					long failedRequestCount 


					long cacheHitCountValidated 


					long cacheHitCountUnvalidated 


					long cacheMissCount 

 


					ServletEvent: 


					String name 


					String appName 


					double throughput 


					double avgResponseTime 


					long errorCount 


					long webPoolUsedSize 


					String server 


					String node 

 


					SessionEvent: 


					String name 


					long liveCount 


					long avgLifeTime 


					long noRoomForNewSessionCount 


					long affinityBreakCount 


					long timeoutInvalidationCount 


					long activateNonExistSessionCount 


					long cacheDiscardCount 


					String server 


					String node 

 


					ThreadPoolEvent: 


					String poolName ; 


					long maxSize 


					long minSize 


					long poolUsed 


					long poolSize 


					long declaredThreadHungCount 


					long clearedThreadHangCount 


					long concurrentHungThreadCount 


					String server 


					String node 

 


					TransactionEvent: 


					double throughput 


					double avgResponseTime 


					double globalTranResponseTime 


					double localTranResponseTime 


					double rolledbackPercentage 


					long rolledbackCount 


					long globalTimeoutCount 


					long localTimeoutCount

RunTimeEvent 为例,它包含的性能参数有 long cpuUsage long heapSize long maxHeapSize long usedMemory 。所以此规则可以对这四项指标进行监控和预警。从后面的代码中我们可以清晰地看到,规则通过语句“RunTimeEvent($cpuUsage:cpuUsage,$usedMemory:usedMemory,$maxHeapSize:maxHeapSize);”对这几个变量进行了赋值,然后分别对 CPU 和内存的使用情况作了判断并采取了相应的预警行为。这些预警

行为将以警告(Alert)的形式在趋势视图界面中展现出来,同时也会在数据视图中的 Alert 页面出现,共分析和参考。如下图所示。

20 规则 —— 警告



规则编辑器还提供了语法检查功能,来确保您的自定义规则可以正常运行。只需点击规则编辑器左上角的语法检查按钮即可。如果有规则中存在语法错误,编辑器将给与提示。如下图所示。

21. 规则编辑器 —— 语法检查


当通过语法检查以后,您就可以通过点击左上角的保存按钮来使您的规则生效。此规则一旦生效,在以后的监控过程中就会对您所定义的性能参数进行监控和预警,并执行相应的行为。

总之,规则引擎模块为 PTT 工具提供了一个用户可以扩展和编程的接口,这可以让 PTT 工具的监控结果更加符合用户的环境和需求。因为没有一个规则可以放之四海而皆准,所以用户越了解自己的应用环境,指定符合自己环境的规则,PTT 工具就可以越好地产生更加贴近实际环境的预警,从而在第一时间捕获异常。

WebSphere Application Server Performance Tuning Toolkit (PTT) 不但可以对服务器进行性能监控,还可以快速地帮助用户进行服务器调优和故障诊断,并对监控的数据进行整体的总结和生成报表。接下来我们就通过实例展示如何使用 PTT 工具进行性能调优。

调整参数

环境搭建好后,我们需要对服务器进行调优使服务器达到最优的性能。PTT 工具提供两种服务器调优的方式:通过调整参数页面和执行调优脚本。

调整参数页面是一个比较直观的列表页面,它可以帮助用户检查和更新服务器的 JVMWeb 容器、线程池等设置。在这个页面中,用户不但可以修改单个服务器的配置,还可以同时修改所有服务器的配置,从而减少用户重复登录服务器控制台页面的时间。

为了节省启动时间,PTT 工具默认不会读取服务器的参数配置。用户可以在 Tuning Parameters 页面的右上角点击“Retrieve Config from server”按钮抽取指定的服务器配置。抽取成功后,页面下方的服务器表格将显示服务器的详细配置信息。当然,用户也可以选中所有服务器同时抽取。如图 1 所示:

1. 抽取服务器配置


您可以在调整参数页面中修改和查看以下信息:

目标服务器的服务器名称和节点名称;JVM 的初始 HeapSize、最大 HeapSizeJVM 参数和是否启用 VerboseGCWeb 容器池的最小和最大值、Session 超时时间;Orb 线程池的最小和最大值;JMS 线程池的最小和最大值;默认线程池的最小和最大值;HTTS HTTPS Keep Alive 值和最大请求数。

在抽取服务器配置之后,用户就可以更新服务器的配置了,被修改的参数值将被显示成红色。点击右上角的“Update Config from server”按钮。如图 2 所示:

2. 更新服务器配置


这里您可以放心地修改每一个参数,因为,PTT 工具会帮助我们检测修改值是否有效。比如是否是数值,数值是否大于零。如果修改类型错误,PTT 工具会报出相应的错误提示,确保用户修改的服务器参数都是正确无误的。如图 3 所示:

3. 修改配置错误提示


利用调整参数页面进行服务器调优的好处是快速、准确。当服务器数量非常多的时候,一个页面就可以同时修改多项参数,并提供正确性检测。但调整参数页面也有一些不足,就是用户只能调整一些规定好的参数,对于一些特定的参数和较为复杂的调优设置,调整参数页面就做不到了。

不过没关系,PTT 工具还提供另一种调优方式,我们可以通过执行 wsadmin 脚本的方式进行特殊或者复杂的配置调优。脚本页面位于 PTT 工具的左下角,它和拓扑结构页面位于同一个标签,点击不同的标签可以相互切换。如图 4 所示:

4. 切换脚本页面


脚本页面提供三个默认的调优脚本:manageResource.py 是用来管理资源的,tuneResource.py 是用来调优资源的,如调整连接数或数据源等,tuneServer.py 是用来调整服务器参数的。在 tuneServer.py PTT 给用户提供了许多较为普遍的调优方案,它可以根据您的操作系统和拓扑结构对您的环境进行细致的调优,如清单 1 所示:

清单 1. JVM 参数调优

os = registry.getProperty(“os.name”)

if (os.find(“Windows”) > -1):

genericArgs = genericArgs + IBMJDKoptions

elif (os.find(“AIX”) > -1):

genericArgs = genericArgs + IBMJDKoptions

elif (os.find(“Linux”) > -1):

genericArgs = genericArgs + IBMJDKoptions

elif (os.find(“SunOS”) > -1):

genericArgs = genericArgs + SUNJDKoptions

elif (os.find(“HP-UX”) > -1):

genericArgs = genericArgs + HPJDKoptions

elif (os.find(“z/OS”) > -1):

genericArgs = genericArgs + IBMJDKoptions

minHeap = 768

maxHeap = 768

elif (os.find(“OS/400”) > -1):

genericArgs = genericArgs + ISerisJDKoptions

maxHeap = 0

用户也可以打开此脚本进行自定制的修改。右键脚本选择 Run Script 执行。在 Console 页面中同样可以看到执行过程和结果。如图 5-6 所示:

5. 执行调优脚本

以下文章点击率最高

Loading…

     

如果这文章对你有帮助,请扫左上角微信支付-支付宝,给于打赏,以助博客运营

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注