weblogic内存溢出

合集下载

Weblogic巡检手册

Weblogic巡检手册
启动本地性能包
Backlog
STuning Connection Backlog Buffering
TCP允许接入连接个数
Use the Prepared Stateபைடு நூலகம்ent Cache
The prepared statement cache keeps compiled SQL statements in memory, thus avoiding a round-trip to the database when the same statement is used later. SeeTuning JDBC Applications.
WEBLOGIC巡检
WEBLOGIC检测
硬件机型
RX6600
是否集群

系统实际用户数
10
硬件检查,性能检查
WEBLOGIC进程
进入操作系统,登陆WEBLOIGC用户,命令:su - weblogic
Process
进程情况
进入操作系统,登陆Weblogic用户
命令:# ps -ef | grep java
负载状态
并发量以及业务负载,是否符合业务变化,线程比较高,加server
运行状态
Home>Summary of Deployments>mes-hotrolling-app(v116)>status
Performance
配置情况
硬件系统
内存溢出,磁盘IO等
察看锁
Windows:
Press Ctrl-Break on keyboard 3-5 times and the interval is 5-10 seconds
集群状态

WebLogic 组件反序列化漏洞补丁升级操作手册

WebLogic 组件反序列化漏洞补丁升级操作手册

weblogic反序列化补丁安装梁裕1、到weblogic官网下载补丁包(p2*******_1036_Generic.zip、p2*******_1036012_Generic.zip如果找不到的朋友,可以在回复中给我留下邮箱,我会定期回复。

)2、10.3.6对应的补丁包p2*******_1036012_Generic.zip ,补丁包需要依赖于一个大的升级包,所以需要把p2*******_1036_Generic.zip也下载下来。

3、登录linux的weblogic用户,切换到/home/weblogic/Oracle/Middleware/utils/bsu/目录下。

4、确认当前weblogic版本,并确认所有域的进程全部关闭./bsu.sh -prod_dir=/home/weblogic/Oracle/Middleware/wlserver_10.3/ -status=applied -verbose –view5、查看是否存在/home/weblogic/Oracle/Middleware/utils/bsu/cache_dir 目录,没有的需要手工创建。

6、将补丁包上传到/home/weblogic/Oracle/Middleware/utils/bsu/cache_dir目录下7、首先打大的升级包,解压p2*******_1036_Generic.zipunzip p2*******_1036_Generic.zipEJUW对应就是后面命令的patchlist8、执行补丁安装命令。

./bsu.sh -install-patch_download_dir=/home/weblogic/Oracle/Middleware/utils/bsu/cache_dir-patchlist=EJUW-prod_dir=/home/weblogic/Oracle/Middleware/wlserver_10.3 –verbose9、打序列化的补丁包,解压p2*******_1036012_Generic.zipunzip p2*******_1036012_Generic.zip./bsu.sh -install-patch_download_dir=/home/weblogic/Oracle/Middleware/utils/bsu/cache_dir-patchlist=ZLNA-prod_dir=/home/weblogic/Oracle/Middleware/wlserver_10.3 –verbose10、在打ZLNA补丁包时,遇到了内存溢出的问题。

解决前端开发中的内存溢出问题

解决前端开发中的内存溢出问题

解决前端开发中的内存溢出问题在前端开发中,内存溢出是一个常见而令人头疼的问题。

当网页出现内存溢出时,页面可能会变得卡顿、反应迟缓,或者甚至直接崩溃。

因此,解决这个问题对于提升用户体验和网页性能至关重要。

本文将探讨一些解决前端开发中内存溢出问题的方法和技巧。

一、清理无用的资源内存溢出往往是因为页面上存在大量无用的资源而引起的。

这些资源可能是未关闭的定时器、未解绑的事件监听器、未销毁的对象等等。

因此,当我们不再需要这些资源时,要及时清理它们,以避免内存溢出的发生。

可以通过手动销毁或者使用弱引用来实现资源的自动释放。

二、优化DOM操作DOM操作是前端开发中常见的操作之一,而频繁的DOM操作往往会导致内存占用过高。

因此,在开发过程中,我们可以通过优化DOM操作来减少内存占用。

一种常见的优化方法是将DOM操作集中在一个批处理中,而不是频繁地进行单独的操作。

