was的性能优化

合集下载

WAS使用方法范文

WAS使用方法范文

WAS使用方法范文WAS(WebSphere Application Server)是由IBM开发的一种Java应用程序服务器。

WAS提供了一个运行和管理企业级Java应用程序的环境,能够用于构建和部署Web应用程序、企业服务总线等。

WAS以其稳定性、可靠性和可伸缩性而闻名,被广泛应用于大型企业和机构。

下面是WAS的使用方法:1.安装WAS:2.配置WAS:安装完成后,需要进行一些配置以确保WAS的正常运行。

配置包括设置服务器的端口号、创建所需的数据源和JDBC适配器等。

通过WAS的管理控制台可以方便地进行这些配置。

3.创建应用程序:使用WAS的开发工具(如IBM的Rational Application Developer)可以创建JavaEE应用程序,并将其部署到WAS上。

WAS支持多种应用程序类型,包括JSP、Servlet、EJB、JMS等。

在创建应用程序时,需要设置应用程序的上下文路径、访问权限等。

4.部署应用程序:将应用程序部署到WAS上,可以通过多种方式实现。

可以通过管理控制台进行手动部署,也可以通过命令行工具或脚本自动化部署。

部署完成后,应用程序将被部署到WAS的运行环境中,并可以通过指定的URL进行访问。

5.管理和监控应用程序:WAS提供了全面的管理和监控工具,用于监视应用程序的运行状态和性能。

通过这些工具,可以实时查看应用程序的日志、线程状态、堆栈信息等,从而快速定位和解决问题。

此外,还可以进行应用程序的重新启动、停止等操作。

6.高可用性和负载均衡:为了提供高可用性和负载均衡,WAS支持多节点集群。

通过在多个WAS实例之间分配负载,可以实现对应用程序的水平扩展和容错能力的提升。

通过WAS的管理界面,可以轻松地创建和管理集群,配置负载均衡算法等。

7.安全性配置:WAS提供了强大的安全性配置功能,可以确保应用程序的数据和资源得到保护。

可以通过WAS的管理界面设置安全策略、证书管理等。

was7标准优化设置指南

was7标准优化设置指南

WAS 7.0标准设置指南一.应用服务器环境本应用环境主要基于内存4~8G,2*4核CPU的运行环境。

如果服务器环境优于此设置,可以考虑一台服务器设置多重节点。

如果内存低于4G,请酌情调整JVM的最大大小(正常建议为1/4~1/3内存)。

二.服务器设置a)默认会话管理(服务器> 服务器类型>应用服务器>server1> 会话管理)i.会话数量建议设置为院登录人数的2倍。

ii.会话默认超时为120分钟。

iii.需要在安装应用系统之前修改。

如果在安装了应用系统之后修改,应用系统会自有会话管理部分。

b)JVM堆(服务器> 服务器类型>应用程序服务器>server1>进程定义>java虚拟机)i.可以设置初始堆为512,最大堆为1500。

ii.32位window操作系统上面最大堆不可超过1.7G。

iii.最大堆大小过大后,系统会有明显的顿挫感。

因为系统需要连续的大块时间用于回收内存。

iv.最优的内存回收时间为10秒左右。

过长或过短都说明JVM参数不当。

v.如果有内存泄露,则会出现监控内存不断上涨。

如无法解决该问题,则可以调高JVM最大大小。

延迟内存崩溃时间。

并定期重启。

vi.如JVM崩溃,可以查看native_stderr.log文件。

vii.JVM通用参数说明:(用于IBM Developer Kit)●-Xgpolicy:optavgpause →可以用于缓解垃圾回收的暂停现象●-Xgcthreads →同时使用若干垃圾回收线程,如–Xgcthreads4 。

数量建议小于等于CPU数●-Xnoclassgc →不回收类,可以提高类的重用性。

c)线程池(服务器> 服务器类型>应用程序服务器> server1 > 线程池>WebContainer)i.线程池的最大大小不可超过每核CPU * 10,标准2*4核CPU的最大大小不得超过80。

was使用及参数设置

