博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
系统优化怎么做-开篇
阅读量:5862 次
发布时间:2019-06-19

本文共 702 字,大约阅读时间需要 2 分钟。

前言

系统优化是一个系统工程, 需要长期监控长期及时解决的事情。我一直在开发的一线,积累了一些经验,开这个专栏。欢迎大家一起讨论,互相学习及进步。

主要从两个方面来讨论

  1. 新系统上线前需要做些什么
  2. 老系统优化有哪些途径

新系统

系统在设计时要考虑系统最大的qps,tps等指标,系统整个至少能支持业务最高峰*2来设计系统。是不是系统支持越高指标越好呢,单纯来讲的确最好, 但"世界没有免费的晚餐",系统要支持更高的并发处理能力,除了代码层面的优化,架构层面还需要引入公共设施比如缓存,消息系统等,引入更多的设施带来的风险就会增加,不符合系统"简单可依赖"的原则。

老系统

俗话说: 找到问题所在,就解决了一半的问题。系统越来越慢有哪些原因, 怎么能找到原因呢,列举一下我之前碰到过几类场景。

  1. 系统依赖的外部接口反应慢,而本系统http没有用连接池,导致系统大量http请求hang住。机器CPU飙高,应用服务器tomcat无法执行新的请求大量拒绝服务。
  2. 系统上线导致不怎么优化的sql上线, 有比较多的慢sql导致数据库响应变慢导致系统整体变慢
  3. 数据库某些表的数据增长快,达到几千万条级别时出现系统变慢,由数据量增大导致的慢查询
  4. 系统输出日志量太大没有及时切分,导致系统IO过大,CPU过载
  5. 代码中对于线程使用不太合理,导致大部分线程处理等待状态,线程切换耗费太长时间
  6. 代码中存在资源互相锁的情况,这里资源主要IO及网络资源,还有队列资源等导致无法高效的并行处理。

这里有两个讨论

  1. 为了提高效率,什么时候值得引入缓存,引入缓存会有什么问题?
  2. 你碰到过什么问题导致线上服务变慢,如何找到原因的,如何解决的呢?

转载地址:http://pzgjx.baihongyu.com/

你可能感兴趣的文章
实现多台web服务器之间的负载均衡
查看>>
[QT入门篇]2 QT中的对象模型——QPointer
查看>>
时间片小内核分享
查看>>
CentOS 7 安装 php-5.6.20
查看>>
RHCE实验2:RHEL6.0安装过程
查看>>
Centos7搭建SVN+Apache+IF.svnadmin支持https实现web管理SVN
查看>>
tomcat启动流程(2)
查看>>
用cmake生成利用VTK库类的visual studio 2010 MFC工程
查看>>
老博客的文章
查看>>
每次登陆linux总是提示:you hava a new mail
查看>>
要么滚回家里去,要么就拼命
查看>>
α测试,β测试以及λ测试
查看>>
Sublime Text3快速编译php
查看>>
我的友情链接
查看>>
android-menudrawer导入分享
查看>>
emacs里用ebrowse解析已有的c++工程
查看>>
DBUnit数据库测试
查看>>
获取 Maven Java web 项目 Resourse / ClassPath 下的文件 路径
查看>>
为什么你总成为不了架构师?
查看>>
WinRAR命令行参数
查看>>