本文共 1180 字,大约阅读时间需要 3 分钟。
一、问题现象
在对系统测试过程中发现,大并发下,Windows平台部署的Weblogic系统性能远远要高于AIX系统部署Weblogic的性能。100并发,Windows平台响应时间4~6s,而AIX平台下将近20s,而且,Windows平台的硬件性能远不及AIX系统的性能。
二、问题分析过程
分析测试结果,发现AIX脚本下网络流量明显偏低,100并发下仅有3M/s TPS在4~5/s之间,而Windows下,100并发可以达到8M/s,TPS在25~30/s之间。初步怀疑网络环境存在问题。使用FTP等工具测试网络带宽使用情况。发现传输速度在3M/s左右。进一步确认是由于网络问题造成响应时间不足。由于两者均在3M/s左右。是处理能力造成网络吞吐量不够还是由于网络,产生了一个蛋生鸡还是鸡生蛋的问题。
在进一步的分析过程中发现,即使控制并发,确保网络不存在瓶颈。其TPS也无法提高,维持在原水平不变。进一步怀疑是处理能力不足。由于现象难以描述,在网上查询较久,但一直未找到原因。
于是考虑到在各设备、操作系统上安装,试图重现问题,但是一直未能找到问题。偶然见发现某两台Linux服务器上装的Weblogic响应时间差距很大,与最初的现象相当类似。检查Weblogic配置。发现有一台服务器部署的是32位WebLogic,另一台部署的是64位WebLogic。进一步怀疑是不同版本的WebLogic在部署时由于参数配置不恰当产生的问题。
与此同时,查看Weblogic的日志。发现有如下的错误:
问题到此相当的明显!由于没找到performance pack,造成不能使用Native IO,从而影响了系统性能。
三、问题解决
查阅Bea的相关文档,有如下的描述:
修改$BEA_HOME/weblogic92/common/bin/commEnv.sh这个文件,查找aix段,将LIBPATH指定到包含 performace pack的路径下即可。在本次的修改中,将LIBPATH中这部分改为“/weblogic/bea/aix/ppc64” 。
系统性能问题解决。
四、经验总结
1、系统的日志相当重要!如果能够早点查看系统日志,并且仔细分析日志,这个问题可以不用如此的折腾。
事后跟项目组交流,项目组上已经为这个问题分析了好几天,虽然他们前期已经发现这个错误日志,但是并没有仔细阅读分析相关的错误日志。造成在较长的时间内无法定位问题。
2、在遇到问题的时候不要被某个单独的现象所迷惑,造成“一叶蔽目,不见泰山”,钻牛角尖,无法解决问题。一定要多方位的分析问题,多方面排查,从而找到正确的分析方向。