从我一开始工作时,每次在linux下启动weblogic总会发现有这样一句日志:
<Unable to load performance pack. Using Java I/O instead. Please ensure that libmuxer library is in :……
一直都没太在意,以为所谓的“performance pack”只是weblogic的一个“增强组件”一样。直到最近在对新到的一批机器做压力测试的时候才发现了问题。
场景是这样:
3台Dell 的R900型号服务器,4 x Xeon E7430,32G内存,装64位jdk 1.5.0_22和weblogic 9 MP 4,weblogic的JVM分配8G内存。在LoadRunner加到每台机器67并发的时候,整个系统响应奇慢无比,平均响应时间达到了17s左右, 但是server的load值并不高,并且weblogic后端提供其他服务的server则很闲。这是无法忍受的性能问题。用visual vm连上去一看,发现有大量的线程处于等待状态,也就是说,weblogic自己忙不过来了。
事后仔细想了一下,难道真的跟传说中的“performance pack”加载失败,导致weblogic使用java io进行通信致使性能严重下降?在网上google了一番,还真是这样子,据说最严重能导致30%左右的性能下降(Refer1 Refer2 )。知道了问题原因,就能迎刃而解了。
首先根据网上的一些资料,看了一下weblogic安装目录下weblogic92/server/native/linux目录里Native IO所依赖的libmuxer.so,发现该目录下有一个i686的子目录。这是很不正常的现象,因为我使用的是64位jdk,按理说应该是一个类似 x86_64这样的目录才对。
于是乎重装了一下weblogic,重建了域,发现问题依旧。于是又去Oracle的网站看了一下,在weblogic下载页面读到这样一段话:
To use WebLogic Server with 64-bit JVM’s on Linux and Solaris or to use WLS on other supported
platforms, use the WebLogic Server generic installer listed under “Additional Platforms”.
再看看自己的安装介质,文件名赫然是server924_linux32.bin。怪不得,我一开始用的介质都不对。重新下载了 server924_generic.jar(题外话:weblogic 9.x版本的generic.jar在oracle官方下载页面已经无法下载。咨询了一下Oracle的人,得知可以在此处 下载),然后按照说明使用命令
java -Xmx1024m -d64 -jar server924_generic.jar
进行安装。安装完成后,再看${WL_HOME}/weblogic92/server/native/linux路径下,已经是x86_64目录 了:)。然后给目录里的各个文件添加了可执行权限,创建了新的域。然后再启动weblogic,发现还是报“Unable to load performance pack”。我彻底郁闷了。
又想了一下,既然native io相关的文件都已经正确了,还无法正确加载,会不会是某个环境变量影响了weblogic去正确的目录内寻找文件导致的呢?
打开了跟创建域有关的脚本看了看,发现创建域的时候会依赖一个叫做LD_LIBRARY_PATH的变量。而该变量恰恰在我们的场景里用来指向一个 应用需要JNI调用的so文件路径。看来就是因为LD_LIBRARY_PATH被“污染”,导致了weblogic无法正确加载native io library了。直接把项目需要的so文件放到了${JAVA_HOME}/jre/lib/amd64/下,去掉了用环境变量声明的形式,然后再启动 weblogic,没再出现“Unable to load performance pack”,说明Native IO加载成功了:)
然后又对weblogic进行了一些相关的优化,比如jvm参数的调整等等。再进行压力测试时,平均响应时间已经降到了1.9s左右,性能提高了 10倍左右,相当不错了。1.9秒虽然还没有达到最理想的响应时间,但是通过进一步调整jvm参数,并结合优化代码,肯定还会有更好的表现。
相关推荐
weblogic10.3集群配置.doc weblogic10.3优化设置.doc weblogic 报 to many open file错误.docx weblogic.xml_部署描述符元素.docx Weblogic+10.3+集群配置手册.doc weblogic-debug模式启动.docx weblogic-debug模式...
weblogic日常巡检的方法,包括weblogic8和weblogic10,,如果weblogic中间件出现问题,也可以通过这些地方入手排查。
weblogic的常见问题处理方式及手段,ppt
WEBLOGIC常见性能问题及性能监控
weblogic weblogic weblogic weblogic
Tomcat和weblogic中文乱码问题解决方案
1.WEBLOGIC服务器管理概述 2.节点管理器 3.配置WEBLOGIC服务器与集群 4.用日志消息管理WEBLOGIC服务器 5.分发应用 6.配置WEBLOGIC服务器的WEB组件 7.代理对另一个HTTP服务器的请求 8.代理对WEBLOGIC集群的请求 9....
weblogic和tomcat 下载附件乱码问题 weblogic和tomcat 下载附件乱码问题
weblogic监控 weblogic调优 weblogic版本区别 weblogic启动关闭脚本
WebLogic General精华贴总结 总结人:周小超(dev2dev ID:supine)
一、实验目的: 学会在WebLogic平台下部署Servlet与Jsp 二、实验环境 ... 在第上步中你已创建一个工作区,假设为mydomain,则在\bea\user_projects\domains中有一个mydomain目录。运行startWeblogic.cmd。
weblogic内存占用过大调优方案简介
weblogic停止失败,再启动起不起来,因为有lok文件要删除,删除后再启动
开发部署中间件weblogic下载,经实践试用,没有任何问题。 WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web...
该文档专门针对WebLogic10.3怎么查问题、定位问题及日常维护中的一些小技巧,该文档适合对WEB应用程序有一定认识、对WebLogic有一定了解,对当前主机环境熟悉,对Aix命令有一定基础的相关人员。 一、日常监控 1、...
本文主要是本人在实际的生产环境中遇到WebLogic宕机问题,经过自己的经验整理而总结的文档,对从事中间件的人将会是很好的参考。
操作linux命令cd /prlife/weblogic/bea/user_projects/domains/prlwechat_domain/servers
部署应用时,考虑到WebLogic的负载负担和访问安全性,一般在WebLogic的前端架构一个反向代理服务器,将他们整合起来使用。而大多数采用的是开源的WEB服务器(Apache)。架构方式是将Apache置于前端作为WebLogic的...
weblogic的几个基础问题
#脚本名称:sysWeblogicMonitorRestart.sh #功能:weblogic守护进程:监控weblogic进程,当发现进程...监控weblogic,若发现异常则重启进程,并发送短信(入库) sh $shpath/sysWeblogicMonitorRestart.sh "weblogic