《打造支持上千万http长连接的应用.ppt》由会员分享,可在线阅读,更多相关《打造支持上千万http长连接的应用.ppt(15页珍藏版)》请在三一办公上搜索。
1、打造支持上千万http长连接的应用,张乐伟_韩彰,web旺旺概述,Web旺旺概述,Http长连接,Comet Long Pooling,Comet Streaming,Websocket,Browser,Server,Browser,Server,Browser,Server,request,request,request,response,response,response,response,response,request,Data,Data,Data,多页面交互,每个页面一个连接Flash方案(flashdb,localconnection)轮询cookie,第一版方案,硬件负载,Jet
2、ty集群,Haproxy,Haproxy,页面,页面,页面,Jetty,Jetty,Jetty,Haproxy,引入原因Session sticky软件负载LVS 4层Haproxy 7层 特点负载均衡RR 轮询Least Connection 最少连接Ip hashUri hashurl_param hashHead(“name”)Session sticky(多种负载均衡,注意多台haproxy情况)虚拟主机一致性hash支持Connection keep alive,瓶颈,连接数?Jetty 4万以上 QPS?40000/30=1300 内存?10K*40000=400M,GC是个问题,
3、Old区内存情况,30000连接30s断开一次连接30s将建立30000个连接每30s产生300m内存全部进入old区 full gc频繁,应用暂停时间长,GC调优,并发GC(CMS:Concurrent Mark-Sweep GC)1.Initial Marking 2.Concurrent Marking 3.Final Marking 4.Concurrent Sweeping第一步和第三步需要暂停应用仍将消耗较长时间 扩大S0,S1区,确保不进入old区Eden,S0,S1各1GOld区没有数据 Minor GCParNewGC并行GC,比较消耗CPUParallelGC 并行回收GC
4、-XX:-UseAdaptiveSizePolicy,TCP生命周期,CLOSED,LISTEN,SYN-RECEICED,SYN-SENT,ESTABLISHED,FIN-WAIT-1,FIN-WAIT-2,CLOSING,TIME-WAIT,CLOSE-WAIT,LAST-ACK,被动打开,主动打开,发送SYN,收到SYN,发送SYN+ACK,收到ACK,收到SYN+ACK,发送ACK,同时打开,收到SYN,发送ACK,打开-响应方序列,打开-发起方序列,关闭-发起方序列,关闭-响应方序列,关闭,发送-FIN,收到FIN,发送ACK,收到对FIN的ACK,收到FIN,发送ACK,收到FIN
5、,发送ACK,收到对FIN的应答,等待应用程序关闭,发送FIN,收到对FIN的ACK,定时器过期,同时关闭,Linux TCP调优,echo“1024 65535”/proc/sys/net/ipv4/ip_local_port_range 向外连接可用端口范围echo 1/proc/sys/net/ipv4/tcp_tw_reuse time_wait连接重用echo 1/proc/sys/net/ipv4/tcp_tw_recycle 快速回收time_wait连接echo 180000/proc/sys/net/ipv4/tcp_max_tw_buckets 最大time_wait连接长
6、度echo 20000/proc/sys/net/ipv4/tcp_max_syn_backlog 最大等待处于客户端还没有应答回来的连接数(在三次握手中)echo 10000/proc/sys/net/core/somaxconn 每一个处于监听(Listen)状态端口的监听队列的长度(establisthed 状态之前)echo 10000/proc/sys/net/core/netdev_max_backlog 最大等待cpu处理的包的数目echo 2000000/proc/sys/fs/file-max 最大打开文体数echo 3/proc/sys/net/ipv4/tcp_fin_timeout FIN-WAIT-2状态等待回收时间/proc目录下的所有内容都是临时性的,所以重启动系统后任何修改都会丢失,增加到/etc/rc.local文件,系统重新引导的时候会自动修改,多域名结构,多域名下的消息推送,面向用户的消息推送平台,haproxy,LVS,taobao,tmall,haproxy,Java进程,Java进程,Java进程,haproxy,Web旺旺应用,其他具有推送任务的系统,微博:,