电信资源管理系统性能测试总结

  
1       电信资源管理系统性能测试总结
陈建慧
2007-7-30
 
1.1    技术问题与解决方法
1.1.1      Loadrunner JAVA脚本 唯一参数问题
最初采用JNI 调用delphi的DLL,JAVA脚本中未使用static synchronized关键字时只能2个并发用户就报错
private static native synchronized String getUrl();
        static{
          // System.loadLibrary("PairConn");
           System.loadLibrary("AppServerDll");
       }
 
 
,加上static synchronized对于复杂DLL在高并发时还是出现错误,在DLL中加共享内存互斥信号量问题依然存在,网上有提到JNI对于多线程支持不是很好,最后放弃JNI接口,采用调用服务器端的EJB来获取参数。
 
最初DLL用ADO直接从数据库临时表中读参数数据,测试过程中发现读取参数占用大量数据库资源,最后改为将临时表中的数据生成数据文件,DLL和EJB都直接读取数据文件,由于数据文件比较大,读取参数时不能一次性把所有参数数据加载,多线程之间共享文件指针。
1.1.2      Weblogic 部署问题
1.1.2.1            创建domain
 创建domain时用产品模式
 
1.1.2.2            更新包
通过删除 包的cache 然后重启实例彻底更新
停止实例
#!/bin/sh
cd /app/bea/user_projects/domains/rms7002/bin
./stopWebLogic.sh &
删除cache脚本
#!/bin/sh
rm -r /app/bea/user_projects/domains/rms7001/servers/AdminServer
重启实例脚本
#!/bin/sh
cd /app/bea/user_projects/domains/rms7001
rm nohup.out
nohup ./startWebLogic.sh &
查看控制台输出
#!/bin/sh
tail -f /app/bea/user_projects/domains/rms7002/nohup.out
 
1.1.2.3            java虚拟机配置
-Xms1024m –Xmx1024m 最大不超过2G
永久域太小导致 EJB 无法部署 –XX:MaxPermSize=256m
1.1.2.4            连接池
 初始连接和最大连接数都设置成一样,目前设置为80
1.1.2.5            EJB配置
高并的EJB需加大 ,需修改xdoclet的EJB注释
 
<pool>
            <max-beans-in-free-pool>1000</max-beans-in-free-pool>
            <initial-beans-in-free-pool>20</initial-beans-in-free-pool>
         </pool>
 
1.1.3      数据库
1.1.3.1             大数据量表分区
按500万条记录分一个区,pair_conn 13个分区、connector表34个分区,分别进行了分区
1.1.3.2            大并发操作表
n         删除无用的索引和所有外键
n         增加表和索引的initrans 参数,connector表改到了24,其它高并发表改到16
n         增加表和索引的FREELIST参数FREELISTS 10
n         所有索引和主键都放入索引表空间
n         所有表和索引都改成NOLOGGING
 
1.1.3.3            数据导入
1.1.3.3.1              重建用户的脚本
drop user rms cascade;
CREATE USER "RMS" PROFILE "DEFAULT"
    IDENTIFIED BY "XXXXX" DEFAULT TABLESPACE "TRMSDATA"
    ACCOUNT UNLOCK;
GRANT DELETE ANY TABLE TO "RMS";
GRANT EXECUTE ANY PROCEDURE TO "RMS";
GRANT INSERT ANY TABLE TO "RMS";
GRANT SELECT ANY SEQUENCE TO "RMS";
GRANT SELECT ANY TABLE TO "RMS";
GRANT UNLIMITED TABLESPACE TO "RMS";
GRANT UPDATE ANY TABLE TO "RMS";
GRANT "CONNECT" TO "RMS";
GRANT "DBA" TO "RMS";
1.1.3.3.2       导入数据脚本
imp rms/XXXXX@trmstest file=rmsdb.dmp full=y    commit=y ignore=y buffer=1024000 feedback=100000
 
1.1.3.3.3        分析表
导入数据后要进行oracle表分析提高性能
大表用单独session 加大sort_area_size提高分析速度
alter session set sort_area_size = 100000000;
alter session set sort_area_retained_size = 100000000;
alter session set sort_multiblock_read_count = 128;
alter session set db_file_multiblock_read_count = 128;
analyze table rms.ATOM_RES_SERV_INS compute statistics;
1.1.4      程序问题
1.1.4.1            EJB注释配置不正确
多数为helper-bean-id 用spring配置文件中的bean-name不相符
 
1.1.4.2                 Hibernate 、JDBC、存贮过程
l         批量操作改成使用存贮过程速度比用JDBC高出近100倍
l         Hibernate效率最低,设备增加原来采用Hibernate时weblogic服务器CPU很高
l         数据库连接泄漏,没有按要求使用JDBCTemplete,而是自己写JDBC代码,程序存贮过程调用中大量存在这类问题
 
1.1.4.3            SQL优化
l         Is null 不会使用索引只会做全表扫描
l         Where 条件中 结果集小的条件放在后面
l         对于大表子查询的效率高于表连接
l         复杂查询语句用PL/SQL查看执行计划,看是否有利用有效索引,是否存在对大表的全表扫描
1.1.5          操作系统
1.1.5.1             调整oracle9i数据库主机
kctune -h nproc=4096
kctune -h STRMSGSZ=65535
kctune -h dnlc_hash_locks=512
kctune -h ksi_alloc_max=32768
kctune -h max_thread_proc=256
kctune -h maxdsiz=1073741824
kctune -h maxdsiz_64bit=2147483648
kctune -h maxssiz=134217728
kctune -h maxssiz_64bit=1073741824
kctune -h maxswapchunks=16384
kctune -h maxtsiz=0X4000000
kctune -h maxtsiz_64bit=0X40000000
kctune -h maxuprc=3000
kctune -h maxusers=4096
kctune -h msgmap=4098
kctune -h msgmni=4096
kctune -h msgseg=16384
kctune -h msgtql=4096
kctune -h ncallout=8000
kctune -h ncsize=34816
kctune -h nfile=63488
kctune -h nflocks=4096
kctune -h ninode=34816
kctune -h nkthread=7184
kctune -h nstrpty=60
kctune -h semmni=8192
kctune -h semmns=16384
kctune -h semmnu=4092
kctune -h semvmx=32768
kctune -h shmmax=16743656000
kctune -h shmmni=512
kctune -h shmseg=32
kctune -h vps_ceiling=64
1.1.5.2            weblogic9.2主机内核参数
kctune -h max_thread_proc=4096
kctune -h maxusers=2048
kctune -h maxfiles=2048
kctune -h maxuprc=1024
kctune -h maxdsiz=0x40000000
kctune -h maxdsiz_64bit=0x80000000
 
1.1.5.3            操作系统补丁
        未安装操作系统补丁,正式测试过程中用HP工程师提供的HPjconfig发现系统未安装Java 1.5补丁
 
 
 
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值