此外,也可以考虑使用文档碎片来减少DOM操作对内存的影响。

三、避免内存泄漏内存泄漏是内存溢出的主要原因之一。

它通常是由于未及时释放不再使用的对象或者数据造成的。

为了避免内存泄漏,我们可以通过一些方法来进行监测和调试。

例如,使用浏览器的内存分析工具来检测内存占用情况;使用代码审查工具来查找潜在的内存泄漏问题等等。

四、合理管理内存内存管理是解决内存溢出问题的另一个重要方面。

在前端开发中,我们可以通过一些技术手段来管理内存的分配和释放。

一种常见的方法是使用垃圾回收机制来自动回收不再使用的内存。

JavaScript引擎会自动标记和清理不再使用的对象,以腾出内存空间。

此外,我们也可以手动管理内存,使用一些优化内存占用的技巧,如对象池、数据缓存等。

五、优化网络请求网络请求也是前端开发中常见的操作之一。

不合理的网络请求可能导致内存占用过高。

因此,我们在开发中应尽量减少不必要的网络请求,合理使用缓存机制,以及对请求的数据进行合理的清理和释放。

六、使用合适的数据结构数据结构的选择对于内存的占用具有重要影响。

Weblogic项目部署及相关问题解决

Weblogic项目部署及相关问题解决

Weblogic项目部署1、使用weblogic部署项目时,首先要启动一下开始菜单中weblogic目录下的QuickStart添加一个项目名称。

2、创建完项目之后,在weblogic安装目录\Middleware\user_projects\domains下面就可以看到自己刚刚创建的项目了。

随后启动目录下面的startWebLogic.cmd,启动完成后,启动ie 浏览器在地址栏输入http://localhost:7001/console,然后会出现一个登陆窗口,用户名为创建项目最后输入的名称,默认是weblogic,密码即为自己输入的密码.3、登陆进去之后我们就可以对我们所创建的项目进行配置了:配置服务项中的数据源:名称和JNDI名称我们都要使用项目中app-config-context.xml 配置文件项目中的JNDI名称。

这里使用的是sinosoftDataSource。

数据源配置完成后的参数: url:jdbc:oracle:thin:@10.32.14.73:1521:personal驱动程序类名称:oracle.jdbc.xa.client.OracleXADataSource由于在倒数第二步测试连接成功之后我就直接点击完成,导致最后一步没有完成,最后在部署项目完成之后项目报错找不到数据源,Unable to resolve 'sinosoftDataSource'. Resolved ''; remaining name 'sinosoftDataSource'之后就是在weblogic中部署需要部署的项目,也就是将项目中的webapps目录加载到weblogic中,一切完成之后就可以在浏览器中输入访问路径访问这个项目了。

weblogic部署中遇到的问题:1、内存溢出:修改项目路径\bin\目录下的setDomainEnv.cmd文件,将其中的内容:set MEM_PERM_SIZE_64BIT=-XX:PermSize=128mset MEM_PERM_SIZE_32BIT=-XX:PermSize=48m修改为:set MEM_PERM_SIZE_64BIT=-XX:PermSize=512mset MEM_PERM_SIZE_32BIT=-XX:PermSize=512mMyeclipse中的内存溢出修改:-Xms256m -Xmx512m -XX:CompileThreshold=8000 -XX:PermSize=128m-XX:MaxPermSize=512m -Xverify:none -daPaths中添加一个名称为antlr-2.7.6rc1.jar。

内存溢出工具使用方法培训

