并发测试未通过,自己使用jmeter寻找性能瓶颈

检查是否有大循环重复产生新对象实体。
检查对数据库查询中,是否有一次获得全部数据的查询。一般来说,如果一次取十万条记录到内存,就可能引起内存溢出。这个问题比较隐蔽,在上线前,数据库中数据较少,不容易出问题,上线后,数据库中数据多了,一次查询就有可能引起内存溢出。因此对于数据库查询尽量采用分页的方式查询。
检查List、MAP等集合对象是否有使用完后,未清除的问题。List、MAP等集合对象会始终存有对对象的引用,使得这些对象不能被GC回




上面的情况都没有,主要原因内存过低了(tomcat默认系统内存的四分之一),加大到最大2G时没有报内存溢出错误


测试环境的测试和优化情况
    1测试环境(配置过低了,承受不了太高的并发量),(共用宽带)
    cpu 2核 内存 4G


    2设置setenv.sh,有很多jvm参数没有仔细调试,可借助jvisualvm好好测试,找到一较优的参数
    JAVA_OPTS='-server -Xms1024M -Xmx2048M'






    3server.xml 连接使用连接池


        <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
            maxThreads="300" minSpareThreads="50"/>
        


        
        <Connector executor="tomcatThreadPool"
                   port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" />


    4代码中database连接池,classpath/spring/beans-datasources.xml
            <!-- 每个分区最大的连接数 -->
            <property name="maxConnectionsPerPartition" value="50"/>
            <!-- 每个分区最小的连接数 -->
            <property name="minConnectionsPerPartition" value="30"/>
            
            
    5注册登陆需要同步助学宝,测试环境使用模拟助学宝的程序,模拟登陆注册,并发量太小(现在瓶颈出现在这里)
        解决方式:可以让测试环境能访问 https://wszl.bdxiaodai.com/loan/thirdParty/login 布丁小贷的生产环境,只测登陆
        
        
    
        
        

猜你喜欢

转载自blog.csdn.net/long13631/article/details/80605666
今日推荐