weblogic占用内存不降有啥办法

xcpxie011 2005-03-22 08:28:31
我用loadrunner 做压力测试,随着并发量的不断变大,占用的内存也变大,
是不是weblogic的垃圾回收出了问题?
struts+Hibernate架构的。
晚上做的测试,第二天早上来看,占用量没减少多少
有办法能降到并发测试前的内存占用量吗
我的主页:http://free2.e-168.cn/lovelyhome/index.jsp

...全文
1123 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wumingwangzi 2005-04-30
  • 打赏
  • 举报
回复
可能有一些资源没有释放的情况,一般的话,只升不降的话是肯定有问题的
chinahom 2005-04-28
  • 打赏
  • 举报
回复
WebLogic WorkShop 和Platform 8.1发布时的最小内存需要是512MB,这给那些计算机不能扩展到512MB内存以上的开发者带来了一个问题,开发者面临着两种选择:购买一个新的、能够支持1GB内存的计算机;或者是在现有的条件下调整优化配置参数。开发者可以做的第一件事是调整服务器和WebLogic WorkShop的Java虚拟机的内存堆的大小。当你创建一个Platform Domain,服务器的缺省的初始内存堆为256MB。这个设置使WebLogic Server启动时JVM申请并占用256MB内存。WebLogic WorkShop也是同样的配置。

降低上述配置到128MB,则可以在一共256MB物理内存的范围内启动WebLogic WorkShop和WebLogic Server实例。

这些设置可以在较小的内存条件下同时启动WebLogic WorkShop和WebLogic 服务器域而不会产生内存溢出或磁盘交换(磁盘交换大幅降低了开发进程)。进行这些设置需要定位到WebLogic WorkShop启动目录并编辑WorkShop配置文件,这个文件中定义了内存在启动时的配置参数。按照下面所示的更改相应的参数,保证启动初始只占用128MB内存。

用文本编辑器打开WebLogic Workshop的配置文件:"<BEAHOME>\weblogic81\workshop\Workshop.cfg"

-XX:-UseThreadPriorities -ea -Xmx128m -Xms64m -Xss256k……
上面的示例表示Java虚拟机的初始堆的大小属性设定为128MB。

下一步,修改WebLogic Server启动脚本中关于初始堆内存的配置。

我们以"<BEAHOME>\user_projects\platform\startWebLogic.cmd"为例,修改Platform域的配置。用文本编辑器打开启动脚本,在WebLogic Server的Java虚拟机启动之前添加如下配置:

set MEM_ARGS=-Xms128m -Xmx128m -XX:MaxPermSize=128m

当你开始使用这个域工作,你可以监视实际使用的内存堆的大小,并决定是否可以进一步减小初始堆的大小。监视可以通过WebLogic Server控制台的监视applet来完成。

如果仅仅是基本的Web页面开发并且只有你自己使用这个开发环境(一个开发者),一般不会使用超过90MB服务器的JVM堆。如果你确实做到了在基本的开发过程中把初始的堆调整到90至100MB,下一步就是从域中去掉不用的组件。例如:仅仅进行WebLogic Portal的开发,就不需要platform域中的集成和商务组件,这样在内存中就只保留WebLogic Server、WorkShop和WebLogic Portal组件。如果仅仅是进行基本的J2EE的开发,portal和integration的组件都不比保留。可以通过配置向导(configuration wizard)创建符合需要的域,而不是大而全的platform域。这里是WebLogic Server域,仅仅包含构建基本J2EE所必需的组件。

使用基本的WebLogic Server域能够有效降低服务器组件对内存的需要,可以让WebLogic WorkShop使用更多的内存。使用页面流组件开发独立的Web应用,然后把Web应用包含到门户应用中是有效可行的。开发者可以利用最小的内存需要开发独立的Web应用,然后整合在完整的门户中,在门户中整合Web应用只是组装即可。

类似的情况,如果你需要构建包含流程定义的integration应用,你不必完整的platform域,因为portal的组件并不是你所需要的,去除它们以节约内存。可以通过配置新的域或从服务器中解除portal部署。

额外的一步,你可以用Configuration Template Builder把经过你验证的优化配置创建为模板。通过选择你创建并优化配置的域创建新的可发布域模板,便于与项目组中其他开发者共享你优化并测试的域的配置。

另外,一旦你在这个域中创建了可重用的组件,你也可以通过这个定制的域来共享这些组件。

上述这些关于WebLogic Server域模板的用法鼓励配置的重用,并能够节约开发者在配置、设定开发、运行环境上的时间。多数项目开始时都采用了繁琐的配置,通过使用WebLogic域模板能够减少项目开始的配置时间,并使每个开发成员工作更有效。




congliu 2005-04-25
  • 打赏
  • 举报
回复
你在关了domain的dos程序之后,其实weblogic可能还在运行。
你应该在网页上,选择domain-》server-》control-》shutdown this server,这样强制关闭weblogic,这样可以减少资源的使用量
xcpxie011 2005-03-24
  • 打赏
  • 举报
回复
检查代码,是不是所有使用的资源在用完后释放掉了?
web开发中资源释放是怎么一会事,怎样判断呢?
loadrunner没有结束与服务器的连接,我把loadrunner关闭不就结束连接了吗
楼主查看内存是通过什么来看的?准确吗 ps命令准确

工程结构问题举个例子来讲是啥?
GJA106 2005-03-24
  • 打赏
  • 举报
回复
"随着并发量的不断变大,占用的内存也变大"
--这种状态正常,并不是java或weblogic专有的。
"晚上做的测试,第二天早上来看,占用量没减少多少"
--1.检查代码,是不是所有使用的资源在用完后释放掉了?
2.如果楼主的loadrunner没有结束与服务器的连接,那让服务器如何释放资源。
3.楼主查看内存是通过什么来看的?准确吗?
yeshucheng 2005-03-23
  • 打赏
  • 举报
回复
这个问题有很多因素,首先是你的工程结构问题,其次是你硬件也存在某些问题等等

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