Tomcat 服務器Netty+Protobuf 併發壓力測試以及http測試

第一次作壓力測試,真的感受壓力山大。。 但畢竟本身是部門負責人,必需要作這個事,不得不硬着頭皮去面對。服務器

首先,因爲鄙人能力有限,與公司的技術總監溝通了一下,而後肯定了測試的思路以及問題解決的方案。socket

咱們公司所作的業務是打車軟件。性能

1.理順思路   首先,咱們主要針對socket接口進行壓力測試,根據業務邏輯  用戶登陸、訂單流程等全部流程進行測試,去定位問題所在的接口,再分析代碼,優化代碼,若是還存在問題,也能夠經過時間戳,來查看代碼運行慢的部分,進而去找出問題,解決它。測試

2.具體測試   測試就是配置好循環讓程序跑線程,基本上能夠看出來一個服務器的最大負載能力,我使用過100-1000,以100遞增的測試  ,服務器是Tomcat(優化過的), 當線程數達到800左右,就會開始出現崩潰的現象,Netty服務器就連不上了。 固然800左右基本仍是穩定的,後來測試了1000、1500、2000 基本上每次都有崩潰的現象。不知道是否是跟服務器和Netty的優化有關。 每次跑完程序,都用jmap -heap pid命令,來查看堆信息 ,也試過jstack pid  其中有鎖線程的狀況,畢竟不夠專業,這些東西沒看太明白,下面貼出來示例優化

 

100次登錄測試結果


C:\Users\Administrator>jmap -heap 1964
Attaching to process ID 1964, please wait...
Debugger attached successfully.
Client compiler detected.
JVM version is 24.60-b09


using thread-local object allocation.
Mark Sweep Compact GC


Heap Configuration:
   MinHeapFreeRatio = 40
   MaxHeapFreeRatio = 70
   MaxHeapSize      = 536870912 (512.0MB)
   NewSize          = 1048576 (1.0MB)
   MaxNewSize       = 4294901760 (4095.9375MB)
   OldSize          = 4194304 (4.0MB)
   NewRatio         = 2
   SurvivorRatio    = 8
   PermSize         = 12582912 (12.0MB)
   MaxPermSize      = 67108864 (64.0MB)
   G1HeapRegionSize = 0 (0.0MB)


Heap Usage:
New Generation (Eden + 1 Survivor Space):
   capacity = 40239104 (38.375MB)
   used     = 24764880 (23.617630004882812MB)
   free     = 15474224 (14.757369995117188MB)
   61.544312716307005% used
Eden Space:
   capacity = 35782656 (34.125MB)
   used     = 24740664 (23.59453582763672MB)
   free     = 11041992 (10.530464172363281MB)
   69.14149693080357% used
From Space:
   capacity = 4456448 (4.25MB)
   used     = 24216 (0.02309417724609375MB)
   free     = 4432232 (4.226905822753906MB)
   0.5433924057904411% used
To Space:
   capacity = 4456448 (4.25MB)
   used     = 0 (0.0MB)
   free     = 4456448 (4.25MB)
   0.0% used
tenured generation:
   capacity = 89522176 (85.375MB)
   used     = 22417720 (21.37920379638672MB)
   free     = 67104456 (63.99579620361328MB)
   25.041527140716507% used
Perm Generation:
   capacity = 12582912 (12.0MB)
   used     = 3979880 (3.7955093383789062MB)
   free     = 8603032 (8.204490661621094MB)
   31.629244486490887% used


12941 interned Strings occupying 998488 bytes.線程

jstack 內容太多,這裏就不貼了。接口

這是在本機的測試,尚未放到服務器真實環境裏面測試。 不肯定會不會性能更好一點。ci

目前還只測試到登錄,具體的訂單業務流程尚未開始測。it

第一次作測試,作得不對的,請多指教。io

相關文章
相關標籤/搜索