`
zhaohaolin
  • 浏览: 1025504 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Netty NIO 框架性能压测-短链接-对比Tomcat【转】

 
阅读更多
压测方案
  1. 准备多个文件大小分别为 1k 10k 100k 300k
  2. 使用ab分别按 [50,2000](按50逐渐叠加)压测服务,每次请求10W次
  3. 硬件信息:CPU:Intel(R) Xeon(R) CPU 1.86GHz ×4 4G
  4. 统计脚本:grep "Requests per second:" 300k_* | awk -F':' '{print substr($1,6),$3}'|sort -n
  5. 1k 10k 压测的时候load维持在3左右,100k 300k的load飙升到5 。
压测结果
  1. 在小文件(小于10k)情况下Netty的性能要优于Tomcat,qps大概能提升50%,而且比Tomcat稳定。
  2. 在并发量增大时候Netty表现得比Tomcat稳定,通过修改内核加快TIME_WAIT的回收时间,从而提高系统的并发量。
  3. 在大文件的情况下Netty没有任何优势,而且线程池相关的没有Tomcat优秀,Tomcat的内存回收更优秀些。
  4. 结论:Netty适合搭建轻量级的应用,特别适合传输内容少,但是并发量非常高的应用。或者是大文件下载服务器。

 

修改TIME_WAIT回收时间
vi /etc/sysctl.conf
net.ipv4.tcp_syncookies = 1 
net.ipv4.tcp_tw_reuse = 1 
net.ipv4.tcp_tw_recycle = 1 
net.ipv4.tcp_fin_timeout = 30
 
/sbin/sysctl -p

net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭; net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭; net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。 net.ipv4.tcp_fin_timeout 修改系統默认的 TIMEOUT 时间

相关数据(下载)
===== Netty =====
====== 1k ======
50     15661.50 [#/sec] (mean)
100     13429.52 [#/sec] (mean)
150     15385.05 [#/sec] (mean)
200     15598.34 [#/sec] (mean)
250     15135.97 [#/sec] (mean)
300     13494.79 [#/sec] (mean)
350     15102.49 [#/sec] (mean)
400     14614.11 [#/sec] (mean)
450     13463.52 [#/sec] (mean)
500     13447.48 [#/sec] (mean)
550     13126.29 [#/sec] (mean)
600     11108.25 [#/sec] (mean)
650     11073.34 [#/sec] (mean)
700     14518.88 [#/sec] (mean)
750     13409.66 [#/sec] (mean)
800     13060.86 [#/sec] (mean)
850     11938.25 [#/sec] (mean)
900     13133.88 [#/sec] (mean)
950     13670.75 [#/sec] (mean)
1000     13803.70 [#/sec] (mean)
1050     16414.20 [#/sec] (mean)
1100     14770.09 [#/sec] (mean)
1150     11108.65 [#/sec] (mean)
1200     13294.72 [#/sec] (mean)
1250     13448.52 [#/sec] (mean)
1300     15128.31 [#/sec] (mean)
1350     13367.31 [#/sec] (mean)
1400     14277.91 [#/sec] (mean)
1450     13193.80 [#/sec] (mean)
1500     14272.63 [#/sec] (mean)
1550     11004.96 [#/sec] (mean)
1600     13438.72 [#/sec] (mean)
1650     13105.43 [#/sec] (mean)
1700     13653.39 [#/sec] (mean)
1750     13366.72 [#/sec] (mean)
1800     12727.40 [#/sec] (mean)
1850     13075.32 [#/sec] (mean)
1900     11103.91 [#/sec] (mean)
1950     13463.83 [#/sec] (mean)

====== 10k ======
50     7280.51 [#/sec] (mean)
100     9089.69 [#/sec] (mean)
150     9423.90 [#/sec] (mean)
200     8130.07 [#/sec] (mean)
250     8142.88 [#/sec] (mean)
300     8311.20 [#/sec] (mean)
350     8512.20 [#/sec] (mean)
400     7940.84 [#/sec] (mean)
450     7823.32 [#/sec] (mean)
500     8284.60 [#/sec] (mean)
550     8785.93 [#/sec] (mean)
600     7725.20 [#/sec] (mean)
650     7753.23 [#/sec] (mean)
700     8184.61 [#/sec] (mean)
750     8027.75 [#/sec] (mean)
800     7934.49 [#/sec] (mean)
850     7792.94 [#/sec] (mean)
900     7734.34 [#/sec] (mean)
950     7118.27 [#/sec] (mean)
1000     7866.23 [#/sec] (mean)
1050     7724.82 [#/sec] (mean)
1100     7734.17 [#/sec] (mean)
1150     7688.83 [#/sec] (mean)
1200     7359.90 [#/sec] (mean)
1250     7526.02 [#/sec] (mean)
1300     7515.24 [#/sec] (mean)
1350     6639.51 [#/sec] (mean)
1400     7902.36 [#/sec] (mean)
1450     7447.63 [#/sec] (mean)
1500     8216.35 [#/sec] (mean)
1550     8133.42 [#/sec] (mean)
1600     7728.28 [#/sec] (mean)
1650     7724.26 [#/sec] (mean)
1700     7622.26 [#/sec] (mean)
1750     7848.25 [#/sec] (mean)
1800     7715.88 [#/sec] (mean)
1850     7594.04 [#/sec] (mean)
1900     8017.95 [#/sec] (mean)
1950     7992.33 [#/sec] (mean)

====== 100k ======
50     1079.56 [#/sec] (mean)
100     1078.64 [#/sec] (mean)
150     1080.74 [#/sec] (mean)
200     1074.42 [#/sec] (mean)
250     1082.69 [#/sec] (mean)
300     1084.87 [#/sec] (mean)
350     1080.00 [#/sec] (mean)
400     1046.49 [#/sec] (mean)
450     1050.25 [#/sec] (mean)
500     1052.89 [#/sec] (mean)
550     1046.49 [#/sec] (mean)
600     1059.16 [#/sec] (mean)
650     1051.33 [#/sec] (mean)
700     1050.23 [#/sec] (mean)
750     1045.41 [#/sec] (mean)
800     1054.51 [#/sec] (mean)
850     1034.61 [#/sec] (mean)
900     1045.55 [#/sec] (mean)
950     1036.36 [#/sec] (mean)

====== 3000k ======
50     345.95 [#/sec] (mean)
100     355.97 [#/sec] (mean)
150     361.02 [#/sec] (mean)
200     363.39 [#/sec] (mean)
250     358.99 [#/sec] (mean)
300     332.52 [#/sec] (mean)
350     320.66 [#/sec] (mean)
400     315.49 [#/sec] (mean)
450     305.72 [#/sec] (mean)
900     304.57 [#/sec] (mean)

===== Tomcat =====
====== 1k ======
50     8808.85 [#/sec] (mean)
100     9933.93 [#/sec] (mean)
150     11037.66 [#/sec] (mean)
200     10857.99 [#/sec] (mean)
250     10389.63 [#/sec] (mean)
300     11054.51 [#/sec] (mean)
350     10397.66 [#/sec] (mean)
400     10617.54 [#/sec] (mean)
450     9600.62 [#/sec] (mean)
500     10822.00 [#/sec] (mean)
550     10815.92 [#/sec] (mean)
600     11385.86 [#/sec] (mean)
650     11094.66 [#/sec] (mean)
700     10819.33 [#/sec] (mean)
750     10821.28 [#/sec] (mean)
800     9009.25 [#/sec] (mean)
850     10814.18 [#/sec] (mean)
900     9542.68 [#/sec] (mean)
950     11095.51 [#/sec] (mean)
1000     10811.53 [#/sec] (mean)
1050     11084.72 [#/sec] (mean)
1100     11089.07 [#/sec] (mean)
1150     9590.15 [#/sec] (mean)
1200     13826.40 [#/sec] (mean)
1250     8186.03 [#/sec] (mean)
1300     13961.24 [#/sec] (mean)
1350     11077.12 [#/sec] (mean)
1400     16536.29 [#/sec] (mean)
1450     11430.66 [#/sec] (mean)
1500     10817.56 [#/sec] (mean)
1550     16195.09 [#/sec] (mean)
1600     17205.66 [#/sec] (mean)
1650     13300.61 [#/sec] (mean)
1700     11061.43 [#/sec] (mean)
1750     10837.05 [#/sec] (mean)
1800     9786.94 [#/sec] (mean)
1850     10808.81 [#/sec] (mean)
1900     13019.67 [#/sec] (mean)
1950     10090.06 [#/sec] (mean)

====== 10k ======
50     5513.00 [#/sec] (mean)
100     7093.53 [#/sec] (mean)
150     9134.78 [#/sec] (mean)
200     8910.81 [#/sec] (mean)
250     9240.74 [#/sec] (mean)
300     7805.80 [#/sec] (mean)
350     8661.73 [#/sec] (mean)
400     8835.57 [#/sec] (mean)
450     7966.94 [#/sec] (mean)
500     8322.71 [#/sec] (mean)
550     6575.24 [#/sec] (mean)
600     8726.30 [#/sec] (mean)
650     8108.30 [#/sec] (mean)
700     9226.79 [#/sec] (mean)
750     8834.83 [#/sec] (mean)
800     8386.70 [#/sec] (mean)
850     8380.58 [#/sec] (mean)
900     8323.48 [#/sec] (mean)
950     9060.00 [#/sec] (mean)
1000     7213.51 [#/sec] (mean)
1050     9504.06 [#/sec] (mean)
1100     9381.86 [#/sec] (mean)
1150     8839.41 [#/sec] (mean)
1200     9760.02 [#/sec] (mean)
1250     9476.96 [#/sec] (mean)
1300     8366.04 [#/sec] (mean)
1350     9651.87 [#/sec] (mean)
1400     9186.07 [#/sec] (mean)
1450     9600.16 [#/sec] (mean)
1500     8289.33 [#/sec] (mean)
1550     9399.26 [#/sec] (mean)
1600     8205.92 [#/sec] (mean)
1650     8306.61 [#/sec] (mean)
1700     9464.74 [#/sec] (mean)
1750     8682.26 [#/sec] (mean)
1800     9589.63 [#/sec] (mean)
1850     8315.31 [#/sec] (mean)
1900     9174.38 [#/sec] (mean)
1950     8956.78 [#/sec] (mean)

====== 100k ======
50     1033.41 [#/sec] (mean)
100     1054.92 [#/sec] (mean)
150     1061.72 [#/sec] (mean)
200     1075.20 [#/sec] (mean)
300     373.05 [#/sec] (mean)
350     375.34 [#/sec] (mean)
400     376.29 [#/sec] (mean)
450     376.51 [#/sec] (mean)
500     377.04 [#/sec] (mean)
550     377.09 [#/sec] (mean)
650     363.08 [#/sec] (mean)
700     368.69 [#/sec] (mean)

====== 300k ======
50     354.93 [#/sec] (mean)
100     361.82 [#/sec] (mean)
150     366.71 [#/sec] (mean)
200     369.58 [#/sec] (mean)
250     372.58 [#/sec] (mean)
300     374.43 [#/sec] (mean)
350     375.92 [#/sec] (mean)
400     376.23 [#/sec] (mean)
450     376.93 [#/sec] (mean)
500     376.61 [#/sec] (mean)
550     377.67 [#/sec] (mean)
600     372.58 [#/sec] (mean)
分享到:
评论

相关推荐

    Java高级架构必备知识点

    - **Tomcat性能优化**:调整Tomcat参数,提高性能。 **7.12 性能调优专题-数据库优化** - **MySQL常见优化手段分析及实践**:针对MySQL进行性能调优。 **7.13 高性能容器的使用** - **Nginx使用入门**:了解...

    麦芽糊精检验表格(食品企业原辅料质量验收记录表).docx

    麦芽糊精检验表格(食品企业原辅料质量验收记录表).docx

    塑料原型制作服务市场报告:全球前13强生产商排名及市场份额.docx

    塑料原型制作服务市场报告:全球前13强生产商排名及市场份额.docx

    C++数据结构与STL容器总结

    C++数据结构与STL容器总结

    谷氨酸钠(味精)检验表格(食品企业原辅料质量验收记录表).docx

    谷氨酸钠(味精)检验表格(食品企业原辅料质量验收记录表).docx

    小程序/虚拟资源变现知识付费小程序/激励广告流量主

    已更新微信登录获取用户头像失败功能,增加登录更新账号信息功能。 主要功能 会员系统,用户登录/注册 购买记录 收藏记录 基本设置 后台控制 导航颜色 字体颜色 标题等设置 流量主广告开关 小程序广告显示隐藏 广告主审核过审核 资源管理 后台可以添加5种类型资源 灵活设置 激励广告解锁资源 vip专享资源 免费资源 积分购买资源 阅读全文资源 公告 会员公告系统 VIP系统 用户可以开通VIP 查看vip专属资源 签到 签到互动二奖励 分类 资源分类 友情连接 跳转小程序 盈利能力:激励视频广告+插屏广告+视频广告+横幅广告+格子广告 =收益神器

    [继电保护仿真]-三段式距离保护 基于matlab simulink仿真 支持三段式电流保护、三段式距离保护、零序电流保护、欠压保护、振荡闭锁、差动保护、变压器差动保护、变压器后备保护、母线保护、

    [继电保护仿真]--三段式距离保护 基于matlab simulink仿真 支持三段式电流保护、三段式距离保护、零序电流保护、欠压保护、振荡闭锁、差动保护、变压器差动保护、变压器后备保护、母线保护、自动重合闸、分布式电源自适应保护等仿真定制 ,继电保护仿真; 三段式距离保护; MATLAB Simulink仿真; 多种保护类型仿真定制,Matlab Simulink三段式距离保护仿真定制

    基于Flask的pythonweb开发的外卖平台毕设

    内含数据库 源码 流程图 效果图,绝对物超所值

    薄板动力学相空间非传统Hamilton变分原理及辛算法的研究与应用(可复现,有问题请联系博主)

    内容概要:本文主要讨论了将弹性薄板动力分析从传统的Lagrange体系转换到Hamilton体系的必要性和优势。通过引入非传统Hamilton变分原理,建立了薄板动力学在相空间中的正则方程及对应的辛算法——辛空间有限元-时间子域法。这种方法不仅可以提高计算精度与效率,而且克服了以往非辛算法中存在的诸多缺陷。此外,文章提供了具体的数学模型、边界和初始条件推导以及算例验证。 适用人群:适用于固体力学领域研究人员、机械工程专业的学生和技术人员,特别是关注弹性薄板振动特性分析的专业人士。 使用场景及目标:本方法适用于弹性薄板结构在不同边界条件下的动态响应分析。旨在为相关工程问题提供更高精确度的解决方案。 其他说明:该研究展示了新型算法相比于传统方法在稳定性和准确性方面的优越性。通过对两个特定实例的数据对比进一步证实了辛算法的有效性和可行性。

    基于时变参数字典与精细化二次选择的正交匹配追踪算法在轴承故障诊断中的应用(可复现,有问题请联系博主)

    内容概要:本文提出了一种基于时变参数字典和细化二次选择机制的正交匹配追踪(TPRSS-OMP)算法,用于滚动轴承的早期故障检测。传统的相关滤波方法对噪声敏感,固定参数原子难以适应时间变化的影响特征,而本文提出的改进方法克服了这些问题。首先通过分段时域相关滤波与K-means聚类确定拉普拉斯小波字典的时间变化参数范围,在求解稀疏系数过程中引入新的优化后的次级选择原则——考虑信号重建前后信封频谱峰度的变化,从而提高算法对背景噪音干扰下的故障冲击特征提取能力。实验结果表明,新算法能有效重构故障信号并精准提取故障脉冲特征,适用于实际工况下的滚动轴承监测任务。 适合人群:具有一定机械工程与振动信号处理基础知识的研究人员、研究生、工程师。 使用场景及目标:①工业设备中滚动轴承及其他旋转设备的早期故障预警系统构建;②从强背景噪声中精确提取故障冲击特征。 其他说明:论文提供仿真及真实数据验证,展示了改进后的正交匹配追踪方法相比现有技术在准确性方面的优越表现,特别强调对于复杂操作环境下的鲁棒性能提升。文中还讨论了未来需要解决的问题如K-means聚类方法可能受到大幅波动的影响以及复合故障情况下的扩展性研

    醪糟检验表格(食品企业原辅料质量验收记录表).docx

    醪糟检验表格(食品企业原辅料质量验收记录表).docx

    SBLC买断基本信息.docx

    SBLC买断基本信息.docx

    罗汉果检验表格(食品香辛料质量验收记录表)检验表格(食品香辛料质量验收记录表).docx

    罗汉果检验表格(食品香辛料质量验收记录表)检验表格(食品香辛料质量验收记录表).docx

    MySQL 的.ibd文件恢复数据

    100%能恢复数据,亲测亲调试优化了代码 工具概述 我们有一个用Go语言编写的工具,能够读取.ibd文件并将其转换为可执行的SQL语句,从而实现数据恢复。该工具的主要功 解析.ibd文件:读取并解析.ibd文件中的数据结构。 生成SQL脚本:将解析到的数据转换为SQL插入语句。 恢复数据:通过执行生成的SQL脚本,将数据重新导入数据库 https://blog.csdn.net/qq_24396737/article/details/146182892?spm=1001.2014.3001.5501

    船舶与海洋工程技术-带顶滚轮的船用通用导缆器标准规范(ISO 13733:2020)

    内容概要:本国际标准 (ISO 13733:2020) 详细规定了安装在船舶上以引导系泊绳从船内到外板的带有顶部滚轮的船用通用导缆器的标准和技术要求。具体涵盖四种类型的导缆器分类、额定尺寸、尺寸参数、制造材料、结构设计、制造与检测要求以及标记要求等内容,并明确了安全工作载荷(SWL)的定义和要求,还提供了有限元法(FEM)用于评估强度的分析条件。 适用人群:适用于从事船舶工程、海上技术设备制造和相关标准规范实施的专业技术人员和监管人员。 使用场景及目标:本标准用于指导船舶装备制造商和工程师进行正确的导缆器设计、选型、生产及其安装施工,并保障在各种实际操作条件下能可靠传递系泊负荷。 其他说明:标准修订了多项内容,增加了技术指南并调整了关键部件的设计尺寸,提高了产品的安全性。此外,对于涉及专利权的技术细节,请参照ISO官网的相关信息获取进一步帮助。

    2025年汽车租赁业务系统应该具备的功能

    本文为抛砖引玉:简单描述,如需根据自身业务详细设计,请随时联系

    基于51单片机的测量仪(电压,电平,频率) 1104-基于51单片机的测量仪(电压,电平,频率)原理图、流程图、物料清单、仿真图、源代码 功能介绍: 基于单片机的简易测量仪(测量电压、TTL电平01

    基于51单片机的测量仪(电压,电平,频率) 1104-基于51单片机的测量仪(电压,电平,频率)原理图、流程图、物料清单、仿真图、源代码 功能介绍: 基于单片机的简易测量仪(测量电压、TTL电平01,频率等) 设计一个简易的测量设备,用两支表笔(1个是GND,一个是输入信号)测可用于数字电路实验及测试中 功能要求如下: (1)测量直流信号的电压,电压范围0~5V; (2)测量信号的TTL电平,给出高低电平测量结果;(3)测量数字信号的频率,给出测量结果; (4)用LCD显示结果,使用按键切测量功能(5)显示学号及姓名的拼音字母 有哪些资料: 1、仿真工程文件 2、源代码工程文件 3、原理图工程文件 4、流程图 5、功能介绍 6、元件清单 ,基于51单片机的测量仪;电压测量;电平测量;频率测量;原理图;流程图;物料清单;仿真图;LCD显示;按键切换功能;学号姓名显示。,基于51单片机多功能测量仪:电压、电平、频率测量及显示系统

    基于YOLOv9的智慧渔业捕捞检测系统(Python源码+数据集) 智慧渔业捕捞一共355张,类别为:'fish' ,基于YOLOv9; 智慧渔业捕捞检测系统; Python源码; 数据集; 鱼('

    基于YOLOv9的智慧渔业捕捞检测系统(Python源码+数据集) 智慧渔业捕捞一共355张,类别为:'fish' ,基于YOLOv9; 智慧渔业捕捞检测系统; Python源码; 数据集; 鱼('fish'); 355张图片,基于YOLOv9的渔业智慧检测系统(Python+数据集)

    O型環槽部設計.zip

    O型環槽部設計.zip

    超1000项!2024年度国家自然科学基金管理学部立项清单(最全整理)-最新出炉.zip

    超1000项!2024年度国家自然科学基金管理学部立项清单(最全整理)-最新出炉 一共有1000多个记录,主要统计自各校相关院系发布的2024年获批结果和各位项目负责人的CV,统计项包括学科代码(仅作参考)、项目批准号、单位、负责人、项目名称、项目类型。。内容来源于网络分享,如有侵权请联系我删除。

Global site tag (gtag.js) - Google Analytics