Netty实战三-如何让单机下Netty支持百万长连接?,线程常见面试题

本文介绍了如何在单机环境下使用Netty支持百万长连接,涉及操作系统、JVM和Netty层面的优化。主要包括设置操作系统文件描述符限制,调整Netty的线程数,优化心跳机制,以及接收和发送缓冲区调优。通过这些措施,可以在资源允许的情况下提升网络应用的并发能力。
摘要由CSDN通过智能技术生成

二、Netty调优

1、设置合理的线程数

2、心跳优化

3、接收和发送缓冲区调优

4、合理使用内存池

5、IO线程和业务线程分离

三、JVM层面相关性能优化

1、确定GC优化目标

2、确定服务端内存占用

3、GC优化过程


单机下能不能让我们的网络应用支持百万连接?可以,但是有很多的工作要做。而且要考虑到单机的系统资源消耗能否支撑百万并发

一、操作系统优化

============

首先就是要突破操作系统的限制。

在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。

可使用ulimit命令查看系统允许当前用户进程打开的文件数限制:$ ulimit -n 1024

这表示当前用户的每个进程最多允许同时打开1024个文件,这1024个文件中还得除去每个进程必然打开的标准输入,标准输出,标准错误,服务器监听 socket,进程间通讯的unix域socket等文件,那么剩下的可用于客户端socket连接的文件数就只有大概1024-10=1014个左右。也就是说缺省情况下,基于Linux的通讯程序最多允许同时1014个TCP并发连接。

对于想支持更高数量的TCP并发连接的通讯处理程序,就必须修改Linux对当前用户的进程同时打开的文件数量。

修改单个进程打开最大文件数限制的最简单的办法就是使用ulimit命令:

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值