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

相关文章
相关标签/搜索