was使用及参数设置
通过websphereapplicationserver控制台设置应用程序服务器servername进程定义java虚拟机如下图在图中设置5121024那么一般情况下均设置为5121024但是这个值也看情况而定分析内存使用情况如图可以勾选择详细垃圾回收启用详细模式的gcjvm在每次垃圾收集时都会打印输出有用的信息比如堆中的空闲和已使用字节垃圾收集之间的间隔以及暂停时间
比如TPS下降等,如果WebContainer设置较大时(200-2000),占
用资源。因此根据观察的性能情况和应用情况输入合适的最小、 最大参数值,设置方法如下图所示:
WAS—参数设置
WAS—参数设置
3.监视:执行场景时,可以通过WebSphere Application Server >性
能监视和调整>性能查看>当前活动>启动监视>WebContainer,可以
当然以上说的是在有权限的情况,没权限什么也不用说了。
WAS—参数设置
应用程序已部署为了合理应用资源需要对WAS参数,也是确保能为
最广泛的应用程序提供开箱即用的性能改善,设置WAS参数,那么我们 了解一些参数意思如下: 线程池:线程池是一种多线程处理形式,处理过程中将任务添加到 队列,然后在创建线程后自动启动这些任务。WAS线程池使服务器组件 能够复用线程而不是在运行时创建新线程。创建新线程通常是很耗费时间 和资源的操作。 连接池:连接池是创建和管理一个物理连接的缓冲池,其中会保留一 定数量创建的物理连接不关闭,当有客户端请求时,调用连接池,可以有 效减少物理连接的创建次数,降低直连所带来的系统开销,缓解应用服务 器压力,提高程序性能。
WAS—参数设置
在图中设置512-1分析内存使用情况,如图可以勾选择 “详细垃圾回收”

WAS介绍

WAS介绍

WAS服务器负载测试负载测试是任何Web应用的开发周期中一个重要的步骤。

如果你在构造一个为大量用户服务的应用,搞清楚你的产品配置能够承受多大的负载非常重要。

如果你在构造一个小型的Intranet网站,测试能够暴露出最终会导致服务器崩溃的内存漏洞以及竞争情况。

无论是哪种情形,花些时间对应用进行负载测试可以获得重要的基准性能数据,为未来的代码优化、硬件配置以及系统软件升级带来方便。

即使经费有限的开发组织也可以对它们的网站进行负载测试,因为Microsoft的WAS是可以免费下载的。

WAS要求Windows NT 4.0 SP4或者更高,或者Windows 2000。

为了对网站进行负载测试,WAS可以通过一台或者多台客户机模拟大量用户的活动。

WAS支持身份验证、加密和Cookies,也能够模拟各种浏览器类型和Modem速度,它的功能和性能可以与数万美元的产品相媲美。

如果你对WAS和Microsoft的另外一个测试工具Web Capacity Analysis Tool (WCAT)之间的差别感兴趣,可以访问Microsoft Web工具的比较页面。

要对网站进行负载测试首先必须创建WAS脚本模拟用户活动。

我们可以用下面四种方法之一创建脚本:通过记录浏览器的活动;通过导入IIS日志;通过把WAS指向Web网站的内容;或者手工制作。

图1所显示的是通过记录浏览器事件生成的脚本的一部分,网站是Microsoft的Duwamish Book Store。

Duwamish是Microsoft开发的电子商务Web应用示例,从Duwamish网站的“Phase 4”链接可以下载这个软件包。

下载包中包含了它自己的WAS测试脚本。

【图1】制作WAS脚本是相当简单的,不过要制作出模拟真实用户活动的脚本有点儿复杂。

如果你已经有一个运行的Web网站,可以使用Web服务器的日志来确定Web网站上的用户点击分布。

如果你的应用还没有开始运行,那么只好根据经验作一些猜测了。

运用WAS进行Web负载测试

运用WAS进行Web负载测试

运用WAS进行WEB负载测试随着网络服务器端处理任务的日益复杂,以及网站访问量的迅速增长,服务器性能的优化已成为非常迫切的任务。

在性能优化之前,测试不同条件下服务器的性能表现,并找出影响性能瓶颈所在,将是Web设计性能改善方案的重要依据。

在构造一个Intranet 网站时,负载测试是任何Web 应用开发周期中一个重要的环节。

