网站性能调优实战-学相伴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 随着业务的日渐复杂,性能优化俨然成为了每一位技术人的必修课.性能优化从何着手?如何从问题表 ...
随机推荐
- IdentityServer4 负载均衡配置
在不用到负载之前,一切都很好,但是部署多个实例之后,问题挺多的:session问题.令牌签发后的校验问题. 在此之前,先自查官方文档:Deployment - IdentityServer4 1.0. ...
- 在c中使用正则表达式
今天学习编译原理的时候,用c写一个简易的文法识别器实验遇到了一个问题:要用正则表达式去识别正则文法里面的A->ω,A->Bω, 其中ω属于T的正闭包,也就是说我们对正则文法的产生式进行抽象 ...
- Android WebView 实现文件选择、拍照、录制视频、录音
原文地址:Android WebView 实现文件选择.拍照.录制视频.录音 | Stars-One的杂货小窝 Android中的WebView如果不进行相应的设置,H5页面的上传按钮是无法触发And ...
- Pycharm的安装简介
Pycharm 1. Pycharm简介 PyCharm是由JetBrains打造的一款Python IDE,VS2010的重构插件Resharper就是出自JetBrains之手.同时支持Googl ...
- 执行新程序 execve()
新程序的执行 一:execve() 之所以叫新程序的执行,原因是这部分内容一般发生在fork()和vfork()之后,在子进程中通过系统调用execve()可以将新程序加载到子进程的内存空间.这个操作 ...
- kubernetes常见命令
kubernetes命令 kubectl get pod --all-namespaces查看pod节点 kubectl delete -n service/pods/deplay 删除指定内容 ku ...
- properties 文件解析
1.提供properties文件 jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/future?useUn ...
- [hdu6578]Blank
状态f[i][j][k][l]表示前i个数,四种数的最后一次出现的位置分别是i.j.k和l(i>j>k>l),判断所有第右端点为i的区间是否满足此要求(不满足重置为0),考虑第i+1 ...
- [atAGC050B]Three Coins
记$p_{i}$表示该位置是否有硬币 称使得$p_{i,i+1,i+2}$都变为1的操为对$i$的添加操作,使得$p_{i,i+1,i+2}$都变为0的操作为对$i$的删除操作 考虑一个简单的操作:若 ...
- [bzoj1222]产品加工
用f[i][j]表示完成前i个任务,在A机器上加工j小时时B机器上最少要工作多小时,转移就分为三种,即$f[i][j]=min(f[i-1][j-t1],f[i-1][j]+t2,f[i-t3]+t3 ...