NIO系列6:流行 NIO Framework netty 和 mina 性能测评与分析

本文通过测试比较了Netty和Mina这两个NIO框架在EchoServer场景下的性能。在不同大小的网络报文下,两者的TPS接近,但在5k报文时Mina的性能出现明显下降,原因是其Buffer分配策略导致的抖动。Netty采用的Buffer分配策略更优,但CPU消耗较高。测试建议Mina优化Buffer分配,Netty改进Executor实现以降低CPU消耗。
摘要由CSDN通过智能技术生成
测试方法
采用 mina 和 netty 各实现一个 基于 nio 的EchoServer,测试在不同大小网络报文下的性能表现





测试环境
客户端-服务端:
     model name: Intel(R) Core(TM) i5-2320 CPU @ 3.00GHz     
     cache size: 6144 KB     
     cpu cores:  4     
     jdk:        1.6.0_30-b12
     network:    1000Mb
     memory:     -Xms256m -Xmx256m
     Linux:      centos 5.7, kernel 2.6.18-274.el5

测试工具:
     jmeter v2.4

版本:
     mina            2.0.7
     netty           3.6.2.Final


配置:
     mina   
          io-processor cpu 核数
          executor     cpu 核数
          buffer       初始 buffer 大小,设置为 2048(2k)
     netty
          boss         netty 默认配置 1
          worker       cpu 核数
          executor     cpu 核数
     
其实,从理论上来说, echo 型的应用不配置 executor 业务执行线程池会获得更好的性能和更低的消耗,但考虑在真实业务应用中,真实的业务场景处理通常涉及各种复杂逻辑计算,缓存、数据库、外部接口访问,为避免业务执行延时阻塞 io 线程执行导致吞吐降低,通常都会分离 io 处理线程 和 业务处理线程,因此我们的测试案例中也配置了业务执行线程池考查它们线程池的调度效能。

     mina  线程池设置 
          io processor: 
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值