分享好友 最新动态首页 最新动态分类 切换频道
记一次线上商城系统高并发的优化
2024-12-27 12:05

    对于线上系统调优,它本身是个技术活,不仅需要很强的技术实战能力,很强的问题定位,问题识别,问题排查能力,还需要很丰富的调优能力。

记一次线上商城系统高并发的优化

    本篇文章从实战角度,从问题识别,问题定位,问题分析,提出解决方案,实施解决方案,监控调优后的解决方案和调优后的观察等角度来与大家一起交流分享本次线上高并发调优整个闭环过程。

一  项目简要情况概述

    该项目为基于SSM架构的商城类单体架构项目,其中有一个秒杀重磅模块,如下为当前线上环境的简要架构部署图,大致描述一下:

    (1)项目为SSM架构

    (2)服务器类别:1台负载均衡服务器(F5),3台运用程序服务器,1台计时器服务器,1台redis服务器,1台图片服服务器和1台基于Pass架构的Mysql主从服务器(微软云)

    (3)调用逻辑:下图为简要调用逻辑

 

 二  何为单体架构项目

从架构发展角度,软件项目经历了如下阶段的发展:

1.单体架构:可理解为传统的前后端未分离的架构

2.垂直架构:可理解为前后端分离架构

3.SOA架构:可理解为按服务类别,业务流量,服务间依赖关系等服务化的架构,如以前的单体架构ERP项目,划分为订单服务,采购服务,物料服务和销售服务等

4 微服务:可理解为一个个小型的项目,如之前的ERP大型项目,划分为订单服务(订单项目),采购服务(采购项目),物料服务(物料项目)和销售服务(销售项目),以及服务之间调用

 三  本SSM项目引发的线上问题

问题一:当秒杀的时候,cpu暴增。

该系统每天秒杀分为三个时间端:10点,13点和20点,如下为秒杀的简要页面

 图1

图2

 图3

 2.单台运用服务器cpu 

 3.单台运用服务器请求数

 4.rdis连接数(info clients)

这个未保存截图,记得是600左右

connected_clients:600 

5.mysql请求截图

四  排查过程及分析

(一)排查思路。

根据服务部署和项目架构,从如下几个方面排查:

(1)运用服务器:排查内存,cpu,请求数等;

(2)文件图片服务器:排查内存,cpu,请求数等;

(3)计时器服务器:排查内存,cpu,请求数等;

(4)redis服务器:排查内存,cpu,连接数等;

(5)db服务器:排查内存,cpu,连接数等;

(二)排查过程

在秒杀后30分钟内,

1.运用程序服务器cpu暴增,内存暴增,造成cpu和内存暴增的根本原因是请求数过高,单台运用服务器达到3000多;

2.redis请求超时

3.jdbc连接超时

 4.通过gc查看,发现24小时内,FullGC发生了152次

 5.再看看堆栈,发现有一些线程阻塞和死锁

jstat -l pid,也可以通过VisualVM分析

 6.发现有2000多个线程请求无效资源

(三)造成本次系统异常主要因素分析

(1)在秒杀时,请求量过高,导致运用服务器负载过高;

(2)redis连接池满,获取不到连接,connot get a connection from thread pool

(3)jdbc连接池满,获取不到连接和超时

(4)存在大对象代码,如向list集合中不停添加对象,不能及时回收对象导致内存增加,频繁发生Full GC

(5)tomcat并发参数,jvm优化参数,jedis配置参数,jdbc配置参数不合理

(6)未对请求量进行削峰和限流

(7)资源连接未及时释放,如redis连接,jdbc连接未及时释放

 五  最终解决方案

1.增加运用服务,做流量削峰和分流

由于该项目未增加MQ,因此只能采用硬负载,增加服务器水平扩展方式来实现流量削峰和流量分流

 

 2.优化jvm参数,如下为本次优化后的参数

JAVA_OPTS="-server -Xmx9g -Xms9g -Xmn3g -Xss500k -XX:+DisableExplicitGC -XX:MetaspaceSize=2048m -XX:MaxMetaspaceSize=2048m -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 -Dfile.encoding=UTF8 -Duser.timezone=GMT+08"

关于这个jvm参数的优化,jvm理论是怎样的,官方建议是怎样的,实战是怎样的,将在下篇文章中分析。

3.优化tomcat并发相关参数

主要是两方面:

(1)修改bio协议为nio2  (2)根据服务器配置,业务场景,业务流量等合理设置相关参数,尽量达到最优

关于tomcat相关参数优化,在接下来的文章中分析。

4.redis 和jdbc参数优化

由于涉及到安全性问题,这里不列出

5.代码优化

(1)优化掉大对象

(2)优化未及时释放的对象和连接资源

6.解决000多个线程请求无效资源问题

在conf/context.xml增大缓存

<Resource 

    cachingAllowed = "true"

    cacheMaxSize = "102400"

/>

六 最终优化结果

经过几天观察,系统平稳

1.基本监控

2.GC

