设为首页 收藏本站
查看: 615|回复: 0

[经验分享] Weblogic Native IO 问题一则

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-2-14 11:51:18 | 显示全部楼层 |阅读模式
  <!-- START mainbody ID --> <!-- START wrapper CLASS --> <!-- START contentarea CLASS -->
Weblogic Native IO 问题一则
<!-- START postmeta CLASS --> by: jnduan - 2010-12-12 1 Comment
<!-- END postmeta CLASS -->  从我一开始工作时,每次在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参数,并结合优化代码,肯定还会有更好的表现。

<!-- content may have floats we need to clear -->Tags: tuning , weblogic

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-342070-1-1.html 上篇帖子: weblogic 兼容的 WebService(1) 下篇帖子: weblogic时间早8小时
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表