Springboot tomcat.threads線程數學習

Springboot tomcat.threads線程數學習


摘要

壓測完nginx 突然想搞一下springboot內嵌的tomcat的 threads的參數
一不做二不休, 直接就着腳本進行學習和驗證 

修改參數

產品裏面默認參數值是 500 我這邊改大一下
  tomcat
    threads:
      max: 2000
    accept-count: 10000
    max-connections: 200000
    connection-timeout: 600000


修改完後進行壓測

ab -c 5000 -n 50000 -k https://127.0.0.1:5401/index.html
ab -c 1000 -n 50000 -k https://127.0.0.1:5401/index.html

簡單結論

##注意不同測試測試, 結果不盡相同, 主要是看趨勢##
##本次測試取第二次預熱之後的##
threads 爲 500 時 1000併發
https 的吞吐量TPS爲:10260
第一次:4418.62
第二次:10260.98

threads 爲 500 時 5000併發
https 的吞吐量TPS爲:8701
第一次:3779.16
第二次:8701.95

threads 爲 2000 時 1000併發
https 的吞吐量TPS爲:11534
第一次:4982.65
第二次:11534.35

threads 爲 2000 時 5000併發
https 的吞吐量TPS爲:8267
第一次:3573.94
第二次:8267.08

threads爲500時   1000併發比5000併發性能要好.
threads爲2000時  1000併發比5000併發性能要好

1000併發時: threads2000比threads500性能要好.
5000併發時: threads500比threads2000性能要好.
感覺高併發下面. 500和2000的差異性不是很大,不會超過10%.

但是需要說明一下. threads2000時 會多佔用2G的內存. 用來存放堆棧信息
對機器的壓力會比較大一些.  進行容器或者是其他處理時需要關注一下這一塊的內存設置. 
經過預熱和爲經過預熱性能差距是一倍多. 建議現場有機會還是需要預熱在上線. 
或者是先小流量引入,再大流量進行使用. 保證TPS穩定. 

服務啓動成功之前查看

-                 Java Heap (reserved=24014MB, committed=5034MB)
                            (mmap: reserved=24014MB, committed=5034MB) 
 
-                     Class (reserved=1151MB, committed=142MB)
                            (classes #23154)
                            (malloc=17MB #35188) 
                            (mmap: reserved=1134MB, committed=125MB) 
 
-                    Thread (reserved=137MB, committed=137MB)
                            (thread #137)
                            (stack: reserved=136MB, committed=136MB)
 
-                      Code (reserved=253MB, committed=55MB)
                            (malloc=9MB #11867) 
                            (mmap: reserved=244MB, committed=46MB) 
 
-                        GC (reserved=893MB, committed=829MB)
                            (malloc=16MB #477) 
                            (mmap: reserved=877MB, committed=813MB) 

服務啓動成功後的部分信息

-                 Java Heap (reserved=24014MB, committed=11150MB)
                            (mmap: reserved=24014MB, committed=11150MB) 
 
-                     Class (reserved=1355MB, committed=374MB)
                            (classes #60146)
                            (malloc=23MB #110948) 
                            (mmap: reserved=1332MB, committed=351MB) 
 
-                    Thread (reserved=389MB, committed=389MB)
                            (thread #388)
                            (stack: reserved=387MB, committed=387MB)
                            (malloc=1MB #1950) 
                            (arena=1MB #762)
 
-                      Code (reserved=266MB, committed=130MB)
                            (malloc=22MB #30252) 
                            (mmap: reserved=244MB, committed=108MB) 
 
-                        GC (reserved=893MB, committed=843MB)
                            (malloc=16MB #1898) 
                            (mmap: reserved=877MB, committed=827MB) 

壓測後的數據

-                 Java Heap (reserved=24014MB, committed=11150MB)
                            (mmap: reserved=24014MB, committed=11150MB) 
 
-                     Class (reserved=1359MB, committed=378MB)
                            (classes #60595)
                            (malloc=23MB #115122) 
                            (mmap: reserved=1336MB, committed=355MB) 
 
-                    Thread (reserved=2387MB, committed=2387MB)
                            (thread #2377)
                            (stack: reserved=2376MB, committed=2376MB)
                            (malloc=8MB #11895) 
                            (arena=3MB #4740)
 
-                      Code (reserved=267MB, committed=139MB)
                            (malloc=24MB #32028) 
                            (mmap: reserved=244MB, committed=115MB) 
 
-                        GC (reserved=893MB, committed=843MB)
                            (malloc=16MB #2029) 
                            (mmap: reserved=877MB, committed=827MB) 

threads 500 時的情況-啓動成功之前

-                 Java Heap (reserved=24014MB, committed=5481MB)
                            (mmap: reserved=24014MB, committed=5481MB) 
 
-                     Class (reserved=1167MB, committed=160MB)
                            (classes #25730)
                            (malloc=17MB #40906) 
                            (mmap: reserved=1150MB, committed=143MB) 
 
-                    Thread (reserved=156MB, committed=156MB)
                            (thread #156)
                            (stack: reserved=155MB, committed=155MB)
 
-                      Code (reserved=254MB, committed=63MB)
                            (malloc=11MB #13516) 
                            (mmap: reserved=244MB, committed=53MB) 
 
-                        GC (reserved=893MB, committed=830MB)
                            (malloc=16MB #572) 
                            (mmap: reserved=877MB, committed=814MB) 

threads 500 時的情況-啓動成功

-                 Java Heap (reserved=24014MB, committed=9355MB)
                            (mmap: reserved=24014MB, committed=9355MB) 
 
-                     Class (reserved=1290MB, committed=299MB)
                            (classes #44502)
                            (malloc=20MB #82414) 
                            (mmap: reserved=1270MB, committed=279MB) 
 
-                    Thread (reserved=273MB, committed=273MB)
                            (thread #273)
                            (stack: reserved=272MB, committed=272MB)
                            (malloc=1MB #1375) 
 
-                      Code (reserved=259MB, committed=93MB)
                            (malloc=16MB #21262) 
                            (mmap: reserved=244MB, committed=77MB) 
 
-                        GC (reserved=893MB, committed=839MB)
                            (malloc=16MB #1265) 
                            (mmap: reserved=877MB, committed=824MB) 


threads 500 時的情況-壓測時

-                 Java Heap (reserved=24014MB, committed=11122MB)
                            (mmap: reserved=24014MB, committed=11122MB) 
 
-                     Class (reserved=1353MB, committed=370MB)
                            (classes #58279)
                            (malloc=23MB #112171) 
                            (mmap: reserved=1330MB, committed=347MB) 
 
-                    Thread (reserved=846MB, committed=846MB)
                            (thread #843)
                            (stack: reserved=842MB, committed=842MB)
                            (malloc=3MB #4225) 
                            (arena=2MB #1672)
 
-                      Code (reserved=267MB, committed=137MB)
                            (malloc=23MB #31921) 
                            (mmap: reserved=244MB, committed=113MB) 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章