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 -> 应用程序调优 分析是否有瓶颈(依据当前应用需求) 调优(把错误的调正确) ...
随机推荐
- CARS: 华为提出基于进化算法和权值共享的神经网络结构搜索,CIFAR-10上仅需单卡半天 | CVPR 2020
为了优化进化算法在神经网络结构搜索时候选网络训练过长的问题,参考ENAS和NSGA-III,论文提出连续进化结构搜索方法(continuous evolution architecture searc ...
- 30.5 Map遍历方法
package day30_2_Map; import java.util.HashMap; import java.util.Map; import java.util.Set; /* 方法一.用e ...
- scala_spark实践2
参考:jianshu.com/p/9d2d225c1951 监听socket获取数据,代码如下:这里使用nc -lk 9999 在ip为10.121.33.44的机器上发送消息 object Sock ...
- spark模型error java.lang.IllegalArgumentException: Row length is 0
failure: Lost task 18.3 in stage 17.0 (TID 59784,XXXXX, executor 19): java.lang.IllegalArgumentExcep ...
- sprigboot 异常 Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].Tomc...
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start com ...
- Spring温习(1)--最基础的示例
Spring温习(1)--最基础的示例 博客分类: 框架-Spring专栏 SpringXMLBeanWebDAO 从现在开始,我将从Spring为起点,逐步复习几大框架各方面的知识,以便今后查看使用 ...
- 曹工说Redis源码(6)-- redis server 主循环大体流程解析
文章导航 Redis源码系列的初衷,是帮助我们更好地理解Redis,更懂Redis,而怎么才能懂,光看是不够的,建议跟着下面的这一篇,把环境搭建起来,后续可以自己阅读源码,或者跟着我这边一起阅读.由于 ...
- 安卓虚拟定位软件Fake Location重大更新
前段时间网上找安卓虚拟定位的软件,找了很久,大部分都是多开修改APP,或者是不可用的,最后在KUAN找到一个作者Lerist做的虚拟定位软件 Fake Location ,配合作者本人的一键解锁sys ...
- linux常用命令--打包和压缩文件
bunzip2 file1.bz2 解压一个叫做 'file1.bz2'的文件 bzip2 file1 压缩一个叫做 'file1' 的文件 gunzip file1.gz 解压一个叫做 'file1 ...
- WEBMIN(CVE-2019-15107) 学习
简单介绍: Webmin是目前功能最强大的基于Web的Unix系统管理工具.管理员通过浏览器访问Webmin的各种管理功能并完成相应的管理动作.目前Webmin支持绝大多数的Unix系统,这些系统除了 ...