appServer IBM WebSphere 7
IBM developerWorks 中国:IBM WebSphere Application Server 常见问题及解答(FAQ)
http://www.ibm.com/developerworks/cn/websphere/zones/was/wasfaqs/wasfaqs_0805001.html
IBM WebSphere Application Server常见问题及解答:性能调优的基本步骤是怎样的?
http://www.ibm.com/developerworks/cn/websphere/zones/was/wasfaqs/wasfaqs0602.html
2. 性能调优的基本步骤是怎样的?
答:
部署在WAS上的J2EE应用程序,其性能是由多个因素决定的。例如网络、数据库、内存分配、WAS服务器的配置以及应用程序的设计。对于一个标准的J2EE应用,一个请求到来时,往往需要经过多次转发:网络> Web服务器Web容器 > EJB容器 >数据库。而每一次转发,都可能造成请求处理的瓶颈,使得应用程序整体性能下降。如果我们把每一次转发的待处理资源都看成一个队列,如图3:
图3 待处理资源队列
对于WAS调优,要记住的一个基本原则就是,使得在队列中等待的请求的数量最小化。在实践中我们发现,为了达到这个目的,最有效的配置方式就是使得队列成为一个“漏斗”。也就是说,越靠近客户端的队列,其容量越大,而后面的队列,其容量要略小于或等于前面的队列。按照这个原则,调优的基本步骤如下:
...
[3/18/11 15:55:21:723 CST] 00000000 WorkSpaceMast E?? The system cannot find the specified file, either the filename is too long on Windows system or run out of file descriptor on UNIX platform. java.io.FileNotFoundException: /opt/IBM/WebSphere/AppServer/profiles/Dmgr01/wstemp/com.ibm.ws.wlm.clusterMgr/workspace/cells/B2CmonitorCell01/.repositoryContext (Permission denied)
[3/18/11 15:55:21:750 CST] 00000000 DMAdapter???? I com.ibm.ws.ffdc.impl.DMAdapter getAnalysisEngine FFDC1009I: Analysis Engine using data base: /opt/IBM/WebSphere/AppServer/profiles/Dmgr01/properties/logbr/ffdc/adv/ffdcdb.xml
[3/18/11 15:55:21:755 CST] 00000000 FfdcProvider? I com.ibm.ws.ffdc.impl.FfdcProvider logIncident FFDC1003I: FFDC Incident emitted on /opt/IBM/WebSphere/AppServer/profiles/Dmgr01/logs/ffdc/dmgr_4d5d4d5d_11.03.18_15.55.21.73419376.txt com.ibm.ws.management.configservice.WorkspaceHelper.getWorkspace 47
[3/18/11 15:55:21:978 CST] 00000000 FfdcProvider? I com.ibm.ws.ffdc.impl.FfdcProvider logIncident FFDC1003I: FFDC Incident emitted on /opt/IBM/WebSphere/AppServer/profiles/Dmgr01/logs/ffdc/dmgr_4d5d4d5d_11.03.18_15.55.21.76219377.txt com.ibm.ws.management.configservice.ConfigServiceImpl.discard 20n/
[3/18/11 15:55:21:988 CST] 00000000 WorkSpaceMast E?? WKSP0006E: Error while saving context ""-java.io.IOException: The system cannot find the specified file, either the filename is too long on Windows system or run out of file descriptor on UNIX platform. java.io.FileNotFoundException: /opt/IBM/WebSphere/AppServer/profiles/Dmgr01/wstemp/com.ibm.ws.wlm.clusterMgr/workspace/.repositoryContext (Permission denied)
??????? at com.ibm.wsspi.configarchive.DefaultFileAccessor.getOutputStream(DefaultFileAccessor.java:207)
??????? at com.ibm.ws.sm.workspace.impl.WorkSpaceMasterRepositoryAdapter.save(WorkSpaceMasterRepositoryAdapter.java:1176)
??????? at com.ibm.ws.sm.workspace.impl.RepositoryContextImpl.save(RepositoryContextImpl.java:1812)
??????? at com.ibm.ws.sm.workspace.impl.RepositoryContextImpl.loadContext(RepositoryContextImpl.java:183)
??????? at com.ibm.ws.sm.workspace.impl.RepositoryContextImpl.getChildren(RepositoryContextImpl.java:968)
??????? at com.ibm.ws.sm.workspace.impl.RepositoryContextImpl.findContext(RepositoryContextImpl.java:693)
??????? at com.ibm.ws.sm.workspace.impl.WorkSpaceImpl.findContext(WorkSpaceImpl.java:226)
??????? at com.ibm.ws.management.configservice.WorkspaceHelper.getScopeContexts(WorkspaceHelper.java:341)
??????? at com.ibm.ws.management.configservice.RootObjectDelegator.getAll(RootObjectDelegator.java:141)
??????? at com.ibm.ws.management.configservice.ConfigServiceImpl.queryConfigObjects(ConfigServiceImpl.java:813)
??????? at com.ibm.ws.management.configservice.ConfigServiceImpl.resolve(ConfigServiceImpl.java:890)
??????? at com.ibm.ws.management.configservice.ConfigServiceImpl.resolve(ConfigServiceImpl.java:850)
??????? at com.ibm.ws.management.configservice.ConfigServiceServerProxy$12.run(ConfigServiceServerProxy.java:489)
??????? at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:118)
??????? at com.ibm.ws.management.configservice.ConfigServiceServerProxy.resolve(ConfigServiceServerProxy.java:480)
??????? at com.ibm.ws.management.wlm.ClusterMgr.loadClusterConfig(ClusterMgr.java:532)
??????? at com.ibm.ws.management.wlm.ClusterMgr.loadRefreshClusters(ClusterMgr.java:719)
??????? at com.ibm.ws.management.wlm.ClusterMgr.loadRefreshClusters(ClusterMgr.java:705)
??????? at com.ibm.ws.management.wlm.ClusterMgr.initialize(ClusterMgr.java:250)
??????? at com.ibm.ws.cluster.runtime.ClusterRuntimeImpl.initializeClusterMgr(ClusterRuntimeImpl.java:155)
??????? at com.ibm.ws.cluster.runtime.ClusterRuntimeImpl.start(ClusterRuntimeImpl.java:146)
??????? at com.ibm.ws.runtime.component.ContainerHelper.startComponents(ContainerHelper.java:515)
??????? at com.ibm.ws.runtime.component.ContainerImpl.startComponents(ContainerImpl.java:631)
??????? at com.ibm.ws.runtime.component.ContainerImpl.start(ContainerImpl.java:621)
??????? at com.ibm.ws.runtime.component.ServerImpl.start(ServerImpl.java:520)
??????? at com.ibm.ws.runtime.WsServerImpl.bootServerContainer(WsServerImpl.java:298)
??????? at com.ibm.ws.runtime.WsServerImpl.start(WsServerImpl.java:214)
??????? at com.ibm.ws.runtime.WsServerImpl.main(WsServerImpl.java:666)
??????? at com.ibm.ws.runtime.WsServer.main(WsServer.java:59)
??????? at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
??????? at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:45)
??????? at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
??????? at java.lang.reflect.Method.invoke(Method.java:599)
??????? at com.ibm.wsspi.bootstrap.WSLauncher.launchMain(WSLauncher.java:213)
??????? at com.ibm.wsspi.bootstrap.WSLauncher.main(WSLauncher.java:93)
??????? at com.ibm.wsspi.bootstrap.WSLauncher.run(WSLauncher.java:74)
??????? at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:78)
??????? at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92)
??????? at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68)
??????? at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
??????? at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177)
??????? at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
??????? at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:45)
??????? at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
??????? at java.lang.reflect.Method.invoke(Method.java:599)
??????? at org.eclipse.core.launcher.Main.invokeFramework(Main.java:340)
??????? at org.eclipse.core.launcher.Main.basicRun(Main.java:282)
??????? at org.eclipse.core.launcher.Main.run(Main.java:981)
??????? at com.ibm.wsspi.bootstrap.WSPreLauncher.launchEclipse(WSPreLauncher.java:330)
??????? at com.ibm.wsspi.bootstrap.WSPreLauncher.main(WSPreLauncher.java:108)
.
[3/18/11 15:55:21:995 CST] 00000000 WorkSpaceMast E?? The system cannot find the specified file, either the filename is too long on Windows system or run out of file descriptor on UNIX platform. java.io.FileNotFoundException: /opt/IBM/WebSphere/AppServer/profiles/Dmgr01/wstemp/com.ibm.ws.wlm.clusterMgr/workspace/.repositoryContext (Permission denied)
?
?
[root@B2Cmonitor profiles]# ls -l
total 8
drwxr-xr-x 15 wasuser wasgroup 4096 Mar 17 21:38 AppSrv01
drwxr-xr-x 22 wasuser wasgroup 4096 Mar 18 14:29 Dmgr01
[root@B2Cmonitor workspace]# ls -la
total 24
drwxr-xr-x 4 root root 4096 Mar 18 17:23 .
drwxr-xr-x 3 root root 4096 Mar 18 17:23 ..
drwxr-xr-x 3 root root 4096 Mar 18 17:23 cells
-rw-r--r-- 1 root root? 116 Mar 18 17:23 .repositoryContext
drwxr-xr-x 3 root root 4096 Mar 18 17:23 waspolicies
-rw-r--r-- 1 root root 4074 Mar 18 17:23 .workspace_
[root@B2Cmonitor workspace]# ps -ef | grep java
root???? 24213???? 1? 3 17:23 pts/2??? 00:00:39 /opt/IBM/WebSphere/AppServer/java/bin/java -Declipse.security -Dwas.status.socket=56029 -Dosgi.install.area=/
opt/IBM/WebSphere/AppServer -Dosgi.configuration.area=/opt/IBM/WebSphere/AppServer/profiles/Dmgr01/configuration -Djava.awt.headless=true -Dosgi.framework.ex
tensions=com.ibm.cds,com.ibm.ws.eclipse.adaptors -Xshareclasses:name=webspherev70_%g,groupAccess,nonFatal -Xscmx50M -Xbootclasspath/p:/opt/IBM/WebSphere/AppS
erver/java/jre/lib/ext/ibmorb.jar:/opt/IBM/WebSphere/AppServer/java/jre/lib/ext/ibmext.jar -classpath /opt/IBM/WebSphere/AppServer/profiles/Dmgr01/properties
:/opt/IBM/WebSphere/AppServer/properties:/opt/IBM/WebSphere/AppServer/lib/startup.jar:/opt/IBM/WebSphere/AppServer/lib/bootstrap.jar:/opt/IBM/WebSphere/AppSe
rver/lib/jsf-nls.jar:/opt/IBM/WebSphere/AppServer/lib/lmproxy.jar:/opt/IBM/WebSphere/AppServer/lib/urlprotocols.jar:/opt/IBM/WebSphere/AppServer/deploytool/i
tp/batchboot.jar:/opt/IBM/WebSphere/AppServer/deploytool/itp/batch2.jar:/opt/IBM/WebSphere/AppServer/java/lib/tools.jar -Dibm.websphere.internalClassAccessMo
de=allow -Xms50m -Xmx256m -Xcompressedrefs -Dws.ext.dirs=/opt/IBM/WebSphere/AppServer/java/lib:/opt/IBM/WebSphere/AppServer/profiles/Dmgr01/classes:/opt/IBM/
WebSphere/AppServer/classes:/opt/IBM/WebSphere/AppServer/lib:/opt/IBM/WebSphere/AppServer/installedChannels:/opt/IBM/WebSphere/AppServer/lib/ext:/opt/IBM/Web
Sphere/AppServer/web/help:/opt/IBM/WebSphere/AppServer/deploytool/itp/plugins/com.ibm.etools.ejbdeploy/runtime -Dderby.system.home=/opt/IBM/WebSphere/AppServ
er/derby -Dcom.ibm.itp.location=/opt/IBM/WebSphere/AppServer/bin -Djava.util.logging.configureByServer=true -Duser.install.root=/opt/IBM/WebSphere/AppServer/
profiles/Dmgr01 -Djavax.management.builder.initial=com.ibm.ws.management.PlatformMBeanServerBuilder -Dwas.install.root=/opt/IBM/WebSphere/AppServer -Dpython.
cachedir=/opt/IBM/WebSphere/AppServer/profiles/Dmgr01/temp/cachedir -Djava.util.logging.manager=com.ibm.ws.bootstrap.WsLogManager -Dserver.root=/opt/IBM/WebS
phere/AppServer/profiles/Dmgr01 -Dcom.ibm.security.jgss.debug=off -Dcom.ibm.security.krb5.Krb5Debug=off -Djava.security.auth.login.config=/opt/IBM/WebSphere/
AppServer/profiles/Dmgr01/properties/wsjaas.conf -Djava.security.policy=/opt/IBM/WebSphere/AppServer/profiles/Dmgr01/properties/server.policy com.ibm.wsspi.b
ootstrap.WSPreLauncher -nosplash -application com.ibm.ws.bootstrap.WSLauncher com.ibm.ws.runtime.WsServer /opt/IBM/WebSphere/AppServer/profiles/Dmgr01/config
?B2CmonitorCell01 B2CmonitorCellManager01 dmgr
root???? 24888 24246? 0 17:41 pts/1??? 00:00:00 grep java
?
Q:
dmgr 启动用户应为wasuser,隶属wasuser的dmgr profile无法写入root用户启动dmgr后的repositoryContext 日志
A:
[root@B2Cmonitor profiles]# chown -R wasuser:wasgroup Dmgr01
[root@B2Cmonitor profiles]# su - wasuser
[wasuser@B2Cmonitor profiles]$ cd /opt/IBM/WebSphere/AppServer/profiles/Dmgr01/bin
[root@B2Cmonitor profiles]# ./startManager -username admin -password admin
...
run ok !
?
end