ha架构关于应对高并发

author author     2022-08-29     653

关键词:

前言:新项目上线,考验高并发,预选使用LR录制脚本跑脚本,考虑到搭建,使用简便的jmeter工具,       来跑500、1000、1500、2000的并发并打出报告,中间经历过tomcat与jmeter优化。

      高并发下考虑的层面  系统  +  nginx(理论3W左右)  +  tomcat--- 标签(tcp)

实际操作:


      1、

    技术分享


   方案:2000个线程,采取并大(可以选择单个线程间隔),错误日志实时打印

         当并发量达到1740时候,出现报错,报错日志在附件jmeter.txt.

              此时服务器,cpu占用量为2.5%  高于平时1.5%-2%

                     Memcache大概多消耗1.4G-2G之间。

                     Tcp连接数监控 150左右飙升至2400左右,无影响

              此时:服务器情况良 好


          另:tcp连接超过3000时候(昨天测试接口4700并发)。出现cpu报警,开始优化架构


开始排查:


发现报错,不是服务端报错,是不是jmeter工具内存飙高,发现自己pc内存吃紧,关闭其他程序,并且调整jmeter内存,再跑。


2017/04/25 13:59:59 INFO  - jmeter.threads.JMeterThread: Thread finished: 线程组 1-484 

2017/04/25 13:59:59 ERROR - jmeter.threads.JMeterThread: Test failed! java.lang.OutOfMemoryError: unable to create new native thread

at java.lang.Thread.start0(Native Method)

at java.lang.Thread.start(Unknown Source)

at sun.net.www.http.KeepAliveCache$1.run(Unknown Source)

at sun.net.www.http.KeepAliveCache$1.run(Unknown Source)




           技术分享



            调整之后再次跑并发测试,


     技术分享


      报错结果为后端服务端接收http请求后返回异常


   技术分享


           系统层面:


            tcp连接数超过5000,没问题


             技术分享


       连接中统计连接超时


         技术分享


        死套接字超过1000,第一次是2200左右,第二次是1200,说明死套接字回收正常,速度还是可         以的

    再看一下。我的系统曾经做过的调优


       技术分享


应用服务器优化:

          基本的+

【处理器子系统调优】:开启超线程,处理器,重要性不言而喻,cpu性能经常是瓶颈,Hyper-Threading(超线程功能,基于SMP 内核),

Hyper-Threading 在操作系统里将一颗处理器虚拟化为两颗使用,使得处理器,同一时刻,可以执行两个线程或进程

TIME_WAIT相关sysctl参数及超时时间

[[email protected] ~]# sysctl -a | grep tw

net.ipv4.tcp_max_tw_buckets  //处于TIME_WAIT状态的socket数目的最大值

net.ipv4.tcp_tw_recycle = 1 //打开TIME_WAIT快速回收机制

net.ipv4.tcp_tw_reuse //TIME_WAIT状态socket复用

Sysctl –w net.ipv4.tcp_tw_len = 2   设置TIME_WAIT在2秒后超时


      果断调整tomcat内存情况,(此时系统资源合理)


         技术分享


       还是后端压力过大,死套接字还是占据tcp资源,返回

        Server returned HTTP response code: 502 for URL:                http://app.yunce56.cn/v10/message/test/list

       

     来看一下大婶们关于这波测试给出的建议


       技术分享


假死有两种情况,1种是time_wait过多,一种是close_wait过多,前者自行优化,后者开发程序问题

我帮你百度了一下,得出一条结论:这个错误是由于服务器压力过大,不能及时处理client的请求导致服务器响应超时而抛出的错误


       技术分享


基本上可以得出结论:

      即使做过死套接字回收机制+tomcat优化,应用服务器也无法支持瞬间大并发3000,单台服务器理论65535.停留在涉及理论,(根据业务,有长连接或者是持续连接,做tcp连接回收机制,重点谨慎考虑)


之后采取措施:使用haproxy/lvs + nginx(s)+tomcat(s)。来因对并发,单台服务器并发3000即有3%左               右连接数无法得到后端及时响应。

返回测试结果。调整架构方案。


架构方案(方案 + 回退机制)


方案

技术分享


注重要的,关于80端口是谁提供的服务,根据架构决定,后来是haproxy+nginx


技术分享


服务器采购


技术分享

nginx书写


技术分享


haproxy书写


技术分享


上一篇文章书写,关于tomcat优化,借鉴之前的经验

http://chennailong.blog.51cto.com/10063928/1883671


方案提出,等待夜晚来临,运维,are you ready ? 2017年4月26日  22:00-凌晨

本文出自 “青春” 博客,请务必保留此出处http://chennailong.blog.51cto.com/10063928/1919737

高并发的常见应对方案

一、关于并发我们说的高并发是什么?在互联网时代,高并发,通常是指,在某个时间点,有很多个访问同时到来。 高并发,通常关心的系统指标与业务指标?QPS:每秒钟查询量,广义的,通常指指每秒请求数响应时间:从... 查看详情

互联网企业如何应对网站架构演化带来的“蝴蝶效应”

