1. 程式人生 > >併發測試未通過,自己使用jmeter尋找效能瓶頸

併發測試未通過,自己使用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 布丁小貸的生產環境,只測登陸
        
        
    

深圳逆時針