精华内容
下载资源
问答
  • java 之 web系统优化

    2020-05-16 16:25:24
    前端 静态资源可以放第三方cdn里面 采用前后端分离模式,后端只需要...系统集群然后利用Nginx+Lvs+keepAlived负载均衡 二 jvm 最大堆内存(Xmx) 和最小推内存(Xms)可以设置可以设置成一致 ,这样gc回收频率低 三 加缓

    前端
    静态资源可以放第三方cdn里面
    采用前后端分离模式,后端只需要以josn格式返回需要的内容即可
    后端

    Lvs是四层负载均衡基于ip+端口实现负载均衡
    Nginx是基于应用层Http层实现负载均衡
    Lvs相比Nginx实现负载均衡抗负载能力更加强、稳定、配置低
    keepAlived(如果nginx宕机会帮助我们执行脚本重启)


    系统集群然后利用Nginx+Lvs+keepAlived负载均衡


    jvm 最大堆内存(Xmx) 和最小推内存(Xms)可以设置可以设置成一致 ,这样gc回收频率低


    加缓存减低数据库压力同时也提高查询效率


    比较耗时间的业务代码可以放mq里面,可以提高速度优化

    sql优化

    数据库读写分离并且集群

    展开全文
  • 高访问量Web系统优化

    2017-03-31 11:00:53
    许令波,2009年加入淘宝,目前负责商品详情业务和稳定性相关工作,长期关注性能优化领域,参与了淘宝高访问量Web系统主要的优化项目,著有《深入分析Java Web技术内幕》一书。个人网站[url]http...
    [size=small]许令波/君山  detail静态化
    [url]https://github.com/xulingbo/xulingbo.github.io/issues/[/url]
    许令波,2009年加入淘宝,目前负责商品详情业务和稳定性相关工作,长期关注性能优化领域,参与了淘宝高访问量Web系统主要的优化项目,著有《深入分析Java Web技术内幕》一书。个人网站[url]http://xulingbo.net[/url]

    淘宝大秒系统设计详解
    [url]http://geek.csdn.net/news/detail/59847[/url]
    要点
    热点隔离:业务隔离,系统隔离,数据隔离,这个是当秒杀系统跟其他系统共存时才考虑的,单纯的讨论秒杀系统好像不需要,但实际情况估计秒杀的会员,商品,优惠都是来自普通的系统,所以单纯讨论秒杀系统也不现实。

    动静分离,让浏览器和CDN cache绝大部分静态数据,这样虽然并发请求个数仍然一样多,但是请求的参数和返回值里面的数据就很少了。
    秒杀页面提供一个“刷新”按钮,让用户点击这个“刷新”按钮即可从秒杀等待状态进入秒杀开始状态,不需要用户刷新浏览器或按F5来刷新页面,这样进一步减少请求数,用户在秒杀开始的时间段内基本没有大量请求“静态”数据的请求了

    基于时间分片削峰
    即增加了秒杀答题,当然秒杀答题一个很重要的目的是为了防止秒杀器。其实增加答题还有一个重要的功能,就是把峰值的下单请求给拉长了,从以前的1s之内延长到2~10s左右,请求峰值基于时间分片了,这个时间的分片对服务端处理并发非常重要,会减轻很大压力,另外由于请求的先后,靠后的请求自然也没有库存了(这也是因为有下面的数据分层校验),也根本到不了最后的下单步骤,所以真正的并发写就非常有限了。

    数据分层校验
    把大量静态不需要检验的数据放在离用户最近的地方;在前端读系统中检验一些基本信息,如用户是否具有秒杀资格、商品状态是否正常、用户答题是否正确、秒杀是否已经结束等;在写数据系统中再校验一些如是否是非法请求,营销等价物是否充足(淘金币等),写的数据一致性如检查库存是否还有等;最后在数据库层保证数据最终准确性,如库存不能减为负数。

    关键技术优化点
    Java处理大并发动态请求优化
    同一商品大并发读问题
    同一数据大并发更新问题


    nginx
    [url]http://tengine.taobao.org/documentation_cn.html[/url]
    [/size]
    展开全文
  • 1、背景 因为业务需要,搭建了一个系统系统主要由两部分组成,web页面和数据库。 mysql大概2万条数据,其中有一个字段是click_num点击次数,php页面会取点击次数最小的一条记录去进行操作,然后update一下click_...

    1、背景
    因为业务需要,搭建了一个系统,系统主要由两部分组成,web页面和数据库。

    mysql大概2万条数据,其中有一个字段是click_num点击次数,php页面会取点击次数最小的一条记录去进行操作,然后update一下click_num这个字段,让click_num=click_num+1。

    2、问题
    读取数据的客户端有1000个,大概40秒取一次任务,1秒并发25左右,在开始在mysql数据1万条以内的时候,数据库完全可以支撑,但是再加到了2万条数据的时候,网页加载数据的速度就非常慢了,查看CPU,发现服务器的CPU已经100%了。于是进行机器升级,升级到下面的配置

    发现稍微好了一点点,但是CPU还是高达70%,load负载也非常大。

    于是还想升级服务器,但是去查看阿里云,发现这个已经是顶配了,没有机会再升到更高的配置了,于是开始想着怎么从技术角度去优化。

    3、发现问题
    那么就开始查看问题,首先去判断了一下apache的http连接。

    开始想了很多办法,以为是tcp连接太多出的问题,后面继续排查,发现瓶颈在数据库。
    于是用
    show processlist;
    发现有很多查询卡主了,导致有400多个连接,连接总数一共才400,就导致后面的请求根本无法进来,重点的语句就这一个

    SELECT * FROM down WHERE ENGINE='CLIENTBD' AND state =1 AND ownSign='gold' ORDER BY CLICK_NUM ASC,update_date ASC LIMIT 1
    1
    这个语句的意思,就是从数据库中查询出click_num最小的一条数据。而数据库的表中,2万条数据,其中click_num是有大量相同的最小值的,而且这个字段不断变化,因此也无法设置主键,因此全文排序导致该搜索异常缓慢。

    4、异步化
    其实技术方面去考虑,我每次只需要随机取click_num最小的一条记录,没有必要每次都进行一次检索排序,那么我是不是可以异步去处理?使用一个调度程序,5秒钟就把最小的100个值单独取出来,存到一个新的表中,然后页面在这个100个值的页面把数据取出来,然后再根据ID更新主表中的数据。
    更新主表是使用主键ID,会非常快。

    update down set click_num=click_num + 1,update_date = '".date("Y-m-d H:i:s",time())."' where id = ".$id
    1
    5、实施
    调度程序采用tbscheduler,发现后面全部正常。
    CPU

    服务器负载


    相对之前动不动就占用300%的情况,不知道优化了多少倍,服务器配置也能降低下来节省成本。
    ---------------------
    作者:IT老蒋
    来源:CSDN
    原文:https://blog.csdn.net/itbuluoge/article/details/50902325
    版权声明:本文为博主原创文章,转载请附上博文链接!

    转载于:https://www.cnblogs.com/zgq123456/p/9957424.html

    展开全文
  • 2. 优化sql语句格式, 比如用PreparedStatement代替Statement, 前者避免重复编译, 后者每次都需要对数据库进行解析编译, 降低数据库的访问效率 3. 使用java多线程技术: synchronized, wait, notify. 转载于:...

    1. 采用数据库连接池技术

    2. 优化sql语句格式, 比如用PreparedStatement代替Statement, 前者避免重复编译, 后者每次都需要对数据库进行解析编译, 降低数据库的访问效率

    3. 使用java多线程技术: synchronized, wait, notify.

    转载于:https://www.cnblogs.com/wujixing/p/5445312.html

    展开全文
  • 而这个过程中,会遇到很多问题,在不断解决问题的过程中,Web系统变得越来越大。并且,新的挑战又往往出现在旧的解决方案之上。希望这篇文章能够为技术人员提供一定的参考和帮助。  以下为原文 当一个Web系统...
  • 我所认为的 1,数据库查询尽量次数少,能一次查询完成的,哪怕sql语句复杂,也不要分开几次查询 2.php函数实现,能用自带函数完成的功能的尽量用自带函数完成。 好像想不到其他的了, ...欢迎补充
  • 80%的用户响应时间被花费在前端,而这其中的绝大多数时间是用于下载页面中的图片、样式表、脚本以及Flash这些组件。减少这些组件的数量就可以减少展示页面所需的请求数,而这是提高网页响应速度的关键。...
  • web系统架构优化

    2021-03-31 07:55:33
    一、后台的优化 使用缓存 建立多级别的缓存策略,可以考虑先单机缓存,然后再考虑分布式缓存。分布式缓存可以考虑使用 memcached 或者 redis,redis 提供了更多的存储类型,并支持数据写入磁盘的功能。 网站考虑...
  • 性能评估是进行系统设计以及系统优化的重要事项,进行正确地性能评估才能有效地规划系统容量,保证系统地稳定运行。 性能指标 在性能评估过程中常见的性能指标有以下几种: TPS Transactions Per Second,每秒传输的...
  • 考试系统在进行压力測试时发现,并发量高之后出现了button无反应。试题答案不能写到数据库的问题,于是针对这些核心问题,进行了优化。数据库方面:Select语句:Select * from TEB_VB_XZTRecord改为select必须的列...
  • 优化应用系统优化应用系统优化应用系统优化应用系统
  • java web项目优化记录:优化考试系统 考试系统在进行压力測试时发现,并发量高之后出现了button无反应。试题答案不能写到数据库的问题,于是针对这些核心问题,进行了优化。 数据库方面: ...
  • 高性能web系统的架构和系统优化 原文:高性能web系统的架构和系统优化 07年毕业一直都在软件公司,14年来到一个互联网公司,给我的感受,区别主要在于: 软件公司需求相对稳定,能够按照计划按部就班...
  • 大流量Web系统的性能优化实践.
  • 系统性能优化是个很宽泛的命题, 本文从前台-中间件-后台 三个层面进行简要介绍了如何分析系统慢的原因, 并简要给出解决方向。 希望对新人有所帮助
  • 关于web系统整体优化提速总结 一、背景  随着公司业务的拓展,随之而来就是各种系统横向和纵向的增加,PV、UV也都随之增加,原有的系统架构和模式慢慢遇上了瓶颈,需要逐步的对系统从整体上进行改造升级,通过一段...
  • web 网站优化分析

    2016-07-28 10:54:32
    这里的web系统优化是指网站系统优化,之前一直认为网站系统的优化方面能做的应该是很少的,因为在我过去的认知里,网站是运行在服务器软件(常见的Tomcat)上,服务器软件完成了用户请求的获取,并交给自己的网站,...
  • 高并发WEB系统的涉及与优化 高并发 内存数据库 缓存技术 负载均衡 web服务器
  • web系统速度优化细节

    2012-08-27 15:58:09
    互联网业务重在优化 1.减少页面中css和js个数,并压缩使用,和初次展现无关的js可以通过ajax技术做延迟加载; 2. 图片、样式和js等引用采用多域名方式(www.img1.domain,www.img2.domain),尽可能使用CDN缓存...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,022
精华内容 2,808
关键字:

web系统优化