WebLogic Server 关键优化指标
昨天给客户做巡检,又将整个WebLogic Server的优化过程走了一遍,记录下来给大家参考。
1.JVM优化
查看
$ps –ef | grep java /opt/java1.5/bin/java -server -Xms256m -Xmx512m -XX:PermSize=16M -XX:NewSize=128m -XX:MaxPermSize=256m … |
参数设置原则
- 保持简单性
- 提供基本参数(-X 参数)-Xms、-Xmx、-Xmn
- 选择一个 GC/性能优先级,权衡吞吐量与暂停时间
- 其余参数大多使用默认值,(让人体工程机制计算正确值,仅当默认值无效时调优)
- 年轻代的大小将决定
- 次要 GC 的频率
- 次要 GC 收回的对象数量
- 年老代大小
- 应达到应用程序稳定状态的 实时数据大小
- 尝试最大限度减小主要 GC 的频率
- JVM 内存占用不应超过物理内存
- 最大达到 RAM 的 80-90%(为操作系统留出空间)
- 经验法则:应尽量增加年轻代收回的对象。尽量增加完整 GC 频繁
- Set –Xmx = –Xms
- 防止堆大小 (Full GC) 从 Xms 增大到 Xmx
- 性能更优
- 并非总是生产可用性的最佳选择(OOME 更合适使用内存交换)
- 持久代大小
- -XX:PermSize = -XX:MaxPermSize
- 持久代占用空间大小难以预测
- 设置足够高以防止 PermGen OOME
- 将 -XX:NewSize 设置为 -XX:MaxNewSize
- 优先使用 –Xmn
设置
一般来说在64位系统中开到4G-8G,如果有多租户的规划,可以开到更大,修改setDomainEnv.sh
也可以根据受管Server的名字设置不同的JVM,具体设置在USER_MEM_ARGS参数前
############# change jvm ######################### if [ "${SERVER_NAME}" = "" ] ; then SERVER_NAME="AdminServer" export SERVER_NAME fi if [ "${SERVER_NAME}" = "AdminServer" ] ; then USER_MEM_ARGS="-Xms512m -Xmx1024m -XX:MaxPermSize=512m" else USER_MEM_ARGS="-Xms4g -Xmx4g -XX:MaxPermSize=1024m" fi ############# e n d ######################### |
JVM GC文件输出设置
如果需要分析JVM GC日志,需要在启动时加入参数
Sun:-verbose:gc -XX:+PrintGCDetails -Xloggc:<filename> IBM:-Xverbosegc:file=filename 或 -Xverbosegclog:filename HP :-Xverbosegc=filename Oracle JRockit:-Xverbose:memory -XverboseLog:filename |
随后可以通过GCViewer进行脱机的日志查看。
2.关于线程
WebLogic Server在9以后引入了work manager机制,因此weblogic会自动对线程的数目进行优化,开发模式下初始线程数为15,生产模式下初始线程数为25
JAVA_OPTIONS="${JAVA_OPTIONS} -Dweblogic.threadpool.MinPoolSize=100 -Dweblogic.threadpool.MaxPoolSize=1000" export JAVA_OPTIONS |
一般线程数建议设置成100-500之间,线程太多容易引起进程内部的线程切换.
3.Accept BackLog
服务器->配置->优化->接受积压:
4.Muxer优化
Muxer定位:在前端接入请求,然后转交执行队列
- Java Muxer
- Native Muxer
- Non-Blocking IO Muxer
5.JDBC优化
- 理想情况下,设置为最小值 = 最大值,以避免按需创建连接
- 如果 DB 连接数受限,请将最小值设置为处理普通负载所需的连接数,将最大值设置为处理峰值负载所需的连接数,并启用池收缩
- Active Connections High Count
- Waiting on Connection High Count
- Wait Seconds High Count
缓存主要设置语句的条数,缺省为10,建议调大,设置成300
- 如果某数据源的数据库不可用,那么此选项设置为默认值 0 时 WLS 将无法启动!
- 设置为非零值可让服务器顺利启动并定期重试创建连接池
- 与 Test Connections On Reserve 共同发挥作用
- 可显著减少连接测试查询
- 仅有利于涉及多种资源的 XA 事务
- Last Logging Resource(非 XA)必须是数据库
WebLogic Server 关键优化指标的更多相关文章
- SQL SERVER性能优化综述
SQL SERVER性能优化综述 一个系统的性能的提高,不单单是试运行或者维护阶段的性能调优的任务,也不单单是开发阶段的事情,而是在整个软件生命周期都需要注意,进行有效工作才能达到的.所以我希望按照软 ...
- SQL SERVER全面优化-------写出好语句是习惯
前几篇文章已经从整体提供了诊断数据库的各个方面问题的基本思路...也许对你很有用,也许你觉得离自己太远.那么今天我们从语句的一些优化写法及一些简单优化方法做一个介绍.这对于很多开发人员来说还是很有用的 ...
- SQL SERVER全面优化
今天我们从语句的一些优化写法及一些简单优化方法做一个介绍.这对于很多开发人员来说还是很有用的!为了方便阅读给出前文链接: SQL SERVER全面优化-------Expert for SQL Ser ...
- 关于Weblogic Server(介绍)
Weblogic, 美国Oracle公司名下产品,是一个基于 J2EE 架构.可扩展的应用服务器. 本文档选取部分官方文档翻译 总览 支持多种类型的分布式应用 基于 SOA 应用的理想架构 完整实现 ...
- J2EE之WebLogic Server
WebLogic是用于开发.集成.部署和管理大型分布式Web应用. 网络应用和数据库应 用的Java应用server. 将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用 ...
- SQL Server 性能优化(一)——简介
原文:SQL Server 性能优化(一)--简介 一.性能优化的理由: 听起来有点多余,但是还是详细说一下: 1.节省成本:这里的成本不一定是钱,但是基本上可以变相认为是节省钱.性能上去了,本来要投 ...
- --BEA官方网站(http: //www.bea.com)甲骨文已完成对该公司的收购BEA Weblogic Server 7.0x应用服务器简明安 装、配置手册 1
====================简 介: BEA公司是业内著名的中间件产商,以Tuxedo及Weblogic闻名于世,而其基础件平台(infrastructure)Weblogic platf ...
- WebLogic Server
前几天,看了几集J2ee , 给我的感觉就是,看不懂!! 一点也不懂! 那怎么办呢? 听老师的,不管懂不懂,先看看再说.接下来,就开始了J2ee "艰苦"的历程.在J2ee中,经常 ...
- SQL SERVER全面优化-------Expert for SQL Server 诊断系列
现在很多用户被数据库的慢的问题所困扰,又苦于花钱请一个专业的DBA成本太高.软件维护人员对数据库的了解又不是那么深入,所以导致问题迟迟不能解决,或只能暂时解决不能得到根治.开发人员解决数据问题基本又是 ...
随机推荐
- 转: Photoshop cs6 快捷键命令大全
转自: http://www.cnblogs.com/zhen656/p/4249759.html 工具箱(多种工具共用一个快捷键的可同时按[Shift]加此快捷键选取) 矩形.椭圆选框工具.单行单列 ...
- appium的使用
这套教程年久失修,问题的人也比较多,于是,我重新整理了一套appium入门教程. appium新手入门(1)—— appium介绍 appium新手入门(2)—— 安装 Android SDK app ...
- python进程池pool的starmap的使用
#!/usr/bin/env python3 from functools import partial from itertools import repeat from multiprocessi ...
- python memcache操作-安装、连接memcache
安装memecache wget http://memcached.org/latest tar -zxvf memcached-1.x.x.tar.gz cd memcached-1.x.x ./c ...
- [ Python - 11 ] 多线程及GIL全局锁
1. GIL是什么? 首先需要明确的一点是GIL并不是python的特性, 它是在实现python解析器(Cpython)时所引入的一个概念. 而Cpython是大部分环境下默认的python执行环境 ...
- C#字节数组的常用解码处理方法
在某些情况下,比如说串口通信或者读取二进制的文件,通常会得到一个byte数组形式的数据. 然而对于这个数据处理常常令人苦恼,因为通常通信情况下,并不是一个字节代表一个字符或者某个数据,而是数据夹杂在字 ...
- python算法:嵌套数组转变成一维数组
比如,输入是:[2, 1, [3, [4, 5], 6], 7, [8]] 则,输出是:[2, 1, 3, 4, 5, 6, 7, 8] def list_flatten(l, a=None): a ...
- Swagger 2.0 摘要
官网地址:http://springfox.github.io/springfox/docs/current/
- 安装XHProf分析PHP性能瓶颈(原创)
废话不多说,直接上代码 ,手动滑稽.o(╯□╰)o 如果已解决您的问题,请在文章底部点击下关注,非常感谢. 下面是LINUX命令行 $ wget http://pecl.php.net/get/x ...
- C++的Public.lib(Public.dll) : fatal error LNK1112: module machine type 'X86' conflicts with target machine type 'x64'
今天开始编译网游服务器,找前辈借来批处理文件,版本控制上拿下代码,库等一系列资源,尼玛啊,编译出错: Public.lib(Public.dll) : fatal error LNK1112: mod ...