在构造一个为大量用户服务的应用之前,搞清楚产品配置能够承受多大的负载十分重要,测试能够暴露出最终会导致服务器崩溃的内存泄漏、访问阻塞等情况。

但是在实际的构建过程中,若要按照系统真实运行的情况,组织成千上万的用户来进行压力测试,无论从那个方面进行实施,都是不现实的。

因为一旦发现了问题,不仅需要重复的进行这种耗费资源巨大的测试,而且问题并一定能够重现,并不能方便的找出性能的瓶颈或问题所在。

解决这个问题的办法是通过使用软件的办法解决,通过进行软件模拟的方法进行,这就是负载的压力测试。

无论哪种情形,对运用软件进行负载测试可以获得重要的基准性能数据,为未来的代码优化、硬件配置l e x y以及系统软件、硬件更新与升级带来依据和提供数据。

1 Web服务器负载测试软件介绍WAS(Microsoft Web Application Stress Tool,Web 应用负载测试工具)提供了一种简单的方法模拟大量用户进行访问目标网站。

这个测试工具能够提供Web 应用程序工作时对硬件和软件的使用情况。

为了有效的对Web 应用程序进行负载(压力)测试,Microsoft 发布了简单易用,功能强大的工具WAS。

WAS 要求具备的操作系统必须是Windows NT 4.0 SP4 或者Windows 2000 Server,Internet Explorer 4.0 以上版本。

为了对网站进行负载测试,WAS 可以通过一台或者多台客户机模拟大量用户访问Web网站的活动。

WAS 支持身份验证、加密和Cookies,也能够模拟各种浏览器类型和Modem 速度,它的测试功能和性能表现良好。

WAS中间件服务器介绍

WAS中间件服务器介绍

WAS中间件服务器介绍WAS中间件服务器介绍1. 介绍WAS(WebSphere Application Server)是一种中间件服务器,用于构建、部署和管理企业级应用程序。

它提供了一个可靠、安全和可扩展的平台,用于在分布式环境中运行大型应用程序。

本文将详细介绍WAS中间件服务器的各个方面和功能。

2. 架构2.1 组件架构WAS中间件服务器由多个组件构成,包括应用服务器、管理工具、数据源、线程池等。

每个组件都有特定的功能,并相互协作以提供完整的应用程序环境。

2.2 集群架构WAS支持集群架构,可以将多个服务器组成一个集群,提供负载均衡和高可用性功能。

集群架构可以提高应用程序的性能和可靠性。

3. 安全性WAS提供了多种安全功能,包括身份验证、授权、数据加密等。

它还支持各种安全协议和标准,如SSL、TLS、Kerberos等,以保护应用程序和用户数据的安全性。

4. 部署和管理4.1 应用程序部署WAS支持多种方式的应用程序部署,包括本地部署、远程部署、自动部署等。

它还提供了灵活的部署工具和界面,方便开发人员和管理员进行应用程序的部署和管理。

4.2 配置管理WAS提供了丰富的配置管理功能,包括服务器配置、数据源配置、JNDI配置等。

管理员可以通过配置管理工具进行配置的修改和管理。

5. 监控和故障排查WAS提供了强大的监控和故障排查功能,包括性能监控、错误日志分析、线程跟踪等。

管理员可以实时监控应用程序的运行情况,并及时发现和解决问题。

6. 扩展性和性能优化WAS具有良好的扩展性和性能优化能力。

它支持多种插件和扩展模块,可以根据应用程序的需求和规模进行灵活的扩展和优化。

附件:本文档不涉及附件。

法律名词及注释:1. 中间件:指在计算机系统中,处于操作系统和应用程序之间的软件组件,它们用于支持应用程序的运行和通信。

2. WAS(WebSphere Application Server):是由IBM开发的一种中间件服务器,用于构建、部署和管理企业级应用程序。

Web_Application_Stress_Tool(WAS,Web应用负载测试工具)详细说明

Web_Application_Stress_Tool(WAS,Web应用负载测试工具)详细说明

Web Application Stress Tool(WAS,Web应用负载测试工具)详细说明/view/cc84fb84b9d528ea81c779ca.html 百度文库:lindazhao1234 pswd:linda_123你的Web服务器能够支持多少个并发用户的访问呢?你遇到过服务器遭受过DD OS的攻击而瘫痪吗?在这里给大家介绍微软网站测试人员开发的著名网站压力测试软件,Microsoft的Web Application Stress Tool(WAS,Web应用负载测试工具),而且还是免费的哦。