...据和面对数以亿计的用户,问题就会变得棘手。大型网站架构主要就是解决这类问题。大型网站系统的特点高并发,大流量需要面对高并发用户,大流量访问。Google日均PV35亿,日IP访问数3亿;腾讯QQ的最大在线用户数1.4亿(2011... 查看详情

互联网企业如何应对网站架构演化带来的“蝴蝶效应”

...据和面对数以亿计的用户,问题就会变得棘手。大型网站架构主要就是解决这类问题。大型网站系统的特点高并发,大流量需要面对高并发用户,大流量访问。Google日均PV35亿,日IP访问数3亿;腾讯QQ的最大在线用户数1.4亿(2011... 查看详情

华为云擎天架构如何应对“高并发”?

...并发处理了,我觉得在这一点上,华为云的擎天架构就是非常有优势的,我之前在做智能驾驶和智慧仓储相关项目的时候对这个架构还是有一定的了解的,擎天架 查看详情

华为云擎天架构如何应对“高并发”?

...并发处理了,我觉得在这一点上,华为云的擎天架构就是非常有优势的,我之前在做智能驾驶和智慧仓储相关项目的时候对这个架构还是有一定的了解的,擎天架 查看详情

让有状态的节点变成无状态的节点才能更好的应对高并发

...了它的重要组件FaaS为什么响应这么快,得益于它的三层架构,这篇文章我们将继续深入分析一下FaaS,了解一下它的两种进程以及对高并发是怎么进行应对的。FaaS的两种进程模型FaaS有两种进程模式,一种是用完就销毁的,一种... 查看详情

大型网站的架构设计问题----大型高并发高负载网站的系统架构

...擎前端平台开发,又在猫扑处理过大型社区猫扑大杂烩的架构升级等工作,同时自己接触和开发过不少大中型网站的模块,因此在大型网站应对高负载和并发的解决方案上有一些积累和经验,可以和大家一起探讨一下。一个小型... 查看详情

高并发高可用高性能的架构学习

张善友15年底分享的博客:千万级规模高性能、高并发的网络架构经验分享张开涛17年5月出版的书籍:《亿级流量网站架构核心技术》提到Disruptor+Redis队列关于Disruptor的介绍:http://ifeve.com/disruptor/ 查看详情

302|高并发架构设计方法:面对高并发,怎么对症下药?

你好,我是李智慧。我们知道,“高并发”是现在系统架构设计的核心关键词。一个架构师如果设计、开发的系统不支持高并发,那简直不好意思跟同行讨论。但事实上,在架构设计领域,高并发的历史非常短暂,这一架构特性... 查看详情

高并发场景以及应对技巧(代码片段)

...看高并发1.4高并发带来的问题1.5高并发问题层面2.高并发应对技巧2.1应对思路2.1.1客户端2.1.2服务端2.1.3服务端处理基本原则2.2应对手段2.2.1客户端2.2.2服务端(CDN、Nginx)2.2.3服务端(WebServer)2.2.4服务端(业务... 查看详情

应对memcache缓存失效,导致高并发查询db

当Memcached缓存失效时,容易出现高并发的查询DB,导致DB压力骤然上升。这篇blog主要是探讨如何在缓存将要失效时,及时地更新缓存,而不是如何在缓存失效之后,如何防止高并发的DB查询。解决这个问题有四种思路:比如一个ke... 查看详情

关于我

...年加入某在线教育公司,负责技术中心中间件产品设计与架构,承担了搜索平台、ELK、分布式跟踪、实验平台等架构设计曾任百度高级工程师职位,从事PV过亿的高并发Push相关的技术研发工作目前致力于解决分布式,高并发,大... 查看详情

java架构师成长路线-高并发网络编程的分类

鲁班学院java架构师成长路线随着互联网时代的到来,高并发网络编程这一新鲜名词早已跃然于纸上,为了满足大众眼光的需求,我为大家找了些关于高并发网络编程方面的资料,本文便来介绍高并发网络编程中的epoll的实现机制... 查看详情

hadoophdfs高可用与高扩展原理分析(ha架构与federation机制)

文章目录一、HDFS的高可用性(HA架构)二、HDFS的高扩展性(Federation机制)三、HA架构+Federation机制一、HDFS的高可用性(HA架构)       为保证HDFS的高可用性,即当NameNode节点机器出现故障而导致... 查看详情

李智慧·高并发架构实战课课程大纲

1开篇词|“附身”大厂架构师,身临其境设计高并发系统201|软件建模与文档:架构师怎样绘制系统架构蓝图?302|高并发架构设计方法:面对高并发,怎么对症下药?504|网页爬虫设计:如何下载千亿级网页?605|网盘系统设计:万... 查看详情

架构之高可用性(ha)集群(keepalived)

 Keepalived简介  Keepalived是Linux下一个轻量级别的高可用解决方案。高可用(HighAvalilability,HA),其实两种不同的含义:广义来讲,是指整个系统的高可用行,狭义的来讲就是之主机的冗余和接管,  它与HeartBeatRoseHA... 查看详情

redis_11_redis集群实现主从复制应对高并发(代码片段)

...edis搭建的集群有三个作用:1、Redis集群实现主从复制应对高并发2、Redis集群实现Sentinel哨兵应对高可用3、Redis集群实现RedisCluster应对大数据量二、主从复制搭建实现方式包括三种:方案1ÿ 查看详情

redis_08_redis集群实现主从复制应对高并发(代码片段)

...edis搭建的集群有三个作用:1、Redis集群实现主从复制应对高并发2、Redis集群实现Sentinel哨兵应对高可用3、Redis集群实现RedisCluster应对大数据量二、主从复制搭建实现方式包括三种:方案1ÿ 查看详情