weblogic10.3.6 替换jrocket32位为64位

本文介绍了如何解决一个多年前的项目因系统卡顿、CPU高导致的问题。分析认为可能与程序、32位JDK、CLOB字段和WebLogic参数有关。解决方案包括:升级到64位JRockit,替换对应 native 文件,优化Oracle数据库中的CLOB存储,以及调整WebLogic的数据源和服务器性能参数。通过这些调整,CPU占用率降低,IO和网络带宽得到改善,表明综合优化策略的有效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

客户那边多年前的项目,最近总是系统卡顿,cpu居高不下,查看资源管理器,发现io和网络都很高。

偶尔还发现数据库连接不释放,分析程序发现程序是好的,也使用了try catch finally 释放了数据库连接。仔细分析,问题可能出在以下几个方面:

1、程序的写法问题

2、weblogic jdk32位的问题(可以分配的内存空间比较小)

3、数据库clob字段的问题

4、weblogic参数设置的问题(包括数据源和服务器性能参数配置)

依据上面几个方面,分别找解决办法:

1、因为没有源码了,仅仅在维护的项目,通过反编译程序简单看了下代码,发现基本没有太大的问题,这个问题暂时放放,优先级排在最后

2、针对jdk32位的问题,先从oracle官方下载最后一个版本的jrocket1.6 64位版本,在服务器上安装,然后把jdk的的文件夹中的文件覆盖到原来weblogic下的jdk中,运行起来发现出现BEA-000438的问题,又百度,说是jdk32位的native和64位不一致造成的,又从网络上下载了对于的64位native替换后(wlsserver-10.3/server/native/win/32替换本文件夹),完美!把内存空间从1536M改为4096M,运行良好。

3、针对clob字段,发现oracle官网有个clob的优化措施(oracle11g, storeas

SecureFiles

):

create table contracts_sec ( contract_id number(12), contract_name varchar2(80), file_size number, orig_file blob )

tablespace users

lob (orig_file)

store as securefile ( tablespace users enable storage in row chunk 4096 pctversion 20 nocache nologging )

经措施,发现确实比以前好点!

4、经过测试,发现数据库最大连接在200以内,超过150,原来weblogic中配置最大连接数为150,则现在修改为最大连接数为350,调整oracle中的processes和sessions,可以通过(show parameters processes,show parameters sessions)查看oracle数据库原本支持最大的process和session数量,现在改为1000,

alter system set processes=1000 scope=spfile; 

alter system set sessions=1105 scope=spfile; 

两个参数满足原则:sessions = processes*1.1+5;

在oracle数据库的

LISENER.ORA配置文件中加入:

DIRECT_HANDOFF_TTC_LISTENER = OFF --命令 回收关闭掉长久不用连接

重新启动数据库服务,发现正常,数据库的性能也非常好!

 

经验总结:原本造成cpu占用非常高,io和带宽非常大,应该是jdk内存空间分配小,32位处理慢以及oracle数据库里面的参数配置比较小,造成很大线程阻塞。经过以上优化发现没有线程阻塞,cpu占用也不高了,io和带宽也下来了。看来jdk的64位版本和数据库层面调优要结合起来用才有良好的效果。之前都是从某一个方面来调优总是效果不尽如人意。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值