存档

‘中间件’ 分类的存档

官方JRockit JVM调优文档

2009年9月7日 hashei 没有评论

转自BEA,原文链接已经无法访问,文中的许多链接也更改过地址,我把能找到的都重新做了连接。以前一直以为Jrockit和Sun的JVM配置差不多,看了这篇文章和最后参考资料中的信息,发现区别不是一点点,很多常用参数的使用都不一样。Jrockit的自动化设置应该说做的不错,在WebLogic上我很少更改它的默认配置(除了堆最大最小值),不过不影响这篇文章存在的价值。

摘要

本文的目的是以清单的方式提供BEA JRockit JVM的调优信息。从深奥的命令行选项到迭代性能测试,本文涵盖了许多方面。大部分数据都是我与用户合作过程中收集的。您要是也有什么技巧的话,请告诉我,在本文的下一版中,我会尝试将它们添加进去。

具体的产品版本信息都已在适当的地方列出;但是,本文所提供的通用指南适用于JRockit的大多数版本。每个版本的JRockit都增加了新的设置和优化,所以请查看 发行说明JRockit产品中心

验证当前的JRockit环境

首先需要确定您的运行时应用程序服务器所使用的JRockit的版本。为此,可以查看相应应用程序服务器的日志文件。也可以使用适当的脚本设置系统环境,然后执行java –version命令来确定JRockit的版本。

接着,收集当前JVM标志,开发和/或生产阶段需要用到它们:

-server -Xms1024m -Xmx1536m -Xverboselog:gc.log -Xverbose:memory-Xgcprio:throughput

这将告诉您当前JRockit实例的配置情况。

确定应用程序的目标

确定应用程序的目标是什么。是“响应快”还是“性能高”?根据目标的不同,需要设置不同的垃圾收集算法。

例如,如果应用程序的目标是实现高性能,则确保设置了Dynamic Garbage Collector "-Xgcprio:throughput" 选项。如果目标是响应时间短,那么需要将-Xgcprio:pausetime -Xpausetarget=XXX’中的pausetarget设置为最佳值。有关更多细节,请查看JRockit 调优文档

收集故障诊断数据

如果JVM性能有问题,那么最好是先收集一些分析数据。该工作可以由团队中有相关经验的人员来完成,您也可以将这些信息发送给BEA Support做进一步分析。

首先,出现问题时需要收集大约10分钟的运行时JRockit Recording(JRA)数据。可以使用jrcmd.sh实用工具或JRockit Mission Control(JRMC)完成此操作。请阅读“性能测试期间的JRCMD/JRA”和“JRockit Mission Control”两节的内容。有关详细信息,请参阅 JRockit Mission Control文档。Latency Analysis一节提供许多有价值的内容,我们可以从中了解任何潜在的延迟问题(在JRockit中需要一个许可证就可以使用它)。

然后,需要收集问题发生时的一些详细日志。方法是在启动服务器实例的时候在JVM命令行输入以下参数:

-Xverboselog:perTestGC.log-Xverbose:opt,memory,gcpause,memdbg,compaction,gc,license-Xverbosetimestamp -Xgcreport

这样会将有价值的分析数据收集到刚才配置的perTestGC.log文件中。团队成员和/或BEA Support可以对这些数据进行分析。

最后一点:通常,应用程序不会请求执行垃圾收集(也就是在应用程序代码中调用System.gc())。但如果您怀疑它有问题,那么可以在启动服务器实例的时候,在Java命令行使用-XXnoSystemGC参数来禁用它。

现在,我将介绍如何通过迭代性能测试方法解决这些问题。

阅读全文…

WebLogic9和10集群安装配置过程

2009年9月6日 admin 没有评论

weblogic的集群很早以前做过,当时写了一份文档,最近真好又有机会实验了Weblogic 10.3的集群配置,两相比较,同时对照着文档过了一遍,确定下文对weblogic9和10都适用。截了图也方便新手学习。

环境

平台:两台Windows 2003 SP2(SP版本要一样),必须位于同一网段,并且必须是IP广播(UDP)可到达的

软件:Weblogic9.1

拓扑

