有時候需要大並發的情況,不僅取決於服務器配置,負載機配置也有要求,包括jmeter配置
場景一:
負載機並發過高,cpu100%,需要考慮分布式
場景二:
負載機並發過高,jmeter滋生內存溢出,jmeter報錯:unable to create new native thread
關於場景二說到的問題,順便說一下我在實踐中踩坑過程:
1、單台負載機要並發2k,但是到900就提示:unable to create new native thread,不新增線程了,開始想辦法解決,因為看到自己本地資源還沒爆,最開始心想一台負載機不至於900並發就極限了吧?
2、確定是不是服務器限制了並發線程數(查看線程數並未影響)
3、再回過頭看jmeter錯誤,發現漏掉了關鍵字眼:OutOfMemoryError(內存溢出),好,於是去處理jmeter內存配置:
首先:進入jmeter/bin目錄下,打開jmeter.bat文件,修改-Xms1g -Xmxl1g啟動內存和最大內存(我安裝jmeter5.2,默認已經是1g了,我修改為2g,啟動直接報錯了,兼容不了)
4、沒辦法,確實是沒法擴容了,只能走分布式並發,於是就開始設置分布式
jmeter分布式並發設置及注意事項:
1、確定負載機n+1台,其中1台是主控機,其他的是受控機器
2、主控機配置:
A、進入jmeter/bin 下修改jmeter.properties.bat文件
remote_hosts配置受控機器,如控制機(本機)也要作為負載機,則,同樣配置,1099位端口號,隨便寫一個不被占用即可
修改:server.rmi.ssl.disable=true
B、jmeter4級以上需要手動生成秘鑰
進入jmeter/bin 點擊create-rmi-keystore.bat,隨便輸入內容,只要程序認可,知道最后詢問是否生成,輸入Y,回車即可生成秘鑰,秘鑰在bin目錄下rmi_keystore.jks
c、若主控機也要作為負載機,則,同樣需要啟動bin目錄下的jmeter-server.bat
2、受控機配置:
A、受控機器上進入jmeter安裝目錄bin下修改jmeter.properties.bat文件,如主控機一樣配置即可,配置ip為受控機本機ip即可
B、將主控機上生成的rmi_keystore.jks復制到受控機的jmeter安裝目錄bin下
C、受控機啟動jmeter-server.bat
3、主控機啟動jmeter