内存溢出工具使用方法培训
instances)。 当系统出现重启应用内存溢出时,通常需要重点查看该页面,检查是否存在类加载异常,无法GC的情况。
MAT常用功能页面介绍
Class Loader Explorer
按下图方式打开Class Loader Explorer页面,查看溢出时系统中存在哪些ClassLoader,每个 ClassLoader加载的类数量(Defined Classes)和类的实例数(No .Of instances)。
WebLogic、Tomcat的Javacore信息存放在控制台的输出信 息中。
WebSphere会在server目录(如 \IBM\WebSphere\AppServer\profiles\ AppSrv01\)下生成 独立的javacore文件。
Javacore可以通过以下方式手动获取:Linux下使用 kill -3 进程号,生成Javacore;Windows下通过选中java运行的命 令窗口,按组合键ctrl+break生成Javacore。
基本分析方法
根据heapdump提供的信息,找到javacore中可能出现 问题的代码段,然后进一步分析代码。
MAT安装
第一步:解压安装包
第二步:修改 MemoryAnalyzer.ini配置文件,将Xmx参数设置的足够大,以便能够打开大的 heapdump。
第三步:运行MemoryAnalyzer.exe 第四步:安装插件。
HeapDump生成比较慢,在文件生成过程中,一定不要杀掉进 程,当文件大小不再变化时,才可以杀毒进程。否则文件生成 的不完整,无法分析。
WebLogic、Tomcat需要在JVM参数中添加XX:+HeapDumpOnOutOfMemoryError,否则在内存溢出时, 是不会自动生成HeapDump的。WebSphere不需要添加该参数, 内存溢出时可自动生成heapdump文件。

IIS内存溢出解决步骤

IIS内存溢出解决步骤

IIS内存溢出解决步骤IIS(Internet Information Services)是一种用于托管和管理Web应用程序的Microsoft Web服务器。

内存溢出是指在运行过程中,应用程序使用的内存超过了系统所分配给它的内存,导致应用程序崩溃或运行缓慢。

解决IIS内存溢出问题需要一系列步骤,下面是一个详细的步骤指南。

1.确认内存溢出问题:首先,需要确认是否存在内存溢出问题。

可以使用Windows任务管理器或性能监视器来监视IIS进程的内存使用情况。

如果发现内存使用率持续增加,并且应用程序出现崩溃、运行缓慢或响应时间变长的情况,那么很可能存在内存溢出问题。

2.分析内存溢出原因:确定了存在内存溢出问题后,下一步是分析其原因。

可以使用性能监视器、IIS日志、事件查看器等工具来收集相关信息。

可能的原因包括内存泄漏、请求处理超时、缓存配置不当等。

3.优化应用程序:一些应用程序代码可能存在内存泄漏问题,这意味着在使用完内存后没有及时释放。

可以通过代码审查、性能剖析器等工具来定位并修复这些问题。

同时,还可以考虑优化数据库查询、减少不必要的HTTP请求等措施来降低内存使用。

4.调整IIS配置:根据分析结果,可能需要调整IIS的一些配置来解决内存溢出问题。

这些配置包括:-提高应用程序池的限制:可以增加应用程序池的内存限制和空闲时间限制,以便更好地适应应用程序的需求。

可以通过IIS管理器或命令行工具来进行配置。

-调整缓存设置:可以减少IIS的缓存大小,或者使用物理磁盘缓存替代内存缓存来减少内存使用。

可以在IIS管理器的配置文件中进行相关设置。

-优化会话状态管理:如果应用程序使用会话状态,可以将会话状态存储在SQL服务器或其他外部存储中,以减少内存使用。

可以通过配置文件或代码来进行设置。

-减少并发连接数:如果服务器负荷较高,可以减少并发连接数限制,以降低内存使用。

可以通过IIS管理器或配置文件来进行设置。

-启用动态压缩:如果应用程序的资源文件较大,可以启用IIS的动态压缩功能,以减少网络传输和内存使用。

weblogic优化指南

weblogic优化指南

优化WebLogic一、为WebLogic启动设置Java参数垃圾收集(GC)是指JVM释放Java堆中不再使用的对象所占用的内存的过程,而Java堆(Heap)是指Java应用程序对象生存的空间。

堆大小决定了GC的频度和时间。

堆越大,GC频度低,速度慢。

堆越小,GC频度高,速度快。

所以GC和堆大小是一组矛盾。

为了获取理想的Heap堆大小,需要使用-verbosegc参数(Sun jdk: -Xloggc:<file>)以打开详细的GC输出。

分析GC的频度和时间,结合应用最大负载所需内存情况,得出堆的大小。

通常情况下,我们建议使用可用内存(除操作系统和其他应用程序占用之外的内存)70-80%,为避免堆大小调整引起的开销,设置内存堆的最小值等于最大值即:-Xms=-Xmx。