在A机上建立一个Administrator Server,作为管理节点;在AB机上分别建立Managed Server,加入集群appCluster,作为应用程序的运行环境;在B机上分别建立Proxy Server,作为提供外部访问的服务地址。

机器 配置信息 角色 备注
app1 IP:*.*.*.* PORT:7001 AdminServer 管理服务器
app1 IP: *.*.*.*PORT:7002 Managed Server 受管服务器
app2 IP: *.*.*.*PORT:7002 Managed Server 受管服务器
app2 IP: *.*.*.*PORT:80 Proxy Server 代理服务器

安装过程

在机器A上

创建新的Domain

选择“Tool- Configuration Wizard”,单击“下一步”按钮

clip_image002

选择安装域源

选择安装“WebLogic Server”,单击“下一步”按钮

clip_image004

配置管理员用户名和密码

输入Weblogic管理员管理服务器(AdminServer)的用户名和密码,在此以“weblogic”作用登录管理服务器的用户名和密码,单击“下一步”按钮

阅读全文…

分类: weblogic, 中间件 标签: ,

注册Weblogic9为Windows服务及外一篇

2009年8月7日 hashei 5 条评论

Weblogic8时代将weblogic注册成为Windows服务是一件很简单的事,只要执行Domain目录下的installService.cmd即可。不过进入Weblogic9之后,domain目录下就没有了那个脚本,而是出现在%WL_HOME%/server/bin下,直接运行会生成一个“bea _”的服务,运行的话。。。没有任何结果,BEA的edocs上也没有找到有用的帮助。

以下内容,是我盯着installService.cmd和startWeblogic.cmd出神良久后试验成功的。

  1. 复制一份installServer.cmd到domain目录下,
  2. 编辑installServer.cmd,在set WL_HOME=……   下添加set DOMAIN_HOME=<你的domain目录>
  3. 将下一行的call “%WL_HOME%\common\bin\commEnv.cmd”修改成call “%DOMAIN_HOME%\bin\setDomainEnv.cmd”(如果这里的setDomainEnv.cmd写完整路径,那么上一步DOMAIN_HOME可以不用设置,因为setDomainEnv.cmd里还会声明一遍的)
  4. 另起一行,添加两行“set USERDOMAIN_HOME=%DOMAIN_HOME%”“set DOMAIN_NAME=<你的domain名字>”(这是脚本最末一段Install the service里beasvc命令所需要的参数)
  5. 运行installServer.cmd,会在服务里新建一个名为“beasvc %DOMAIN_NAME%_%SERVER_NAME%”的服务,自动运行,帐户属性的是localsystem。

beasvc命令各个参数的详细意义可以参考beasvc /help

以上内容对于Oracle Weblogic 10依旧有效。

weblogic密码遗忘补救方法

  1. 备份   %DOMAIN_HOME%/security下的DefaultAuthenticatorInit.ldift文件,和%DOMAIN_HOME%下的boot.properties文件(如果不在这个目录,那么找找 %DOMAIN_HOME%/servers/AdminServer/security目录),这样如果下列步骤操作失败还能还原回去。
  2.   运行java -cp /bea/weblogic92/server/lib/weblogic.jar weblogic.security.utils.AdminAccount <新用户名> <新密码> .(注意最后有个点的,点之前有空格,不要和原先的一样)
  3. 执行完后在当前目录会生成一个新的DefaultAuthenticatorInit.ldift文件,然后替换原来的%DOMAIN_HOME%/security/DefaultAuthenticatorInit.ldift文件。
  4. 从%DOMAIN_HOME%/servers/AdminServer/data/ldap/子目录中删除初始化状态文件DefaultAuthenticatormyrealmInit.initialized,删除boot.properties。
  5. 运行startWebLogic.sh,启动过程中会让你输入用户名和密码,输入新建立的那个
  6. 用新的用户名密码登录管理控制台,在“安全领域”里点击“myrealm”,在用户和组里,找到之前的那个用户,修改密码,保存,那么以后可以继续使用原来的用户名和密码登录,
  7. 修改boot.properties中的用户密码为上一步修改过的用户密码(明文)格式为
    username=用户名
    password=密码
  8. 重启服务器,现在不用输入用户名密码了,成功启动后,weblogic会加密用户密码的,现在就可以用旧用户登录,新用户可以删除。