3.抽样器cou和内存

cpu

 

 内存

七  总结

1.本篇文章从实战角度,从问题识别,问题定位,问题分析,提出解决方案,实施解决方案,监控调优后的解决方案和调优后的观察等角度来与大家一起交流分享本次线上高并发调优整个闭环过程,当然,由于篇幅的限制,

有些细节和优化手段未在本篇文章中提及;

2.虽然解决了该问题,但是从长远来看,该单体项目任然存在很大的问题和隐患,下面随便举几个:

(1)前后端紧耦合,未分离

(2)由于该系统秒杀业务属于非持续性并发,即局部性并发,当前并未做局部并发架构的调整

(3)由于该系统秒杀业务与该项目紧紧耦合在一起,未进行隔离,未独立成单独模块,未单独部署,从而存在因秒杀业务造成整个系统瘫痪的风险;

(4)未做流量削峰和流量限流,如加mq等软手段;

(5)redis未做高可用集群

最新文章
网站怎么优化电池推荐
优化您的网站以推荐电池产品涉及几个方面,包括SEO(搜索引擎优化)、用户体验和内容策略。以下是一些关键步骤: 1. 关键词和SEO优化- 关键词研究: 使用工具如Google Keyword Planner、Ahrefs或SEMrush来识别与电池相关的高搜索量关键词,
虾皮店铺转让多少钱?如何转让?
现在很多卖家选择在跨境平台虾皮上注册开店,但是由于平台上的店铺是非常激烈的,很多卖家无法继续将店铺经营下去,就会想要将店铺进行转让,那么虾皮店铺转让是多少钱了?shopee店铺转让价格并不是一定的,主要还是看店铺的运营情况。一般
超高清美女写真,这款AI工具教你一键生成心仪形象!
限时免费,点击体验最近超火的AI生图神器,坐拥3000美女的大男主就是你! https://ai.sohu.com/pc/generate/textToImg?_trans_=030001_yljdaimn 在这个数字时代,许多人希望通过高科技手段来实现艺术创作,而AI的崛起让这一切变得轻而易举
科技智能重塑外汇体验,最新动态与未来展望
摘要:外汇市场最新动态显示,科技引领未来发展趋势,智能产品正在重塑外汇交易体验。随着科技的不断进步,外汇交易逐渐实现智能化,提供更加便捷、高效的交易方式。智能产品的应用,使得外汇交易更加智能化、个性化,满足不同交易者的需求
ROWNUMBER() OVER( PARTITION BY COL1 ORDER BY COL2)用法,先分组,然后在组内排名,分组计算,主表与附表一对多取唯一等
今天在使用多字段去重时,由于某些字段有多种可能性,只需根据部分字段进行去重,在网上看到了rownumber() over(partition by col1 order by col2)去重的方法,很不错,在此记录分享下:  row_number() OVER ( PARTITION BY COL1 ORDER B
讲座回顾 | 探秘以“假”乱真的AIGC图像与视频生成
图|广外国际学院随着人工智能深入高等教育,海内外优质高等教育资源也在积极响应科技发展的步伐,愈发重视人工智能在现代商业中的关键作用。本次AI系列讲座是广外国际学院响应高等教育高质量发展的一次全新举措,从AI的起源和发展史,到AI
《重返80年代之我靠抓螃蟹发家》短剧在线观看,致姗姗来迟的你(电视剧版)——时光深处的温暖相遇(集萃)短剧在线观看,致姗姗来迟的你百科短剧在线观看
《重返80年代之我靠抓螃蟹发家》是一部在线观看的短剧,讲述了一段关于时光深处的温暖相遇的故事。这部短剧展现了主人公通过抓螃蟹发家致富的历程,同时也展现了姗姗来迟的温暖相遇。观众可以在线观看这部短剧,感受其中的情感与温馨。久别
抖音申请药品类目的方法,开通具体步骤
如果您想在douyin平台上开设药品类目店铺,您需要遵循一系列严格而详细的步骤,以确保您的店铺合法、合规并成功运营。以下是一份详尽的申请和开通指南,帮助您顺利踏入douyin药品电商的蓝海。一、准备必要的资质文件首先,确保您已准备好所
用AI绘画生成超逼真美女写真,你绝不能错过的全新神器!
DALL·E 2:由OpenAI开发的这个工具使用更为复杂的神经网络,能根据文字描述生成惊人的真实图像。你只需输入“优雅的美女在樱花树下微笑”,就能获得相应的高质感画面。其不足之处在于,需要较好的描述能力,才能生成理想的图像。Midjourne
拼多多店铺标题能和别人一样吗?如何优化标题?
最近有很多商家朋友都问过我同一个问题:老师啊,我产品现在能改标题不?改了又降权,不改流量到瓶颈了,不知道如何提升!今天我就出一期关于拼多多商品在什么情况下去改标题怎么去改最好详细讲解一下。相信大家都知道,你的商品卖的好不好
相关文章
推荐文章
发表评论
0评