而为了防止内存溢出,建议在生产环境堆大小至少为256M(Platform至少512M),实际环境中512M~1G左右性能最佳,2G以上是不可取的,在调整内存时可能需要调整核心参数进程的允许最大内存数。

对于sun 和hp的jvm,永久域太小(默认4M)也可能造成内存溢出,应增加参-XX:MaxPermSize=128m。

建议设置临时域-Xmn的大小为-Xmx的1/4~1/3, SurvivorRatio为8堆栈内存优化,修改配置文件:WL_HOME=C:\bea\weblogic81 "%WL_HOME%\common\bin\commEnv.cmd":bea#如果采用的上bea的JDK# JVM Heap(堆内存)最小尺寸为96M,最大尺寸为256Mset MEM_ARGS=-Xms96m -Xmx256m:sun#如果采用的是sun的JDK# JVM Heap(堆内存)最小尺寸为32M,最大尺寸为200M#公共变量对象的内存限制: PermSize:最小尺寸, MaxPermSize :最大允许分配尺寸set MEM_ARGS=-Xms32m -Xmx200m -XX:MaxPermSize=128m监视堆栈使用情况:下载JRockit JDK,该JDK已经自带了JRockit Mission Control工具,目前好像还没有单独下载JRockit Mission Control的地方,于JRockit JDK进行了绑定下载;在C:\bea\jrockit81sp5_142_08\console目录里面运行:C:\bea\jrockit81sp5_142_08\bin\java –Xmanagement -jar ManagementConsole.jar 如何监控weblogic呢?修改weblogic启动脚本startWebLogic.cmd,在里面加入-Xmanagement启动参数:%JAVA_HOME%\bin\java -Xmanagement %JAVA_VM% %MEM_ARGS% %JAVA_OPTIONS% =%SERVER_NAME% -Dweblogic.ProductionModeEnabled=%PRODUCTION_MODE% -Djava.security.policy="%WL_HOME%\server\lib\weblogic.policy" weblogic.Server二、设置与性能有关的配置参数在一个WebLogic域中,配置文件(config.xml)位于与管理服务器通信的机器里,提供WebLogic MBean的长期存储。

java out of memory解决方法

java out of memory解决方法

java out of memory解决方法摘要:1.Java 内存溢出的原因2.Java 内存溢出的后果3.Java 内存溢出的解决方法4.总结正文:一、Java 内存溢出的原因Java 内存溢出是指Java 程序在运行过程中,申请的内存超过了Java 虚拟机(JVM)能够分配的最大内存,导致程序无法正常运行的现象。

Java 内存溢出的原因有很多,以下是一些常见的原因:1.程序中存在大量的对象实例,导致内存占用过高。

2.程序循环过程中,频繁地创建和销毁对象,导致内存分配和回收的开销过大。

3.程序中存在内存泄漏,导致部分内存无法被及时回收。

4.JVM 启动参数配置不合理,导致JVM 分配的内存过小。

二、Java 内存溢出的后果Java 内存溢出会导致程序运行异常,甚至直接崩溃。

严重的内存溢出可能导致JVM 崩溃,进而影响整个系统的稳定性。

此外,内存溢出还会影响程序的性能,导致程序运行速度变慢。

三、Java 内存溢出的解决方法要解决Java 内存溢出的问题,需要从以下几个方面入手:1.优化程序代码- 减少不必要的对象实例,尽量使用局部变量和静态变量。

- 减少循环中对象的创建和销毁,尽量使用对象池技术。

- 定期检查程序内存使用情况,查找内存泄漏问题,并及时修复。

2.合理配置JVM 参数- 调整JVM 启动参数,增加堆内存的大小(-Xmx 参数)。

- 调整垃圾回收器(Garbage Collector, GC)的配置,优化内存回收策略。

3.使用内存分析工具- 使用Java 内存分析工具(如VisualVM、JProfiler 等)分析程序的内存使用情况,找出内存泄漏和瓶颈。

- 根据分析结果,优化程序代码和内存管理策略。

4.调整服务器硬件配置- 提高服务器的内存容量,以满足程序运行所需的内存需求。

- 优化服务器的硬件配置,提高服务器性能,降低内存使用压力。

四、总结Java 内存溢出问题需要综合考虑程序代码、JVM 参数、内存分析工具和服务器硬件配置等多方面因素。

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