其下载地址:/download/a/8/2/a82e7ba7-c772-4ec4-b186-2cf147f42 c11/setup.exeWAS是一款网站性能测试评估软件。

它通过模拟大量并发用户同时访问服务器,以获取服务器的承受能力。

像这种软件是把“双刃剑”,就看你用在哪一方面啦。

如果没用好就会给你的服务器造成一定的损失,用好了可以及时的发现你的服务器能承受多大压力负载。

以便及时的采取相应的措施防范。

要对网站进行负载测试首先需要创建WAS脚本来模拟用户访问等活动。

创建脚本的方法:通过记录浏览器的活动;通过导入IIS日志;通过把WAS指向Web网站的内容;或者手工制作。

这里我用是通过记录浏览器事件生成的脚本的一部分,一:测试前的准备1.在测试前清空IE浏览器其它网站的缓存和Cookies等临时文件。

二:测试脚本制作1.打开WAS,点击Record2.勾选要记录的活动3.点击Finish4.这时自动弹出一个浏览器新窗口,即开始记录你的浏览的内容。

这时开始访问你要测试的网页。

5.在你访问你的服务器时,WAS都记录了这些活动,访问完成后点击Stop Recor ding结束记录。

6.这时在脚本页可以看到收集到的脚本,在Server栏输入服务器的IP地址。

7.删除延迟小的元素world of warcraft gold8.可以用Ctrl键同时选中多个,然后点击工具栏的删除按钮删除9.点击Settings,在这里可以设置例如发起的连接数,热身时间,带宽限制,以及测试要运行多长时间等参数。

基于Web中间件的运维管理系统的性能优化方法研究与实践

基于Web中间件的运维管理系统的性能优化方法研究与实践

基于Web中间件的运维管理系统的性能优化方法研究与实践张永华【摘要】从运维管理系统的实际情况出发,分析基于中间件的Web体系结构的系统技术特点,对该类型的运维管理系统实际运行环境(主机系统、网络、数据库、中间件、应用结构)出现的性能故障进行全面分析,找出影响性能的原因,给出调整参数的理论方法.通过系统运行过程的不断优化,得出合理的参数值,以减少和消除运维管理系统性能导致的用户感知差的影响.%This article analyzes the system technical characteristics of Web-baaed middleware architecture, she performance problems of network system operation environment, such as the host system, network., database, middleware, application structure, and identifies the reasons lhaL affect performance and ihe theoretical method of adjusting ihe parameters. Through rhe reasonable parameter values, we can reduce the impact caused by the eliminate of network management system.【期刊名称】《电信科学》【年(卷),期】2011(027)011【总页数】8页(P147-154)【关键词】运维管理;性能优化;Web应用;中间件【作者】张永华【作者单位】中国移动通信集团公司广西分公司南宁530022【正文语种】中文1 引言近年来,随着电信运营商市场的发展,为适应全业务发展和市场竞争需要,对运维管理系统能力提升提出了更高的要求,运维管理系统经过长期建设,各种应用规模越来越庞大,所承载的应用范围不断拓宽,其中电子运维系统(electric operation maintenance system,EOMS)作为业务开通和网络运维集中管理的重要支撑系统,随着用户量的不断扩大,新功能模块的更新上线,其性能开始下降,影响了用户使用感知。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Websphere性能分析与优化
——从Heapdump浅谈JVM堆设置
不同版本的JDK可以设置的JVM堆大小是不一样的,而JVM堆的大小直接制约系统的性能,合理设置每个应用服务器中的JVM堆,在系统性能优化中是十分关键的一步。

一般来说,JVM堆可设置的大小受其版本限制,可分为以下两大类:
1、32位的JDK,JVM堆最大可设置到1.5G左右
2、64位的JDK,JVM堆大小暂无限制
那我们该如何调整JVM的堆大小呢?在Was上如何去设定一个合理的值且多大的值才算是合理的呢?
首先我们来了解下JVM堆大小对系统有哪些主要的影响,在JVM堆不足的情况下将会导致系统:
1、频繁的垃圾回收(引发系统资源紧张情况,集群环境下CPU资源消耗就更严重)
2、OOM,内存溢出(out of memory)
系统繁忙时,一般都是在处理大量的客户端请求,或是在进行多个复杂的计算,它们都需要向JVM堆申请空间进行对象的创建。

