| 
                         缓存可能是网络应用里用的最多的组件。jvm内缓存可以存储一些单机的统计数据,redis等存储一些全局性的统计和中间态数据。 
 
网络应用中会大量使用redis、kv、高吞吐的mq,用来快速响应用户请求。总之,尽量保持通讯层的清爽,你会省去很多忧虑。 
单机支持100万连接的Linux配置 
单机支持100万连接是可行的,但带宽问题会成为显著的瓶颈。启用压缩的二进制协议会节省部分带宽,但开发难度增加。 
和《LWP进程资源耗尽,Resource temporarily  unavailable》中提到的ES配置一样,优化都有类似的思路。这份配置,可以节省你几天的时间,请收下! 
操作系统优化 
更改进程最大文件句柄数 
- ulimit -n 1048576 
 
  
修改单个进程可分配的最大文件数 
- echo 2097152 > /proc/sys/fs/nr_open 
 
  
修改/etc/security/limits.conf文件 
- * soft nofile 1048576* hard nofile 1048576* soft nproc unlimitedroot soft nproc unlimited 
 
  
记得清理掉/etc/security/limits.d/*下的配置 
网络优化 
打开/etc/sysctl.conf,添加配置 
然后执行,使用sysctl生效 
- #单个进程可分配的最大文件数 
 - fs.nr_open=2097152 
 - #系统最大文件句柄数 
 - fs.file-max = 1048576 
 - #backlog 设置 
 - net.core.somaxconn=32768 
 - net.ipv4.tcp_max_syn_backlog=16384 
 - net.core.netdev_max_backlog=16384 
 - #可用知名端口范围配置 
 - net.ipv4.ip_local_port_range='1000 65535' 
 - #TCP Socket 读写 Buffer 设置 
 - net.core.rmem_default=262144 
 - net.core.wmem_default=262144 
 - net.core.rmem_max=16777216 
 - net.core.wmem_max=16777216 
 - net.core.optmem_max=16777216 
 - net.ipv4.tcp_rmem='1024 4096 16777216' 
 - net.ipv4.tcp_wmem='1024 4096 16777216' 
 - #TCP 连接追踪设置 
 - net.nf_conntrack_max=1000000 
 - net.netfilter.nf_conntrack_max=1000000 
 - net.netfilter.nf_conntrack_tcp_timeout_time_wait=30 
 - #TIME-WAIT Socket 最大数量、回收与重用设置 
 - net.ipv4.tcp_max_tw_buckets=1048576 
 - # FIN-WAIT-2 Socket 超时设置 
 - net.ipv4.tcp_fin_timeout = 15 
 
  
总结 
netty的开发工作并不集中在netty本身,更多体现在保证服务的高可靠性和稳定性上。同时有大量的工作集中在监控和调试,减少bug修复的成本。 
深入了解netty是在系统遇到疑难问题时能够深入挖掘进行排查,或者对苛刻的性能进行提升。但对于广大应用开发者来说,netty的上手成本小,死挖底层并不会产生太多收益。 
它只是个工具,你还能让它怎样啊。 【编辑推荐】 - 你没玩过的全新版本Windows 10这些操作你知多少?
 - 在Fedora中安装替代版本的RPM包
 - Windows 10系统各版本功能比较说明
 - 在Linux中如何从命令行查找VirtualBox版本
 - 第一次!Windows 10开始警告旧版本过期
  【责任编辑:武晓燕 TEL:(010)68476606】 
            点赞 0                        (编辑:泰州站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |