javaweb系统调优方案
1. java代码优化
java代码优化6大原则 : https://blog.csdn.net/bunny1024/article/details/72803708
java代码优化: https://www.cnblogs.com/xrq730/p/4865416.html
2. 业务优化
公司后台是一个手机app后台, 全天平均每秒并发50~60, 个别时间点可达到5000+, 我采用以下措施
(a). 尽量减少对服务器请求次数, 单次请求, 返回尽量多的信息.
比如有个拉取banner广告接口,根据banner展示的位置不同, 会走不同的查询sql, 相当于多个接口集成到一个接口上, 造成接口
访问压力大, 大量占用服务器资源.
改进 : 一次查询, 返回所有banner广告信息, 使用gzip压缩json数据
(b). 尽量避免高并发时间点, 将请求散布到尽可能大的时间范围内
安卓端每天有一部分信息需要在特定时间点更新, 该点为服务器配置, 会造成每天配置的点访问压力瞬时加大, 单台tomcat优化后每秒并发量在500-800,
加配置浪费硬件配置. 不加配置, 造成服务器压力过大, 部分请求会失败或者超时, 严重影响用户体验.
改进 :
1. 调整访问方式为用户随机和代码随机, 具体做法是
用户随机 - 每天手机第一次亮屏并且用户切回到主桌面, 满足2个条件则发送请求. 将原来过0点的瞬时请求, 转化到0点过后的任意时间点,
大大降低瞬时点的并发量
代码随机 - 服务端配置更新时间精确到某一分钟, 用一个随机函数确定请求时间点(秒), 可以将请求由原来的某一秒散布到一分钟以内
(c). 更改运营策略, 错峰访问
结合nginx访问日志, 确定全天高并发时间点和高访问量接口, 具体参见我的nginx日志分析:
高并发点采用b方法,
对于高频访问数据, 要预先加载到缓存中, 次要一些的请求放到全天请求不高的时间段, 比如加载广告资源,
可以预先用定时任务加载缓存中, 而app静默更新下载之类的, 不太紧急的接口, 可以放到并发量不高的时间段去访问
3. tomcat/jvm 优化
tomcat调优 : https://www.cnblogs.com/hcl1991/p/10838245.html
4. nginx优化
参考nginx调优: https://www.cnblogs.com/hcl1991/p/10838912.html
5. mysql优化
参考: https://www.cnblogs.com/hcl1991/p/10839809.html
参考:
aliyun如何处理网站高并发流量问题: https://yq.aliyun.com/articles/696140?spm=a2c4e.11155472.0.0.18bf2c5d5oy2Ui
javaweb系统调优方案的更多相关文章
- linux内存基础知识和相关调优方案
内存是计算机中重要的部件之中的一个.它是与CPU进行沟通的桥梁. 计算机中全部程序的执行都是在内存中进行的.因此内存的性能对计算机的影响很大.内存作用是用于临时存放CPU中的运算数据,以及与硬盘等外部 ...
- Linux低延迟服务器系统调优
最近做了一些系统和网络调优相关的测试,达到了期望的效果,有些感悟.同时,我也发现知乎上对Linux服务器低延迟技术的讨论比较欠缺(满嘴高并发现象):或者对现今cpu + 网卡的低延迟潜力认识不足(动辄 ...
- Linux系统调优1
Linux在进行系统调优的时候,首先要考虑整个操作系统的结构,然后针对各个部分进行优化,下面展示一个Linux系统的各个组成部分: 有上图可以看出,我们可以调整的有应用程序,库文件,内核,驱动,还有硬 ...
- Oracle 系统调优
一:前言 一:调整初始化参数 1: Oracle 初始化参数分类 2:主要系统调优参数介绍 二:系统全局区 sga 优化 1:调整内存分配 2:调整日志缓冲区 1:查询当前oracle 实例的日志缓冲 ...
- Sybase数据库应用系统调优的五大领域
Sybase数据库应用系统调优的五大领域 2011/3/14/13:49来源:慧聪it网 本 文以“某大型商业银行的网上银行系统”这一很具有典型意义的企业级大型Sybase数据库应用系统为例,涉及了数 ...
- fuse3 编译相关简要记录 与 fuse3 系统调优;
下面是在使用fuse3 编译bbfs 过程中一些参数,用于备忘: FUSE_CFLAGS="-I/usr/local/include/fuse3" FUSE_LIBS=" ...
- 大数据集群Linux CentOS 7.6 系统调优篇
大数据集群Linux CentOS 7.6 系统调优篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.设置主机hosts文件 1>.修改主机名 [root@node100 ...
- Linux系统调优——CPU(一)
(1).系统调优思路 性能优化就是找到系统处理中的瓶颈以及去除这些的过程,性能优化其实是对OS 各子系统达到一种平衡的定义.具体步骤如下: 1. 系统的运行状况: CPU -> MEM -& ...
- Linux系统调优相关工具
一.系统调优概述 系统的运行状况: CPU -> MEM -> DISK*-> NETWORK -> 应用程序调优 分析是否有瓶颈(依据当前应用需求) 调优(把错误的调正确) ...
随机推荐
- 8.2 常见api:String类的使用
/* * String:字符串类 * 由多个字符组成的一串数据 * 字符串其本质是一个字符数组 * * 构造方法: * String(String original):把字符串数据封装成字符串对象 * ...
- Array(数组)对象-->shift() 方法
1.定义和用法 shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值. 语法: array.shift() 注意: 此方法改变数组的长度! 举例: var arr = [1,2, ...
- rancher 和 Kubernetes有什么区别?
总体来说,Rancher和k8s都是用来作为容器的调度与编排系统.但是rancher不仅能够管理应用容器,更重要的一点是能够管理k8s集群.Rancher2.x底层基于k8s调度引擎,通过Ranche ...
- AJ学IOS(25)UI之触摸事件
AJ分享,必须精品 iOS中的事件 在用户使用app过程中,会产生各种各样的事件;iOS中的事件可以分为3大类型: 响应者对象–UIResponder 在iOS中不是任何对象都能处理事件,只有继承了U ...
- AJ学IOS(21)UIApplication设置程序图标右上⾓红⾊数字_联⺴指⽰器等
AJ分享,必须精品 效果简介 UIApplication的运用,有很多相如:进⾏行⼀一些应⽤用级别的操作等等,打开网页,打开电话拨号和信息等.. 什么是UIApplication ● UIApplic ...
- Android 修改应用程序字体
在网上搜索了相关资料,研究了两种算是比较快速的改变程序字体的方法,好,先来介绍着两种方法. 首先第一种方法是重写控件(以Textview为例): 1.Android在写程序的时候谷歌早已将所有字体都默 ...
- php+ajax实现拖动滚动条分批加载请求加载数据
HTML: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w ...
- Salesforce 产品 | 协同办公“大魔王”,Salesforce Quip的使用攻略!
Salesforce帮助企业渡过疫情难关,支持在线远程办公.7.5亿美金收购的动态文档共享平台Quip,即刻开放给所有Salesforce老客户还有非营利组织免费使用至2020年9月30日. Quip ...
- Cucumber(1) —— 环境配置
目录 学习资料 cucumber简介 cucumber环境配置 学习资料 1.cucumber官方学习网站 cucumber简介 1.cucumber是一种支持BBD(behavior-driven ...
- [Java网络安全系列面试题] GET 和 POST 的区别在哪里?
一. 概述 本文的内容源自其他博客的总结,属于笔者的读书笔记,结构如下: HTTP 的请求报文 GET 方法的特点 POST 方法的特点 GET 和 POST 的区别 二. HTTP 的请求报文 首先 ...