求大神们分析一下jboss修改内存的内存出了什么问题

java-jboss 设置jvm,内存占用过多情况
作者:用户
浏览:795 次
jboss设置jvm,内存占用过多情况JAVA_OPTS="-Xss256k-Xms4000m-Xmx8000m-Xmn2000m-XX:MaxNewSize=512m-XX:MaxPermSize=
jboss 设置jvm,内存占用过多情况
JAVA_O="-Xss256k -Xms4000m -Xmx8000m -Xmn2000m -XX:MaxNewSize=512m -XX:MaxPermSize=512M -XX:+UseParallelGC -XX:ParallelGCThreads=16
-XX:-UseGCOverheadLimit -XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/app/corefile/ -XX:+UseParallelOldGC
-Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000"
这个是我jboss7.1.1 中 bin 目录下
standalone.conf
文件中的配置,机器为32G内存,现在这个配置用top命令查看系统内存一直在增加,在超过最高限之后cpu使用率就会增加很多,然后jboss就会卡死了。
有没有jboss优化的大神碰到过这种情况,谢谢!
【云栖快讯】直播推荐——现在报名3月12日编程语言系列讲座,与行业资深专家一起学习Python、C++、JavaScript、Java!还可在活动页面领取红包,百分百中奖哦!&&
弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率
40+云计算产品,6个月免费体验
稳定可靠、可弹性伸缩的在线数据库服务,全球最受欢迎的开源数据库之一
云服务器9.9元/月,大学必备使用JProfiler监控JBoss运行情况
JProfiler 是一个著名的用于 java 监控分析的软件,功能很强大,可以监控普通的 java application, applet, java web start, application server 等等。除了可以监控本地的程序,还可以对远程服务器上跑的应用进行监控。本文以 JBoss 为例,对 JProfiler 的安装、配置和使用做个简单介绍。
&&& 先说一下环境:
&&& 服务器:RedHat
3.4.3-9.EL4(内核版本 2.6.9-5.ELsmp),JBoss 4.0.3,Sun JDK 1.5.0_08,JProfiler 4.3.2 for linux(安装包:jprofiler_linux_4_3_2.sh)
&&& 客户端:Windows XP,JProfiler 4.3.2 for windows(安装包:jprofiler_windows_4_3_2.exe)
&&& 客户端 JProfiler 安装:直接运行安装程序即可,没啥可说的。有一点就是安装过程中,norton 曾经报警,不理他,安完之后也没发现有什么问题
&&& 服务器端 JProfiler 安装:把 jprofiler_linux_4.3.2.sh 上传到到服务器,假设路径为 /opt/jprofiler4 (后文用 $JPROFILER_HOME指代)。用如下命令:
# cd /opt/jprofiler4 # chmod +x *.sh # ./jprofiler_linux_4.3.2.sh -c
&&& 按照提示来安装,提示都很简单,不在多说。安装路径选择 $JPROFILER_HOME 。注意,这里的 -c 意思是用字符方式来安装,如果机器上没有 X 则加上该参数。
&&& 服务器端的配置:
&&& 1. 修改系统配置,在 LD_LIBRARY_PATH 里加入 JProfiler 的库文件所在路径 $JPROFILER_HOME/bin/linux-x86 ,如果是 64 位服务器,则选择 $JPROFILER_HOME/bin/linux-x64。
&&& 2. 修改 JBoss 的启动脚本,加入如下参数:
-agentlib:jprofilerti=port=8849 -Xbootclasspath/a:$JPROFILER_HOME/bin/agent.jar
&&& 例如:
$JAVA_HOME/bin/java $JAVA_OPTS -agentlib:jprofilerti=port=8849 -Xbootclasspath/a:/opt/jprofiler-4.3.2/bin/agent.jar -Djava.endorsed.dirs=&$JBOSS_ENDORSED_DIRS& -Djava.library.path=$JBOSS_HOME/server/default/lib -classpath &$JBOSS_CLASSPATH& org.jboss.Main -c default 1&$JBOSS_CONSOLE 2&&1 &/dev/null &&
&&& 8849 是默认的端口号
&&& 3. 重新 login linux ,启动 jboss 。查看一下 $JBOSS_HOME/server/default/log/server.log ,可以看到 JBoss 并未启动,原因是上边的配置选择的启动模式,只有当一个 JProfiler GUI(指 Windows XP 下安装的 jprofiler )的监听请求发过来时候,JProfiler才会真正的启动被监控的应用程序也就是 JBoss 。另外有一种启动模式与此不同,它可以直接启动被监控的应用程序而不必等待。这种配置稍微麻烦一点,以后在说。
&&& 客户端的配置和使用:
&&& 1. 运行 JProfiler 。第一次打开会有向导,忽略它。
&&& 2. 选择 Session-&Integration Wizard-&New Remote Integratation
&&& 3. 选择 On a remote computer;Platform of remote computer 选择 Linux x86/AMD 64;Next
&&& 4. 输入服务器 IP ;Next
&&& 5. 输入服务器上的 jprofiler 的安装路径,如 /opt/jprofiler4 ;next
&&& 6. 选择服务器的 JDK 环境,这里是:Sun,1.5.0,hotspot;next
&&& 7. 输入端口:这里是默认值 8849;next
&&& 8. 选择启动模式:这里选第一种 wait for a connection from the jprofiler GUI;next
&&& 9. 这里会列出需要在服务器端做的配置。上一步&服务器端的配置&我们已经做过了。如果在第 8 步选择了第二种启动方式 Don't wiat, start immediately ,这里也会列出相应的服务器端配置方法,可以参考。next
&&& 10. Finish
&&& 此时 session 会被启动。在 profiling settings 对话框里,不用做任何修改,ok 即可。此时 session 被启动。观察一下服务器,发现 JBoss 也启动了。这时就可以在客户端看到 jboss 的运行情况,比如内存的占用等等。
&&& 我用 jprofiler 主要是监控内存占用情况看是否有 member leak 。点左侧的 &VM Telemetry Views&可以看到 jboss 占用的内存情况。鍗氬?鍒嗙被锛

我要回帖

更多关于 jboss设置内存 的文章

 

随机推荐