zoukankan      html  css  js  c++  java
  • 一次netty与java socket的压力测试对比【yetdone】为什么要用netty

    1 结果:比较遗憾,无论是本机、单核远程、4核远程,两边的测试效果相当

    2 远程测试,netty与socket都只能到2900个连接,极限了,4核服务器也是

    后来发现,施压机java.lang.OutOfMemoryError: unable to create new native thread

    3 配置2000个连接:

    4 参数要点:

    Forever,ramp-up Period 0 ——尽量模拟并发,防止太多线程(连接)太久进入或提早退出,弱化bio的弱点

    不设置响应时间;响应超时太短,则两边都是同样的错误率、同样的吞吐量

    5 本地结果:

    socket

     

    netty

    6 远程单核

    socket bio,netty nio,netty epoll

    三者远程200、2000个连接,qps 均在750

    7

    qps socket高

    平均响应时间 socket高

    想要时间稳定性 netty好

    8 为什么要用netty-https://youzhixueyuan.com/netty-implementation-principle.html?from=singlemessage&isappinstalled=0

    1)java 类库麻烦;

    2)获得nio的非阻塞客户端

    3)客户端面临断连重连、网络闪断、半包读写心跳、失败缓存、网络拥塞和异常码流的处理等等

    4)NIO 的 Bug:例如臭名昭著的 Epoll Bug,它会导致 Selector 空轮询,最终导致 CPU 100%

    9 为什么本次测试失败了

    重点:

    1)测试强度、设备达不到netty体现优势的阀值

    2)测试环境太理想,可能netty在恶劣环境下有优势

    一次netty压力测试.zip

  • 相关阅读:
    关于闭包和作用域的问题
    中文字体@font-face的导入
    一个跑马灯插件(持续优化)
    关于JS的clone()函数编写的一些问题
    函数的自执行,变量提升和函数提升
    Android 之Map容器替换 SparseArray,ArrayMap,ArraySet
    Anndroid GC 那些事
    Spark Streaming实时计算
    REDIS基础要点
    zookeeper要点总结
  • 原文地址:https://www.cnblogs.com/silyvin/p/12495073.html
Copyright © 2011-2022 走看看