Netty参数设定推荐

BossGroup

  • 结论
    当你使用BossGroup和WorkerGroup时BossGroup推荐设定为监听的端口数,即监听多少端口就设定为多少。
  • 原因
    netty的BossGroup有多个线程(也就是NioEventLoop),建立连接时会有一个线程负责accept,其他的线程负责业务处理。
    当使用BossGroup和WorkerGroup两个线程池时,BossGroup的其他线程不会工作;但是当你的程序需要绑定其他端口时,又会从BossGroup里面拿出一个线程绑定其他端口。

WorkerGroup

  • 结论
    推荐设定为核数*2(在不修改ioRatio的前提下)。
  • 原因
    一般程序分为I/O密集型任务和CPU密集型任务
    对于CPU密集型任务而言,理论上“线程的数量 = CPU核数”就是合适的。但是,在实际应用中的线程数量一般会设置为“CPU核数 + 1”。因为线程有可能因为内存页失效或其他原因导致阻塞,多设置一个线程可以保证CPU的利用率。
    对于I/O密集型,假设IO耗时和CPU耗时比为R,那么计算公式如下:
    最佳线程数 = CPU核数 *(1 + R)
    而Netty的默认线程池个数,就是假设了I/O耗时和CPU耗时的占比是1:1,实际上Netty有一个参数叫ioRatio,默认为50,它表示在一个轮事件循环中,单个I/O线程执行I/O事件和执行异步任务的耗时占比为 1:1。相当于 R = 1,代入上面的公式,就可以得出Netty默认设置的线程池大小自然就是
    默认线程池大小 = CPU核数 * (1 + 1)

leakDetectorLevel

  • DISABLED(禁用): 不进行内存泄露的检测;
  • SIMPLE(操作简单): 抽样检测,且只对部分方法调用进行记录,消耗较小,有泄漏时可能会延迟报告,默认级别;
  • ADVANCED(高级): 抽样检测,记录对象最近几次的调用记录,有泄漏时可能会延迟报告;
  • PARANOID(偏执): 每次创建一个对象时都进行泄露检测,且会记录对象最近的详细调用记录。是比较激进的内存泄露检测级别,消耗最大,建议只在测试时使用。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
根据引用[1]和引用,Netty是一个高性能的网络应用框架,用于快速开发可扩展的服务器和客户端。在进行Netty压测时,可以使用JMeter作为压测工具。 以下是使用JMeter进行Netty压测的步骤: 1. 下载和安装JMeter:可以从JMeter官方网站(https://jmeter.apache.org/)下载JMeter,并按照官方文档进行安装。 2. 创建测试计划:打开JMeter,创建一个新的测试计划。右键点击测试计划,选择"添加" -> "Threads (Users)" -> "Thread Group",设置线程数、循环次数等参数。 3. 添加Netty请求:在测试计划中,右键点击线程组,选择"添加" -> "Sampler" -> "TCP Sampler"。在TCP Sampler的配置中,设置服务器地址和端口号,并选择请求类型(如GET、POST等)。 4. 配置请求参数:在TCP Sampler的配置中,可以设置请求的参数,如请求头、请求体等。 5. 添加监听器:右键点击线程组,选择"添加" -> "Listener" -> "View Results Tree"。这将显示每个请求的结果,包括响应时间、响应码等信息。 6. 运行测试计划:点击JMeter工具栏上的"运行"按钮,开始运行测试计划。JMeter将模拟多个用户同时发送请求到Netty服务器,并记录每个请求的响应情况。 7. 分析结果:在运行完测试计划后,可以通过查看监听器中的结果来分析压测的性能指标,如响应时间、吞吐量等。 请注意,以上步骤仅为示例,实际使用时可能需要根据具体情况进行调整和配置

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

加班狂魔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值