在堆空间不足的情况下,应用系统会出现以下一些情况,从而大大降低客户的感知度:
1、请求操作响应时间长
2、请求操作失败,资源等待操作,内存溢出
为了保证系统的性能,提高系统稳定性,我们就需要对JVM堆的详细使用情况刨根问底,以此估出一个合理的值来设置JVM堆大小。

有专家给出建议,Was每个Server的线程池不宜配置过大,一般建议值在50-120之间,而JVM堆则设置在2G内。

这个建议针对大部分系统都是适用的,如果在这个配置上系统运行还出现性能问题,可先从应用程序角度着手优化。

因为无论线程池的线程大小是多少,每个线程给系统带来的主要压力就是JVM堆资源的占用。

在32位的Java虚拟机上,JVM堆最大可设置到1.5G左右。

假设请求从客户端来到Was,Was从线程池中分配一个线程处理这个请求,同时从JVM堆空间申请相应的资源进行操作。

假设这是一个上传5MB的Excel的线程,那么在上传与处理这个Excel过程中,线程占用的JVM堆的资源会越来越多,甚至有可能需要向JVM堆申请超过30MB的空间(当然30MB的堆空间不是绝对,这与代码设计密切相关,如果到Excel上传过程中,还要进行分析,封装,持久化等操作)。

这种情况下,再有50个类似的上传Excel的线程,系统性能就会受到影响,因为在线程操作结束前,JVM堆资源被大量占用且无法快速释放,系统剩余可分配的JVM堆空间越来越少,如再有其它线程继续申请堆空间资源的话,就需要等待垃圾回收或者资源空间的创建了。

因此为了保证系统的性能,我们首先要保证JVM堆剩余可分配空间的大小。

除了加大JVM堆的设置外(可考虑集群方式降低单Server的压力),我们还要从系统设计与应用程序代码优化入手,避免资源相互占用,资源调用后可快速释放。

应如何优化应用代码呢?在实际项目中,许多应用系统的工期都十分紧张,从需求调研到系统上线,可能仅有个把月的时间。

由于复杂的业务逻辑和紧张的工作期限,在编码过程中难免都会出现一些漏洞,这些漏洞问题可能因为功能交叉关联,过于复杂,在测试阶段不能重现,直到投入生产使用中才发现,并且随着系统功能不断增加,关联越来越多,有些问题会成为影响性能的根源,让我们猝不及防!因此我们需要增加数据监控这一过程,其中可以通过Heapdump文件收集生产上每个Server的JVM堆中对象空间详细分配情况作为参考,进行代码优化与堆大小设置。

Heapdump文件主要用于记录JVM堆对象的详细信息,在JVM堆接收到转储命令时产生,其相当于JVM堆某一时间切面的详细信息,也可理解为记录对象在
JVM中详细痕迹的一个日志。

通过分析Heapdump文件,我们可了解到各个对象的大小,及对象之间的关联关系等。

Heapdump文件一般比较大,文本查看工具已不能满足我们的要求,为了迅速从文件中找占用资源最多的对象,我们需要借助一些专业的工具来进行分析。

如:
1、IBM HeapAnalyzer
该软件采用树形方式描述JVM堆,目前已出到V4.08版本。

分析过程需要一层层展开查阅,寻找到资源消耗最大的关键对象。

通过该工具,我们可以详细了解到对象之间的关系,根据关系推断资源消耗大的对象主要存储了哪些内容,由哪些关键类去触发。

在左图中我们看到庞大的堆栈树,若一层层展开查阅与分析,很容易就看到眼冒金星。

因此我们需要使用一些小功能去帮助分析整个堆载信息,如:
(1)Go to the largest drop in the subtrees (使用该功能,可快速查询到堆栈树下最大的可疑对象,然后逐层向上分析)
(2)List same type(查看相同类型的对象,在死循环情况下,可以快速定位问题)
2、MDD4J工具
同样是分析内存堆使用情况的工具,但较HeapAnalyzer有较大不同,该工具会在装载文件的过程中进行智能分析,然后给出相应的建议,缩小我们的分析范围。

