网站性能调优实战-学相伴KuangStudy
面对并发我们是如何优化KuangStudy网站性能的?
每个项目都会随着用户和数据的增长调整架构,来面对未来的问题,我们也不例外,在1月5号我们平台正式公测后,引起了很多观众的热烈反响,仅仅4天,注册用户便破万。随之而来的就是平台开始变得卡顿,所以我们开始了我们的问题排查和优化,下面就和大家聊聊我们是如何处理的吧。
Nginx
一个网站,核心会分为几部分:前端、后台服务、数据库,服务器。我们最开始项目是打的jar包 ,一个tomcat支撑不了多少并发,Tomcat 默认配置的最大请求数是 150,也就是说同时支持 150 个并发,当然了,也可以将其改大。但是每次直播的时候,并发会暴增,所以我们只能开始搭建集群。
搭建集群后引入了Nginx做反向代理,负载均衡也解决了,我们根据不同的服务器的性能做了权重,果然增加了Nginx,做了负载之后,网站访问快了不少。但是又迎来了Session共享的问题,我们将用户的会话信息放入redis,session共享搞定。接入层搞定了之后,我们发现我们的江湖模块还是很慢。

慢SQL
我们开始排查日志,发现了一些SQL处理竟然要1.5s左右,简直受不了。根本问题是我们做了联表查询,关联的表比较多,于是我们开始优化数据库结构,增加了许多冗余字段,后面江湖首页,只用查询一个表了,从蜗速到现在几乎秒开了。分类我们从数据库查询优化到使用静态数据管理,因为几乎不会发生变化。同时消息提示的sql还有个人主页的sql我们也做了相应的处理,所以现在整个网站的响应速度大大提高了。

主从复制、读写分离
接入层的问题解决后,我们发现项目的压力瓶颈转移到了数据库上面,开始我们还是单个数据库,但是用户的热情远远超出了我们的想象,读和写都在一个数据库,性能完全不太够用,于是我们又买了一台服务器开始做主从,MySQL的主从还是比较简单的,几个命令就搭建好了,然后我们使用了sharding jdbc来做读写分离。写完之后,网站整体的性能都提高了。于是我们发了版,保证了线上运行不卡顿。

信任与责任
连续一周,我们都是凌晨两三点睡,不断的优化用户的建议,让平台越来越稳定和完善,不过努力都是值得的,用户越来越多,迎来了众多年会员的同时,我们也迎来了我们的第一个终身会员,这是信任,这是责任。我不能辜负大家的信任,做更多有意义的事情,做更纯净的社区,做更多的开源组件和更优质的教程来帮助大家,这是我们团队的使命,也是学相伴的使命。
无论遇到多少的Bug,就像飞哥说的,我们灭了它就完事了!没有解决不了的问题,这就是属于我们技术人的底气!

