第一次作壓力測試,真的感受壓力山大。。 但畢竟本身是部門負責人,必需要作這個事,不得不硬着頭皮去面對。服務器
首先,因爲鄙人能力有限,與公司的技術總監溝通了一下,而後肯定了測試的思路以及問題解決的方案。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