如:可疑内存对象视图、类型视图、实例视图、树形视图等。

简易分析方法:
(1)先通过可疑内存对象视图,了解到究竟哪些对象存在泄露的可能性
(2)再通过树形视图详细分析每个可疑泄露对象,展开每一层节点,分析是否存在内存泄露的可能性。

一般来说,我们都是根据经验查找非JDK,或者IBM 对象的对象,而直接查找项目或项目使用到的组件的对象进行分析,查看其关系。

以上两种工具都可以从IBM的官方网站下载,也可以安装ISA(IBM Support Assistant Workbench )分析工具,快速搜索最新版本下载。

如:
无论是哪个工具,通过其提供的信息,我们可认识到JVM堆中的内容就是一棵庞大的堆栈树,我们可先排除Was中间件的问题,从项目代码或者使用到的组件代码进行分析,搜索可疑泄漏对象,一步步详细分析下去,关键步骤就是要找到以下一些重要对象:
收集到以上信息后,我们就可以进一步结合项目代码去分析问题所在。

为了保证分析质量,我们需要采集连续多个时间段的Heapdump文件。

因为有可能在一些复杂操作过程中,所需创建的对象比较多,但它们最终会被垃圾回收的功能回收,因此它们并不一定是触发性能问题的主要根源,而是在大并发请求或者资源不足的情况才会引起性能问题。

分析Heapdump文件时,并非每个可疑泄漏对象都有问题,我们要分析与检查每个泄漏源堆栈前后所涉及的对象,通过对象的大小与业务逻辑分析,判断这些对象设计与引用是否合理。

在JVM堆中主要存储了两种对象,一种是临时对象,一种是永久保存的对象。

临时对象在失去引用的情况下,才会由垃圾回收功能回收空间。

而永久保存对象,从JVM的进程创建的开始,就一直存储在JVM堆中,直到进程结束后才释放。

因此我们检查与分析Heapdump文件过程中,可以结合项目代码进行判断。

我们可以通过Heapdump生成方式的不同,采用不同策略去检查与分析。

由内存泄露产生的Heapdump主要有以下几种原因:
●JVM堆空间不足(内存不足)
●死锁,程序死循环导致与线程资源相互占用
●内部错误
分析过程我们可检查是否存在死锁问题,再检查堆空间对象大小是否合理。

手工生成Heapdump文件,通常都是作为健康检查,或者对JVM堆使用情
况分析,建议通过比较多个版本的Heapdump文件,了解在整个JVM中究
竟哪些对象占用了空间,他们的泄露源是什么,我们从以下方面进行分
析:
●静态变量:将对象存入静态变量中实现缓存是常见的手段,其优势是
避免了资源的重复读取,但是不断将对象保存到静态变量而没有显示
释放,容易导致内存溢出,或者剩余可用堆空间不足(所以有些系统
虽然进行了垃圾回收的优化,但性能提升不明显,这主要是因为堆空
间可用率不高);
●Threadlocal:Was采用了连接池方式,web线程的管理是由Was负责
的,如果大量使用Threadlocal来存储临时对象,并且在线程退出的时候不显示销毁,也会导致JVM堆可用空间不断减少,其结果和第一点一样;
●类加载问题:每次不重新启动Sever,而是直接重新启动应用,多次
操作后JVM堆剩余空间越来越少,进而引发内存泄露问题(这主要是应用程序中存在静态对象在类装载过程建立了引用的关系,即使停止了应用,但是由于引用关系未显示释放,导致对象一直残留在JVM
堆中,只有重启Server才可以销毁)。

给JVM堆设置一个合理的数值,不一定能给系统的性能带来巨大飞跃,但这却是系统性能调优过程中必不可少的一步。

如果系统要运行得更加稳定与支撑更大的并发请求操作,我们需要从各方面着手检查与优化,Heapdump 文件可以给到我们很大的帮助。

结合垃圾回收日志,我们就可以轻松掌握到JVM堆详细情况,以便为系统设置合理的堆值。

相关文档
最新文档