weblogic调优参数及监控指标
weblogic java_option 参数
weblogic java_option 参数WebLogic Server提供了一系列的Java选项参数,以控制Java 虚拟机的行为。
以下是一些常用的Java选项参数:1. -Xms: 初始Java堆大小2. -Xmx: 最大Java堆大小3. -XX:PermSize: 初始永久代大小4. -XX:MaxPermSize: 最大永久代大小5. -XX:NewSize: 初始新生代大小6. -XX:MaxNewSize: 最大新生代大小7. -XX:SurvivorRatio: 新生代中Eden区和Survivor区的比例8. -XX:NewRatio: 新生代和老年代的大小比例9. -XX:ParallelGCThreads: 并行垃圾回收线程数10. -XX:+UseParallelGC: 使用并行垃圾回收11. -XX:MaxGCPauseMillis: 最大垃圾回收暂停时间12. -XX:+HeapDumpOnOutOfMemoryError: 在发生OutOfMemoryError时输出堆转储文件13. -Dweblogic.security.SSL.ignoreHostnameVerification=true: 忽略SSL主机名验证14. -Dweblogic.security.SSL.protocolVersion=TLSv1.2: 使用TLSv1.2协议进行SSL/TLS通信15. -Dweblogic.MaxMessageSize: 设置WebLogic通信最大消息大小请注意,这只是一些常用的Java选项参数,您可以根据应用程序的需要进行调整。
对于一些高级调优参数,建议咨询WebLogic Server的官方文档。
Weblogic参数调优
Weblogic参数调优一、调优背景:应银监会总会需求,需对银监会派出机构客户风险监测预警系统进行1轮剔除网络环境的性能测试(在山东试运行阶段的性能测试,由于网络瓶颈较大,造成性能指标较差)。
由于时间紧张,只是匆忙搭建了测试环境,Weblogic、DB2等的参数均是默认设置,并未进行任何调优。
默认设置在系统使用人数不多的情况性能尚可,但当使用人数较多,或者进行大并发的性能测试时,则会显得捉襟见肘。
如:在本次测试过程中,在集团关联处的50并发,就会造成系统崩溃。
如图可见:在集团关联并发50的时候,队列长度已经高达103,空闲线程数已经为0,同时吞吐量极低,由此造成系统崩溃。
通过分析,查找到原因在于:JVM分配内存过少;线程池、连接池里分配的线程数以及容量过低,通过调优后解决了问题二、调优思路:一般来讲,J2EE应用架构环境下的系统调优,首先我们一般会从应用程序出发,去审核代码,做到代码级的优化,然后再调整应用服务器(BEA WebLogic8.1)和数据库(DB2)的参数,最后当然是调整操作系统和网络的性能(包括硬件升级)。
这是一种MDA的先进做法。
诚然,在许多项目中,不可能完全按照这个思路来做,我们把目标首先定位在应用系统所在的应用服务器(BEA WebLogic8.1)上,通过对BEA WebLogic8.1的参数进行设置,使WebLogic8.1能够在最优化的环境中去运行其系统,然后对DB2数据的参数进行优化设置,最后进行性能测试再找出导致性能瓶颈所在的SQL代码或JA V A程序,考量其修改的可行性,并进行最终问题优先级认定,与瓶颈模块进行协商解决性能问题。
当然,大多数时候都出现了性能问题后才想到调优,而且一般都是先进行系统参数调整,实在解决不了才会对代码进行检查。
实际上,我们应当将代码级的调优放在应用设计时来做,测试生产时修改代码将是一件极其痛苦的事情。
而本次测试由于时间紧张,只对Weblogic进行了参数调优,现将调优步骤进行说明:1.JVM调整:(1)首先,在D:\bea\user_projects\domains\mydomain下用编译模式打开startWebLogic.cmd,查找代码:call "%WL_HOME%\common\bin\commEnv.cmd"(windows)或者call "%WL_HOME%\common\bin\commEnv.sh"(linux/aix)找到后,在相应路径用编译模式打开该文件:(2)接着要弄清楚JDK厂商(是bea,还是sun、IBM等)set JA V A_VENDOR=BEA(此处说明应用的为BEA的JDK)(3)之后查找weblgoic运行模式:set PRODUCTION_MODE=默认是开发模式(线程计数默认为15)即为空,在上线时,应将其改为产品模式(线程计数默认为25):set PRODUCTION_MODE=ture(4)然后需修改分配给JVM的内存(默认为96M):因已确定厂商为BEA,运行模式为产品模式,所以找到::beaif "%PRODUCTION_MODE%" == "true" goto bea_prod_modeset JA V A_VM=-jrockitset MEM_ARGS=-Xms1024m -Xmx1024mset JA V A_OPTIONS=%JA V A_OPTIONS% -Xverify:nonegoto continue:bea_prod_modeset JA V A_VM=-jrockitset MEM_ARGS=-Xms1024m -Xmx1024m(此处即为分配给JVM的内存范围)goto continue可根据系统需要,修改分配的内存数注:如为32位的操作系统,则最大支持分配2G内存2.线程池调整:打开Weblogic,在路径:mydomain->服务器->myserver->右键打开“查看执行队列” weblogic.kernel.Default调整如下指标:(1) 线程计数—分配给此队列的线程数,建议值为: 100(2) 线程数增加—在出现溢出时,要添加到队列中的线程数,建议值为: 50(3) 最大线程数—此队列可以拥有的最大线程数。
weblogic线程池设置
图形化操作是在工作管理器中新建两个约束min和max如何修改WebLogic 9.x / 10.x 默认线程池大小2010/10/10 12:39 AM | 教主| 技术文章| 2 条评论了已经作者:老王来源:WebLogic中文爱好者官方文档指出,WebLogic 9 / WebLogic 10 的线程池是自调优的,并且在WebLogic 9的时候,通过修改config.xml可以修改默认线程池的最小值、最大值,但是很麻烦。
到了WebLogic 10gR3,连修改config.xml的办法都给取消了。
但是,可以通过在启动脚本增加如下参数,可以指定默认线程池的最小值、最大值:-Dweblogic.threadpool.MinPoolSize=100-Dweblogic.threadpool.MaxPoolSize=500如何修改weblogic默认线程池大小2010年12月27日wei发表评论阅读评论weblogic 9开始使用了线程自调优技术。
通过以下方法设置,可以指定默认线程的最大最小值。
方法一:修改启动脚本参数在启动脚本中,增加如下参数%JAVA_HOME%\bin\java %JAVA_VM% %MEM_ARGS% %JAVA_OPTIONS%=%SERVER_NAME%-Djava.security.policy=%WL_HOME%\server\lib\weblogic.policy-Dweblogic.threadpool.MinPoolSize=100 -Dweblogic.threadpool.MaxPoolSize=500%PROXY_SETTINGS% %SERVER_CLASS%方法二:修改config.xml在config.xml中,增加如下参数<server><name>AdminServer</name><self-tuning-thread-pool-size-min>100</self-tuning-thread-pool-size-min> <self-tuning-thread-pool-size-max>500</self-tuning-thread-pool-size-max> <listen-port>7923</listen-port><listen-address></listen-address></server>经过测试,以上两种方法适合weblogic9,10,11g。
Weblogic中间件运维经验汇总
Weblogic中间件运维经验汇总目录关于Weblogic参数调优的运维经验 (2)Weblogic性能调优的处理方法 (5)关于输电项目Weblogic安装的运维经验 (8)Weblogic回收数据库连接数配置的方法 (14)在Apache和Weblogic中分别部署静态页面的方法 (17)Weblogic Server性能调优经验 (20)WeblogicJVM堆参数设置方法 (24)关于Weblogic参数调优的运维经验报送单位:北京公司审核人:类型:业务应用关键字:GC垃圾回收1、引言为了提高维护人员运维水平,以集中与分享日常运行维护经验为目的,现进行典型经验的编制。
2、现象描述部分应用服务器出现宕机现象,在F5上查看时已经掉出集群状态。
3、处理过程停止宕机应用服务器上的Weblogic进程。
/home/weblogic/bea/user_projects/domains/pms/bin/setDomainEn v.sh文件中的启动内存大小并添加垃圾回收机制,修改后如下:MEM_ARGS="-Xms5248m -Xmx5248m -Xmn1536m-XX:SurvivorRatio=6-XX:+UseParNewGC-XX:+UseConcMarkSweepGC-XX:CMSFullGCsBeforeCompaction=20-XX:+UseFastAccessorMethods-XX:+AggressiveOpts"3、修改完成后重启Weblogic服务。
4、原因分析在收到报警信息后,对后台日志进行查看,报错信息如下:Exception in thread "CBM_正常处理任务线程" ng.OutOfMemoryError: Java heap spaceatoracle.jdbc.driver.OracleStatement.prepareAccessors(OracleStatement.ja va:868)atoracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatem ent.java:1045)atoracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPre paredStatement.java:839)atoracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatem ent.java:1132)atoracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePrepa redStatement.java:3316)atoracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3361)经过对报错日志分析,状态检修的CBM处理进程内存溢出报错,导致服务器宕机。
Weblogic常用监控方法及指标
性能测试工作室,专注于性能测试技术研究(JMSRuntimeJMSServersCurrentCount 返回当前JMS服务的连接数ConnectionsCurrentCount 返回本JMS服务器上当前的连接数JMSServersHighCount 返回自服务器启动后JMS服务的最大连接数ConnectionsHighCount 返回本JMS服务器自上次重置后的最大连接数JVMRuntimeHeapSizeCurrent 返回当前JVM堆中内存数,单位时字节HeapFreeCurrent 返回当前JVM堆中空闲内存数,单位时字节ExecuteQueueRuntimeExecuteThreadCurrentIdleCount 返回队列中当前空闲线程数PendingRequestOldestTime 返回队列中最长的等待时间PendingRequestCurrentCount 返回队列中等待的请求数Queue Length 队列长度JDBCConnectionPoolRuntimeWaitingForConnectionHighCount返回本JDBCConnectionPoolRuntimeMBean 上最大等待连接数WaitingForConnectionCurrentCount 返回当前等待连接的总数MaxCapacity 返回JDBC池的最大能力WaitSecondsHighCount 返回等待连接中的最长时间等待者的秒数ActiveConnectionsCurrentCount 返回当前活动连接总数ActiveConnectionsHighCount 返回本JDBCConnectionPoolRuntimeMBean 上最大活动连接数注:weblogic通常监控JVM和执行队列,JDBC连接池,其中执行队列最关键的指标是Queue Length 队列长度weblogic一般来说监控jvm的使用、执行线程队列情况、和连接池的变化情况,还有一个很重要的检查weblogic的console日志这里经常能反映一些很重要到情况。
weblogic调优参数及监控指标
weblogic调优参数对Weblogic的调优主要从SEVER、ExecuteQueue、JDBC等几个方面的相关参数进行调优:一、SERVER在mydomain->Servers->myserver->Configuration->Tuning->“Enable Native IO”中: 1、Native IOEnabledTRUE,表示该Server使用本地I/O2、SocketReaders设置在执行线程中专用做Socket Readers的百分比3、Maximum Open Sockets最大打开Socket数4、Stuck Thread MaxTime堵塞线程时间,超过这个时间没有返回的执行线程,系统将认为是堵塞线程如果weblogic认为某个队列中的所有的线程全部堵塞的话,weblogic将会增加执行线程的数量。
注意:执行线程的数量一旦增加,目前weblogic不会去减少他,如果增加了一些线程以后再次出现overflow的警告,weblogic会继续增加执行线程的数量,一直到达到上限为止。
5、Stuck Thread Timer Interval系统检查堵塞线程的时间间隔6、Low Memory GC Threshold当可用内存小于该百分比时,垃圾回收启动7、Low Memory Granularity Level当两次检测的可用内存变化超过该百分比时,垃圾回收启动8、Low Memory Sample Size在一次检测中的取样次数9、Low Memory Time Interval检测间隔时间10、Accept Backlog等待队列中最多可以有多少TCP连接等待处理,如果在许多客户端连接被拒绝,而在服务器端没有错误显示,说明该值设得过低。
如果连接时收到connection refused消息,说明应提高该值,每次增加25%二、ExecuteQueue在mydomain->Servers->myserver ->Monitoring->Monitor all Active Queues... ->Configuration->weblogic.kernel.Default->1、ThreadCount服务器初始创建的执行线程的数量,设置原则:增大机器的最大并发线程数使处理器利用率达到最大。
WAS监控调优思路及工具汇总
WAS整理——侯泰浩一、WAS是什么IBM WAS的全称是IBM WebSphere Application Server,和Weblogic一样,是当前主流的 App Server (应用服务器)之一1.1术语WAS: IBM Websphere Aplication Server, 中间件应用服务程序;IHS: IBM HTTP SERVERDM: Deployment Manager, WAS中的集群管理节点;ND: NodeAgent, WAS中的节点监听程序;JVM: Java Virtual Machine, Java虚拟机;GC: Gabage Collection, 自动垃圾回收1.2W AS ND集群基本概念及体系结构WAS集群由一组应用服务器组成,每个服务器上部署了同样的应用程序。
通过集群可以实现可扩展性(服务更多客户,提高吞吐量),负载均衡(平衡负载资源,使资源得以有效利用),高可用性(提供故障恢复和补偿机制,在关键性业务中提供容错功能)。
下图是ND分布式环境的体系结构,包括单元、节点、服务器等基本概念。
WAS群集是为了实现集中管理和负载均衡同时可以实现故障转移,一个2节点的群集拓扑如下:其中,DeploymentManager通过每个节点上的NodeAgent完成对AppServer的配置修改、应用发布以及启动和停止,实现集中管理。
如果安装多个IHS,并实现负载均衡和分发,可以使用防火墙的负载分发功能。
每个节点上的AppServer可以是多个的。
二、WAS基本参数配置三、WAS的调优思路3.1基本思路部署在WAS上的应用程序,其性能是由多个因素决定的。
例如网络、数据库、内存分配、WAS服务器的配置以及应用程序的设计。
对于一个标准的 J2EE应用,一个请求到来时,往往需要经过多次转发:网络 > Web服务器Web容器 > EJB容器 > 数据库。
而每一次转发,都可能造成请求处理的瓶颈,使得应用程序整体性能下降。
WEBLOGIC性能参数
WEBLOGIC性能参数MessagesLogged –该weblogic服务器实例产生的日志消息总数Number of total log messages generated by this instance of the weblogic server.Registered - 如果已取消注册由该对象表示的MBean,则返回falseReturns false if the MBean represented by this object has been unregistered.CachingDisabled - 禁用代理中的缓存的专用属性Private property that disables caching in proxies.ServerRuntimeSocketsOpenedTotalCount - 返回本服务器上登记的socket的总数Return the total number of registrations for socket muxing on this sever.Registered - 如果已取消注册由该对象表示的MBean,则返回falseReturns false if the MBean represented by this object has been unregistered.ActivationTime –返回服务器激活时间Return the time when the server was started.CachingDisabled -禁用代理中的缓存的专用属性Private property that disables caching in proxies.OpenSocketsCurrentCount –返回本服务器上当前登记的socket数Return the current number sockets registered for socket muxing on this server.AdminServerListenPort –返回管理服务器监听的端口Return the port on which admin server is listening for connections.RestartsTotalCount –返回自群集上次激活后本服务器重启的总次数Return the total number of restarts for this server since the cluster was last activated.ListenPort –返回当前服务器监听连接的端口Return the port on which this server is listening for connections.ServletRuntimeExecutionTimeAverage –返回所有servlet自被创建后被调用的平均数Returns the average amount of time all invocations of the servlet have executed since created.CachingDisabled - 禁用代理中的缓存的专用属性Private property that disables caching in proxies.Registered - 如果已取消注册由该对象表示的MBean,则返回falseReturns false if the MBean represented by this object has been unregistered.ExecutionTimeHigh –返回servlet自创建后耗时最长的一个交易调用的时间Returns the amount of time the single longest invocation of the servlet has executed since created.ReloadTotalCount –返回servlet被重载总次数Returns the total number of times the servlet has been reloaded.PoolMaxCapacity –返回单线程模式下servlet的最大能力Returns the maximum capacity of this servlet for single thread model servlets.InvocationTotalCount –返回servlet被调用的总次数Returns the total number of times the servlet has been invoked.ExecutionTimeLow –返回servlet自创建后单次最短调用消耗的时间Returns the amount of time the single shortest invocation of the servlet has executed since created. Note that for the CounterMonitor, the difference option must be used.ExecutionTimeTotal –返回servlet自被创建后所有被调用的总时间数Returns the amount of time all invocations of the servlet has executed since created. WebAppComponentRuntimeSessionsOpenedTotalCount –返回该服务器上打开的会话总数Returns the total number of sessions opened in this server.CachingDisabled - 禁用代理中的缓存的专用属性Private property that disables caching in proxies.Registered - 如果已取消注册由该对象表示的MBean,则返回falseReturns false if the MBean represented by this object has been unregistered.OpenSessionsHighCount –返回本服务器上打开会话总数的最大值Returns the high water mark of the total number of open sessions in this server. The count starts at zero each time the server is activated. Note that this is an optimization method for a highly useful statistic that could be implemented less efficiently using change notification.OpenSessionsCurrentCount –返回当前component打开的会话总数Returns the current total number of open sessions in this component. EJBStatefulHomeRuntimeStateless –如果mbean代表无状态会话bean,返回true,否则返回false。
jvm监控指标
jvm监控指标JVM(Java虚拟机)监控指标是用于监控JVM的性能、健康状况和资源利用率的指标。
这些指标对于JVM的管理和调优非常重要。
以下是一些常见的JVM监控指标,可以帮助开发人员和系统管理员更好地了解JVM的运行情况。
1.内存使用-堆内存使用情况:包括堆内存的大小、已使用的堆内存量以及垃圾回收的情况。
-非堆内存使用情况:包括非堆内存的大小、已使用的非堆内存量。
-GC统计信息:包括GC的次数、时间、暂停时间等。
2.类加载-已加载的类数量:显示当前已加载的类的数量。
-类加载的时间:显示类加载的时间,可以帮助识别潜在的性能问题。
3.线程-活跃线程数量:显示当前活跃的线程数目。
-线程CPU时间:显示线程的CPU使用时间,可以帮助识别线程是否过于繁忙。
4.垃圾回收(GC)-GC时间:显示GC的时间,包括GC的总时间、平均每次GC的时间等。
-对象的分配速率:显示JVM每秒钟分配对象的速率。
5.文件描述符-打开的文件描述符数量:显示已打开的文件描述符的数量,可以帮助检测是否存在文件句柄泄漏。
6.CPU使用率-JVM的CPU使用率:显示JVM的CPU使用率,可以帮助识别JVM是否过于繁忙。
7.网络IO-网络IO的吞吐量:显示网络数据的传输速率。
-网络连接数量:显示已建立的网络连接数量。
8.磁盘IO-磁盘IO的吞吐量:显示磁盘数据读写的速率。
-磁盘空间使用情况:显示磁盘使用量、剩余空间等。
9.JVM运行状态-JVM运行时间:显示JVM已运行的时间。
-JVM进程ID:显示JVM的进程ID。
10.错误和异常-异常数量:显示抛出的异常数量。
-错误数量:显示发生的错误数量。
这些监控指标可以通过不同的工具和技术来收集和分析,比如使用JMX,可以通过JConsole、Java Mission Control等工具来监控JVM。
此外,还有很多第三方监控工具,比如VisualVM、Grafana等,可以提供更丰富的监控指标和可视化图表,帮助开发人员和系统管理员更好地了解JVM的运行情况,以便进行调优和故障排查。
性能监控与调优措施
性能监控与调优措施在当今数字化的时代,无论是企业的业务系统、网站应用,还是个人使用的电子设备,性能的优劣都直接影响着用户体验和工作效率。
性能监控与调优就成为了确保系统稳定、高效运行的关键环节。
性能监控是指对系统的各种性能指标进行实时或定期的测量和收集,以便了解系统的运行状况。
这些性能指标可以包括 CPU 使用率、内存利用率、磁盘 I/O 速度、网络带宽使用情况等。
通过性能监控,我们能够及时发现系统中可能存在的性能瓶颈,为后续的调优工作提供依据。
要有效地进行性能监控,首先需要选择合适的监控工具。
市场上有许多性能监控工具可供选择,如 Nagios、Zabbix、Prometheus 等。
这些工具可以根据系统的类型和需求进行配置,以收集所需的性能数据。
在监控过程中,数据的采集频率也非常重要。
采集频率过高可能会对系统性能产生一定的影响,而采集频率过低则可能错过关键的性能变化。
一般来说,对于关键性能指标,采集频率可以设置得较高,而对于一些相对不那么重要的指标,可以适当降低采集频率。
除了选择工具和设置采集频率,确定监控的重点也至关重要。
不同的系统可能有不同的性能关键节点。
例如,对于一个数据库系统,数据库的查询性能、索引使用情况等可能是重点;对于一个 Web 应用,服务器的响应时间、并发处理能力等则可能更为关键。
当通过性能监控发现了系统的性能问题后,就需要采取调优措施来解决这些问题。
性能调优是一个复杂而细致的过程,需要综合考虑多个方面的因素。
在硬件层面,如果发现系统的内存不足导致性能下降,可以考虑增加内存容量;如果磁盘 I/O 成为瓶颈,可以更换为更快的磁盘或使用磁盘阵列(RAID)技术来提高磁盘性能。
在软件层面,对于数据库系统,可以优化查询语句、创建合适的索引、调整数据库参数等;对于操作系统,可以优化进程调度算法、调整内核参数等。
以 Web 应用为例,如果服务器的响应时间过长,可能是由于代码逻辑不合理导致的。
weblogic 优化
优化WebLogic 服务器性能参数WebLogic 配置文件(config.xml)包含了大量很直观的与性能有关的参数,能通过配置环境与应用程序得到很好的优化。
基于系统的需要调整这些参数不仅能改善单个点的性能,而且能提高整个应用程序性能的可衡量性。
试着采用下列WebLogic配置方法,或许能使你的系统达到最佳状态:一修改运行队列线程数的值。
在WebLogic 中队列元素的线程数等于同时占用运行队列的应用程序的数目。
当任务加入一个WebLogic 实例,它就被放到执行队列中,然后分配给任务一个线程来运行。
线程消耗资源,因此要小心处理这个属性——增加不需要的值,会降低性能。
二,如果可能,使用自带的性能包(NativeIOEnabled=true)。
三,使用特定的应用程序执行队列。
四,使用JDBC连接池时,修改下列属性:n 驱动名称:使用小的驱动或者jDriver。
n 初始容量:设为与最大容量相同的值。
n 最大容量:其值至少应与线程数相同。
五,把连接池的大小设为与执行队列的线程数相同。
六,设置缓冲。
七,为Servlet和JSP使用多个执行队列。
八,改变JSP默认的Java编译器,javac 比jikes或sj要慢。
优化WebLogic提要:n 为WebLogic 启动设置Java 参数。
n 设置与性能有关的配置参数。
n 调整开发与产品模式默认值。
n 使用WebLogic “自有的IO ”性能包。
n 优化默认执行队列线程。
n 优化连接缓存。
n 如何提高JDBC 连接池的性能。
n 设置Java 编译器。
n 使用WebLogic 集群提高性能。
n 监视WebLogic 域。
一、为WebLogic 启动设置Java 参数只要启动WebLogic ,就必须指定Java 参数,简单来说,通过WebLogic.Server 域的命令行就可以完成,不过,由于这样启动的过程冗长并且易于出错,BEA 公司推荐你把这个命令写进脚本里。
weblogic启动内存配置[最新]
Weblogic 启动内存配置1、找到配置文件位置,默认路径是wlserver_10.3/common/bin/commEnv.sh2、找到commEnv.sh文件,修改此配置文件if [ "$PRODUCTION_MODE" = "true" ]; thencase $JA V A_VENDOR inBEA)JA V A_VM=-jrockitMEM_ARGS="-Xms512m -Xmx2048m";;HP)JA V A_VM=-serverMEM_ARGS="-Xms512m -Xmx2048m -XX:MaxPermSize=512m";;IBM)JA V A_VM=MEM_ARGS="-Xms512m -Xmx2048m";;Sun)JA V A_VM=-serverMEM_ARGS="-Xms512m -Xmx2048m -XX:MaxPermSize=512m";;*)JA V A_VM=MEM_ARGS="-Xms512m -Xmx2048m";;esacelsecase $JA V A_VENDOR inBEA)JA V A_VM=-jrockitMEM_ARGS="-Xms512m -Xmx2048m"JA V A_OPTIONS="${JA V A_OPTIONS} -Xverify:none";;HP)JA V A_VM=-clientMEM_ARGS="-Xms512m -Xmx2048m -XX:MaxPermSize=512m";;IBM)JA V A_VM=MEM_ARGS="-Xms512m -Xmx2048m";;Sun)JA V A_VM=-clientMEM_ARGS="-Xms512m -Xmx2048m -XX:MaxPermSize=512m"JA V A_OPTIONS="${JA V A_OPTIONS} -Xverify:none";;*)JA V A_VM=MEM_ARGS="-Xms512m -Xmx2048m";;红色标注的位置是启动时分配的内存大小,可根据实际需求进行调整。
WebLogic的日常操作和监控
WebLogic Server启动验证 启动验证
WebLogic的其他启动方式 的其他启动方式
• 如果想从WebLogic的console启动Managed Server, 必须配置NodeManager进程及Machine组件,并将需 要在console中启动的Managed Server target到对应的 Machine中 • 一般在3台及3台主机组成的Domain中,尽量少用 Machine配置,减少配置层次,有利于提高系统的稳定 性。
• 管理和监控接口丰富
• MBEAN • SNMP
• 与第三方实现嵌入
• Wily • Load Runner
Weblogic console简介 简介
• 基于主控Server的web应用的监控工具 • 具有良好交互性的图形化监控配置工具 • 具有强大功能的管理配置监控工具
• • • • • • 部署、配置应用和Server 停止和启动Servers 监控Domain、Server安全及性能 监控应用性能 观察Domain、Server日志 其他服务和组建的监控管理功能(监控JDBC Connection pool ,JTA,JMS等)
当前线程情况
数据库连接池使用情况
数据库连接池使用情况
• Active Connections Average Count
应用同一时刻使用的数据库连接平均数
• Active Connections Current Count
当前应用正在使用的数据库连接数
• Active Connections High Count
在这条日志信息中,它们的格式是: 时间戳,错误级别,子系统 ,机器名,Server名称,线程号,用户号,事务号,.. 信息号 ,文本信息。 如果这信息包括跟踪堆栈的信息,这些信息将紧跟在这条信息 后面。
WebLogic优化经验谈
WebLogic优化经验谈本文从J2EE应用架构来分别剖析系统调优,首先我们一般会从应用程序出发,去审核代码,做到代码级的优化,然后再调整应用服务器(BEA WebLogic8.1)和数据库 (Oracle9i)的参数,最后当然是调整操作系统和网络的性能(包括硬件升级)。
诚然,在我遇到的很多项目中,都是出现了性能问题后才想到调优,而且一般都是先进行系统参数调整,实在解决不了才会对代码进行检查.实际上,我们应当将代码级的调优放在应用设计时来做,测试生产时修改代码将是一件极其痛苦的事情。
第一章应用程序调优1.1.1 通用代码调优1.1.2 减小没有必要的操作对象的创建是个很昂贵的工作,所以我们应当尽量减少对象的创建,在需要的时候声明它,初始化它,不要重复初始化一个对象,尽量能做到再使用,而用完后置null有利于垃圾收集。
让类实现Cloneable接口,同时采用工厂模式,将减少类的创建,每次都是通过clone()方法来获得对象。
另外使用接口也能减少类的创建。
对于成员变量的初始化也应尽量避免, 特别是在一个类派生另一个类时。
异常抛出对性能不利。
抛出异常首先要创建一个新的对象。
Throwable接口的构造函数调用名为, fillInStackTrace()的本地(Native)方法,fillInStackTrace()方法检查堆栈,收集调用跟踪信息。
只要有异常被抛出,VM 就必须调整调用堆栈,因为在处理过程中创建了一个新的对象。
异常只能用于错误处理,不应该用来控制程序流程。
此外, 建议关闭Debug输出,尽量少用串行化、同步操作和耗时昂贵的服务(如Date())。
1.1.3 使用合适的类型当原始类型不能满足我们要求时,使用复杂类型。
String和StringBuffer 的区别自不必说了,是我们使用最多的类型,在涉及到字符运算时,强烈建议使用StringBuffer。
在做String匹配时使用intern()代替equal()。
weblogic restful参数
weblogic restful参数摘要:1.Weblogic 介绍2.RESTful API 概述3.Weblogic RESTful 参数详解4.应用Weblogic RESTful 参数的实例5.总结正文:1.Weblogic 介绍Weblogic 是美国Oracle 公司出品的一个application server,它是一个基于Java 的、分布式的、支持多协议的、与平台无关的Web 应用服务器。
Weblogic 能够部署和运行Java EE 应用,支持的服务包括Servlet、JSP、JavaBean、EJB 等,同时也支持HTML、XML 等网络协议。
2.RESTful API 概述REST(Representational State Transfer)是一种基于HTTP 协议的Web 服务架构风格。
它强调简单性、可扩展性和可维护性,通过使用HTTP 协议的方法(如GET、POST、PUT、DELETE)和资源(如URL)来实现客户端与服务器之间的通信。
RESTful API 是一种遵循REST 原则的Web 服务接口设计风格,广泛应用于现代Web 应用开发。
3.Weblogic RESTful 参数详解Weblogic RESTful 参数是指在Weblogic 中配置和优化RESTful Web 服务的相关设置。
主要包括以下几方面:(1)端口号:Weblogic RESTful 服务默认监听8080 端口,用户可以根据需要修改为其他端口。
(2)协议:Weblogic RESTful 服务支持多种协议,如HTTP、HTTPS 等。
用户可以根据需要进行选择。
(3)服务名称:用于标识Weblogic RESTful 服务,方便客户端调用。
(4)虚拟主机:设置Weblogic RESTful 服务所在的虚拟主机,用于区分不同的服务实例。
(5)是否启用安全:根据需要设置Weblogic RESTful 服务是否启用安全策略,如认证、授权等。
WEBLOGIC启动JVM参数设置经验
WEBLOGIC启动JVM参数设置经验2011-11-01 08:41:46分类:Linux1. 堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。
32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。
我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。
典型设置:o java -Xmx3550m -Xms3550m -Xmn2g -Xss128k-Xmx3550m:设置JVM最大可用内存为3550M。
-Xms3550m:设置JVM促使内存为3550m。
此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。
-Xmn2g:设置年轻代大小为2G。
整个JVM内存大小=年轻代大小 + 年老代大小 + 持久代大小。
持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小。
此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8。
-Xss128k:设置每个线程的堆栈大小。
JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K。
更具应用的线程所需内存大小进行调整。
在相同物理内存下,减小这个值能生成更多的线程。
但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右。
o java -Xmx3550m -Xms3550m -Xss128k -XX:NewRatio=4 -XX:SurvivorRatio=4 -XX:MaxPermSize=16m -XX:MaxTenuringThreshold=0-XX:NewRatio=4:设置年轻代(包括Eden和两个Survivor区)与年老代的比值(除去持久代)。
设置为4,则年轻代与年老代所占比值为1:4,年轻代占整个堆栈的1/5-XX:SurvivorRatio=4:设置年轻代中Eden区与Survivor区的大小比值。
oracle 监控指标告警阈值
oracle 监控指标告警阈值Oracle数据库是企业中常用的关系型数据库之一,为了确保数据库的高可用性和性能稳定,对数据库的监控和告警是至关重要的。
在Oracle数据库中,监控指标的告警阈值的设置对于及时发现和解决数据库问题至关重要。
下面是相关参考内容,用于设置Oracle监控指标的告警阈值。
1. CPU利用率:CPU利用率是Oracle数据库中一个重要的监控指标,若超过一定阈值,可能会导致数据库性能下降。
常见的建议阈值是80%。
如果超过该阈值,可能需要进行性能优化或者添加更多的CPU资源。
2. 内存利用率:内存利用率是Oracle数据库中的另一个重要指标。
建议的告警阈值通常是70%,如果超过该阈值,可能会引发内存不足的问题。
需要注意的是,不同的服务器配置和数据库规模可能会导致阈值的差异。
3. 磁盘空间利用率:磁盘空间利用率是监控数据库中磁盘空间的指标。
通常建议设置磁盘空间利用率的阈值为80%,如果超过该阈值,可能会引发磁盘空间不足的问题。
此外,还应该监控数据库表空间的利用率,以及其他重要的数据文件的空间利用率。
4. 日志文件切换时间:日志文件切换时间是监控数据库日志切换的指标。
正常情况下,日志文件切换的时间应该尽量保持稳定,超过一定阈值可能会导致数据库性能下降。
常见的建议阈值是每小时一次,如果切换时间超过2小时,可能需要检查数据库是否存在问题。
5. 连接数:数据库的并发连接数是一个重要的监控指标。
过多的连接数可能导致数据库性能下降。
建议的告警阈值是数据库的最大连接数的80%,如果连接数超过该阈值,可能需要增加数据库的最大连接数或者进行性能优化。
6. 数据库死锁:数据库死锁是指多个会话竞争同一资源而导致的互相等待的情形。
建议设置一个阈值来监控数据库死锁的发生次数,超过该阈值可能需要考虑调整数据库事务并发控制策略或者通过添加适当的索引来提高数据库性能。
7. 数据库错误日志:数据库错误日志记录了数据库中发生的错误信息,指标的阈值设置可以基于错误日志的记录数量或错误级别。
weblogic调优(实用)
Execute Queue: Thread Count 15 threads 25 threads
JDBC Connection Pool: MaxCapacity 15 connnections 25 connections
通过启动管理控制台,在域(如:mydomain)> 配置 > 常规选择产品模式。
修改jdbc数据库连接池,修改为初始15,最大100。
5、WebLogic性能优化——线程数
线程数Thread Count
weblogic服务在接收到请求后,会交给后台的线程来处理,线程数决定了并发处理能力的大小。
WebLogic性能优化——线程数
修改了thread count的值后,要点击“应用(Apply)”按钮,并重启服务后,参数才能生效。
默认15,一般以服务器的CPU个数为基准,每个CPU可负担25个线程,最好不要超过50个
进入WebLogic控制台——左边窗口的mydomain——servers——点击myserver——Configuration——General(常规)——点击Advanced Options(高级选项 )的Show(显示)链接——
最下面的Configure Execute Queues(配置执行队列) 链接——weblogic.kernel.Default链接——Thread Count(线程计数)参数。的确是隐藏的比较深。修改Thread Count的值,
然后重启WebLogic就可以生效了。
6、License
主要检查4项:cpu、expiratioin、ip、units。
进入WebLogic控制台——左边窗口的mydomain——servers——点击myserver——Configuration/Tuning
Weblogic内存溢出及常用参数配置
Weblogic内存溢出及常用参数配置一、WebLogic内存溢出最近访问量门户访问量突然增大,总是内存溢出,频繁宕机,调整了很多参数没起作用,偶然发现Weblogic域在不断增大,罪魁祸首竟然是Weblogic的诊断文件,也是造成Weblogic内存溢出的主要原因。
当Weblogic启动时就加载了每个Server上的诊断文件,占用了大部分内存分配,用户访问量越大这个文件也随之越大,将他删除后重新启动服务,八个Server竟然也只用了6分钟,部署项目也只需7,8分钟,一直平稳运行,再无内存溢出现象。
该文件地址:/bea/user_projects/domains/{domain_name}/servers/{Server_name}/data/s tore/diagnostics/*.DAT(注:AdminServer下该诊断文件为1M左右正常)但是该文件还会继续生成增大,我们的域中并没有配置相关启动诊断文件的设置,Bea售后也无法解释,但可以通过尝试增加启动参数(ui.disableInstrumentation=true)来控制该诊断文件的增长,在/bea/user_projects/domains/{domain_name}/bin/startWebLogic.sh中:if [ "${WLS_REDIRECT_LOG}" = "" ] ; thenecho "Starting WLS with line:"echo "${JAVA_HOME}/bin/java ${JAVA_VM} ${MEM_ARGS} ${JAVA_OPTIONS} ui.disableInstrumentation=true =${S ERVER_NAME}-Djava.security.policy=${WL_HOME}/server/lib/weblogic.policy ${PROXY _SETTINGS} ${SERVER_CLASS}"${JAVA_HOME}/bin/java ${JAVA_VM} ${MEM_ARGS} ${JAVA_OPTIONS}ui.disableInstrumentation=true =${SE RVER_NAME}-Djava.security.policy=${WL_HOME}/server/lib/weblogic.policy ${PROXY_SETTINGS} ${SERVER_CLASS}elseecho "Redirecting output from WLS window to ${WLS_REDIRECT_LOG}"${JAVA_HOME}/bin/java ${JAVA_VM} ${MEM_ARGS} ${JAVA_OPTIONS}ui.disableInstrumentation=true =${SE RVER_NAME}-Djava.security.policy=${WL_HOME}/server/lib/weblogic.policy ${PROXY_SETTINGS} ${SERVER_CLASS} >"${WLS_REDIRECT_LOG}" 2>&1该参数控制netui的诊断文件的生成。
vcenter datastore监控阈值
vCenter Datastore监控阈值可以参考以下建议:
1. 存储空间使用率:监控Datastore的存储空间使用情况,当存储空间使用率达到80%时,发出警报。
2. I/O性能:监控Datastore的I/O性能,当平均I/O响应时间超过一定阈值(如10毫秒)时,发出警报。
3. 平均带宽使用率:监控Datastore的平均带宽使用情况,当平均带宽使用率超过一定阈值(如80%)时,发出警报。
4. CPU使用率:监控Datastore的CPU使用情况,当CPU使用率超过一定阈值(如80%)时,发出警报。
5. 内存使用率:监控Datastore的内存使用情况,当内存使用率超过一定阈值(如80%)时,发出警报。
以上阈值仅供参考,具体阈值可根据实际环境和业务需求进行调整。
同时,建议定期检查和监控Datastore的性能指标,以确保其正常运行。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Weblogic调优参数及监控weblogic调优参数对Weblogic的调优主要从SEVER、ExecuteQueue、JDBC等几个方面的相关参数进行调优:一、SERVER在mydomain->Servers->myserver->Configuration->Tuning->“Enable Native IO”中: 1、Native IOEnabledTRUE,表示该Server使用本地I/O2、SocketReaders设置在执行线程中专用做Socket Readers的百分比3、Maximum Open Sockets最大打开Socket数4、Stuck Thread MaxTime堵塞线程时间,超过这个时间没有返回的执行线程,系统将认为是堵塞线程如果weblogic认为某个队列中的所有的线程全部堵塞的话,weblogic将会增加执行线程的数量。
注意:执行线程的数量一旦增加,目前weblogic不会去减少他,如果增加了一些线程以后再次出现overflow的警告,weblogic会继续增加执行线程的数量,一直到达到上限为止。
5、Stuck Thread Timer Interval系统检查堵塞线程的时间间隔6、Low Memory GC Threshold当可用内存小于该百分比时,垃圾回收启动7、Low Memory Granularity Level当两次检测的可用内存变化超过该百分比时,垃圾回收启动8、Low Memory Sample Size在一次检测中的取样次数9、Low Memory Time Interval检测间隔时间10、Accept Backlog等待队列中最多可以有多少TCP连接等待处理,如果在许多客户端连接被拒绝,而在服务器端没有错误显示,说明该值设得过低。
如果连接时收到connection refused消息,说明应提高该值,每次增加25%二、ExecuteQueue在mydomain->Servers->myserver ->Monitoring->Monitor all Active Queues... ->Configuration->weblogic.kernel.Default->1、ThreadCount服务器初始创建的执行线程的数量,设置原则:增大机器的最大并发线程数使处理器利用率达到最大。
对于服务器端操作比较多的线程,应该减少线程计数;对于客户端操作比较多的,应该增加线程计数。
并发线程数理论上等于“本地主机CPU个数+Stuck线程数”,够用即可,过大会降低系统性能2、QueueLength在等待队列里的请求数,理想状态下是03、QueueLength Threshold Percent一个百分数,当request的数量达到队列长度的这个比例的时候,weblogic会发出overflow 的标志信息4、ThreadsIncrease如果weblogic发出overflow的标志信息,weblogic会尝试增加这个数量的执行线程,以解决处理矛盾5、ThreadsMaximum最大执行线程数6、Threads Minimum最小执行线程数7、ThreadPriority线程优先级三、JDBC在service->JDBC-> JDBC Connection Pools->Configuration->name->Connections1、 Initial Capacity初始数据库物理连接数2、MaxCapacity最大数据库物理连接数3、Capacity Increment每次数据库物理连接增加数4、Statement Cache Typeprepared statements缓存的策略,LRU算法在有新的语句到来时,将最不经常被用得语句调整出缓存。
FIXED算法为先进先出的算法5、TestConnectionsOnReserveTestConnectionsOnReserve设置为false(缺省设置)。
如果此参数设置为真(true),则在连接被分配给调用者之前,都要经过测试,这会额外要求与数据库的反复连接6、Statement Cache Size宏语句设定的静态缓存,大小由JDBC连接池配置时指定,调整这个数值的大小,有利于提高系统的效率7、Login Delay创建数据库物理连接时的延时时间weblogic监控指标线程监控:DOMAIN -> 选择服务 -> Monitoring -> General -> Monitor all Active Queues... -> Monitor all Execute Threads...在这个列表中可以看到应用当前处理的线程情况,若想进一步跟踪线程,可在使用KILL -3来跟踪查看进程情况,一般情况下线程存在如下状态:A、Runnable:该状态表示线程具备所有运行条件,在运行队列中准备操作系统的调度,或者正在运行B、Wait on condition:该状态出现在线程等待某个条件的发生1、线程在等待网络的读写2、线程在 sleep,等待 sleep的时间到了时候,将被唤醒。
C、Waiting for monitor entry 和in Object.wait():每个 Monitor在某个时刻,只能被一个线程拥有,该线程就是“Active Thread”,而其它线程都是“Waiting Thread”,分别在两个队列“ Entry Set”和“Wait Set”里面等候。
在“Entry Set”中等待的线程状态是“Waiting for monitor entry”,而在“Wait Set”中等待的线程状态是“inObject.wait()”。
线程为什么会进入“Wait Set”。
当线程获得了 Monitor,进入了临界区之后,如果发现线程继续运行的条件没有满足,它则调用对象(一般就是被 synchronized 的对象)的 wait() 方法,放弃了 Monitor,进入“Wait Set”队列。
只有当别的线程在该对象上调用了 notify() 或者 notifyAll() ,“ Wait Set”队列中线程才得到机会去竞争,但是只有一个线程获得对象的 Monitor,恢复到运行态D、死锁:在多线程程序的编写中,如果不适当的运用同步机制,则有可能造成程序的死锁,经常表现为程序的停顿,或者不再响应用户的请求。
E、热锁:也往往是导致系统性能瓶颈的主要因素。
其表现特征为,由于多个线程对临界区,或者锁的竞争,可能出现:频繁的线程的上下文切换:从操作系统对线程的调度来看,当线程在等待资源而阻塞的时候,操作系统会将之切换出来,放到等待的队列,当线程获得资源之后,调度算法会将这个线程切换进去,放到执行队列中。
大量的系统调用:因为线程的上下文切换,以及热锁的竞争,或者临界区的频繁的进出,都可能导致大量的系统调用。
大部分 CPU开销用在“系统态”:线程上下文切换,和系统调用,都会导致 CPU在“系统态”运行,换而言之,虽然系统很忙碌,但是 CPU用在“用户态”的比例较小,应用程序得不到充分的 CPU资源。
随着 CPU数目的增多,系统的性能反而下降。
因为 CPU数目多,同时运行的线程就越多,可能就会造成更频繁的线程上下文切换和系统态的 CPU开销,从而导致更糟糕的性能连接监控:DOMAIN -> 选择服务 -> Monitoring -> General -> Monitor all Connections...性能监控:DOMAIN -> 选择服务 -> Monitoring -> Performance1、Idle Threads:已分配到队列的空闲线程数2、Oldest Pending Request:被放置在队列中最常的请求所发生的时间3、Throughput:The number of requests that have been processed by the queue4、Queue Length:正在等待的队列5、Memory Usage:当前内存堆栈使用情况6、GC情况消息监控:DOMAIN -> 选择服务 -> Monitoring -> JMS1、Current Connections:The current number of connections to this server.2、Connections High:The highest number of connections to this server since the last reset.3、Total Connections:The total number of connections made to this server since the last reset.4、Current JMS Servers:The current number of JMS servers that are deployed on this WebLogic Server instance.5、Servers High:The highest number of JMS servers that were deployed on this WebLogic Server instance since this server was started.6、Servers Total: 0The total number of JMS servers that were deployed on this WebLogic Server instance since this server was started.事务监控:DOMAIN -> 选择服务 -> Monitoring -> JTA1、Total Transactions: 1641服务处理的事务总数2、Total Committed: 1641提交事务的总数.3、Total Rolled Back: 0回滚事务总数4、Timeout Rollbacks: 0由于超时异常回滚的事务数5、Resource Rollbacks: 0由于资源错误回滚的事务数6、Application Rollbacks: 0由应用回滚的事务数7、System Rollbacks: 0由系统回滚的事务数8、Total Heuristics: 0The total number of transactions that completed with a heuristic status.9、Total Transactions Abandoned: 0The total number of transactions that this server abandoned.10、Active Transaction Count: 0The number of active transactions on the server.11、Average Commit Time: 0 msThe average amount of time (in milliseconds) that transactions coordinated by this server have taken to commit.请求监控:DOMAIN -> Deployments -> Web Application Modules -> 选择应用-> Monitoring->Servlets列表中显示了服务启动以来请求的耗时情况需要监控的日志:1、server log2、access log。