邀请入驻
如果大家平时有写文章的爱好,或者已经有了很多笔记,也欢迎大家能够将自己的文章搬到我们的kuangstudy平台上,提出宝贵的意见,可能我们现在不是最好的,但是我们会努力变成最好的!
以学为伴,一生相伴!
看到了这里,不妨点个喜欢支持我们一下吧!
网站性能调优实战-学相伴KuangStudy的更多相关文章
- Java性能调优实战,覆盖80%以上调优场景
Java 性能调优对于每一个奋战在开发一线的技术人来说,随着系统访问量的增加.代码的臃肿,各种性能问题便会层出不穷. 日渐复杂的系统,错综复杂的性能调优,都对Java工程师的技术广度和技术深度提出了更 ...
- JVM 性能调优实战之:一次系统性能瓶颈的寻找过程
玩过性能优化的朋友都清楚,性能优化的关键并不在于怎么进行优化,而在于怎么找到当前系统的性能瓶颈.性能优化分为好几个层次,比如系统层次.算法层次.代码层次…JVM 的性能优化被认为是底层优化,门槛较高, ...
- JVM 性能调优实战之:使用阿里开源工具 TProfiler 在海量业务代码中精确定位性能代码
本文是<JVM 性能调优实战之:一次系统性能瓶颈的寻找过程> 的后续篇,该篇介绍了如何使用 JDK 自身提供的工具进行 JVM 调优将 TPS 由 2.5 提升到 20 (提升了 7 倍) ...
- spring-petclinic性能调优实战(转)
1.spring-petclinic介绍 spring-petclinic是spring官方做的一个宠物商店,结合了spring和其他一些框架的最佳实践. 架构如下: 1)前端 Thymeleaf做H ...
- Apache Pulsar 在 BIGO 的性能调优实战(上)
背景 在人工智能技术的支持下,BIGO 基于视频的产品和服务受到广泛欢迎,在 150 多个国家/地区拥有用户,其中包括 Bigo Live(直播)和 Likee(短视频).Bigo Live 在 15 ...
- [网站性能2]Asp.net平台下网站性能调优的实战方案
文章来源:http://www.cnblogs.com/dingjie08/archive/2009/11/10/1599929.html 前言 最近帮朋友运营的平台进行了性能调优,效果还不错, ...
- Asp.net平台下网站性能调优的实战方案(转)
转载地址:http://www.cnblogs.com/chenkai/archive/2009/11/07/1597795.html 前言 最近帮朋友运营的平台进行了性能调优,效果还不错,所以写出来 ...
- PHP 性能分析第三篇: 性能调优实战
注意:本文是我们的 PHP 性能分析系列的第三篇,点此阅读 PHP 性能分析第一篇: XHProf & XHGui 介绍 ,或 PHP 性能分析第二篇: 深入研究 XHGui. 在本系列的 ...
- 高性能 Java 计算服务的性能调优实战
作者:vivo 互联网服务器团队- Chen Dongxing.Li Haoxuan.Chen Jinxia 随着业务的日渐复杂,性能优化俨然成为了每一位技术人的必修课.性能优化从何着手?如何从问题表 ...
随机推荐
- 热身训练1 Calculator
题目出处:Calculator 简要题意: 你有一个确定的函数,f(x)=+...*...^...,其中共有n个操作,从左到右依次计算. 共有m次询问,我们每次询问,1.会修改f(x)中的操作:2.输 ...
- js 原型链详解
目录 构造函数和实例 属性Prototype 属性__proto__ 访问原型上的方法 构造函数也有__proto__ 构造函数的原型也有__proto__ Object.prototype这个原型对 ...
- shell IO重定向
I/O重定向 默认情况下,有3个"文件"处于打开状态,stdin,stdout,stderr:重定向的解释:捕捉一个文件,命令,程序,脚本或者脚本中的代码块的输出,然后将这些输出作 ...
- SI Macro
获取 buf 里的 symbol cbuf = BufListCount() msg(cbuf) ibuf = 0 while (ibuf < cbuf) { hbuf = BufListIte ...
- k8s入坑之路(5)kube-apiserver详解
API Server kube-apiserver 是 Kubernetes 最重要的核心组件之一,主要提供以下的功能 提供集群管理的 REST API 接口,包括认证授权.数据校验以及集群状态变更等 ...
- 组件通信之全局事件总线 & 消息订阅发布
全局事件总线 介绍 一种组件间通信的方式,适用于任意组件间通信. 在使用全局事件总线之前需要一些知识准备 所有组件实例的原型对象的原型对象就是 Vue 的原型对象,即VueComponent.prot ...
- springboot入门之版本依赖和自动配置原理
前言 Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that ...
- LeetCode 22. 括号生成 C++(回溯法)
还是用回溯法暴力解题,遍历所有可能,不过还是在此基础上进行了一些的优化,来阻止那些不必要的遍历.好,上代码. class Solution { public: vector<string&g ...
- SpringBoot 居然有 44 种应用启动器
啥是应用启动器?SpringBoot集成了spring的很多模块,比如tomcat.redis等等.你用SpringBoot搭建项目,只需要在pom.xml引入相关的依赖,和在配置文件中简单的配置就可 ...
- SQL告警,执行时间长?教你写一手好 SQL !
博主(编码砖家)负责的项目主要采用阿里云数据库MySQL,最近频繁出现慢SQL告警,执行时间最长的竟然高达5分钟.导出日志后分析,主要原因竟然是没有命中索引和没有分页处理 . 其实这是非常低级的错误, ...