WEBLOGIC 内存溢出解决方案
相关教程:
很好听听听吧
朱禹齐(原创)
正文
f-tuning)' has been busy for"697" seconds working on the request "Ht tp Request: aaa.do", which is more than the configured time (StuckThr eadMaxTime) of "600" seconds. Stack trace:
后来在公司文档中发现以前所有weblogic的部署使用的JDK都是Sun的,于是没有进行具体的分析就进行了更换。

今天客户报告系统反应极慢,查看后台发现包内存溢出异常,导致整个系统没有反应,于是进行了重启才恢复。

------------------------------------------------------------------------
以下内容转自其他Blog
------------------------------------------------------------------------
场景:
用户培训需要培训环境,培训环境搭好后,由于不常更新跑的时间较长,考验系统稳定性的时候到了,很可惜稳定性这个问题与我们大家的美好愿望一直背道而驰,天天求神拜佛也不行很不给面子,发现了一个原因解决了又出现了其他引起当机的因素,弄得是焦头烂额,下面就是我们发现的一个引起当机的原因,请各位提高警惕。

9月16日系统当机,Weblogic报出ng.OutOfMemoryError: PermGen space 异常,10-15分钟后就会发生<[STUCK] ExecuteThread: '2'for queue: 'weblogic.kernel.Default (self -tuning)'> <<WLS Kernel>> <> <> <1221538218253> <BEA-000339> <[STUCK] ExecuteThread: '2'for queue: 'weblogic.kernel.Default (self-tuning)
排查分析:
1、参考tomcatFAQ: /tomcat/FAQ/Deployment中如下内容:
Why does the memory usage increase when I redeploy a web application?
Because the Classloader (and the Class objects it loaded) cannot be r ecycled. They are stored in the permanent heap generation by the JVM, and when you redepoy a new class loader is created, which loads anot her copy of all these classes. This can cause OufOfMemoryErrors event ually.
Tomcat FAQ指出SUN JVM对处于permanent heap generation(默认4M)的内容不做垃圾回收会导致内存溢出错误。

2、在SUN 官方网站找到一个2003年的bug Report,/bugdatabase/view_bug.do?bug_id=4957990,Synopsis :PermHeap bloat in and only in server VM,直到现在状态还是6-Fix Understood, 没有修复。

解决方案:
根据上面的分析,再结合我们系统的环境(Weblogic 使用Solairs系统安装的JDK5.0)我们可以确定是由于SUN JVM对permanent heap generation 区域的内容不做垃圾回收造成应用动态Load class文件过多引起的OutOfMemory错误。

同时提出两套解决方案:
增加PermGen space参数大小
更换不同厂家JVM
考虑由于开发采用JDK1.5,换用其他JVM存在风险,故修改weblogic启动服务调用的批处理setDomainEnv.sh文件,将其中的一截片断进行修改:
if [ "${JAVA_VENDOR}" = "Sun" ] ; then
MEM_ARGS="${MEM_ARGS} ${MEM_DEV_ARGS} -XX:MaxPermSize=128m"
export MEM_ARGS
fi
中MaxPermSize改成1024m,验证问题是否存在。

实施结果:
系统再未出现OutOfMemoryError运行正常.该原因引起的当机问题解决。

从Java的经典书籍到Sun的官方网站都在宣扬Java的优势之一——垃圾回收,“自动释放内存,减轻编程负担”,可是谁能想到Sun的JVM还有这问题——不回收load class文件而产生的Class类对象。

所以不要迷信权威,根据现象一步一步抽丝剥茧、细心求证才是王道!
--------------------------------------------------------------------------------------------------------------------------
项目大了以后开发环境频繁deploy会导致weblogic报permGen 错误,查了一下,暂时解决的办法是:
在weblogic/common/bin/commEnv.sh中配置
MEM_ARGS="-Xms32m -Xmx200m -XX:MaxPermSize=128m"
-Xms:内存初始值
-Xmx:内存最大值(不要超过内存的80%)
MaxPermSize:PermGen(Class和Meta存放区域)区域内存最大值。

可调整为:
MEM_ARGS="-Xms512m -Xmx512m -XX:MaxPermSize=256m"
-XX:MaxPermSize改为256或512。

相关文档
最新文档