怎么对现有技术架构进行优化?

能从0开始设计一个系统架构师是幸运的,因为能有机会发挥自己的创造力和影响力,一点一点地把架构搭建起来。但相信大多数程序员,或者说架构师,都没有这个机会,更多的是对现有系统进行优化

那么怎么才能让系统变得优化呢,这篇文章我们就来聊聊这个话题。

01 观察

没有进行观察就提优化,就是耍流氓。优化的第一步,是收集数据。那么有哪些性能指标,是值得我们关注的呢?

首先,是响应速度。如果用户点了一个按钮,界面就转圈圈转个几分钟,这肯定是不能忍受的。相反,如果响应极快,就没有优化的必要了。

其次,是资源利用率。这里指的是硬件层次的利用率,包括CPU利用率、内存使用率、磁盘IO、网络IO等。有一些量化的指标。

  • CPU的利用率一般在70-80是一个良好的状态。

  • 内存利用率通常在80以下是比较好的。

  • 磁盘io持续高利用率,说明存储系统可能到了极限。

  • 网络一般也是保持在80以下是比较好的。

再者,是错误率。是不是每次请求都能获得有效的回复呢?会有多少次失败?系统在过去一年内出现了几次崩溃,多大比例的时间是稳定运行的?

收集这些数据,进而优化就有了方向。

02 优化

如果没有有效的监控体系,那么首先就要把监控体系建立起来,收集数据。

当确定需要优化,最直接的优化思路可能就是堆硬件。用钞能力解决问题自然是立竿见影的。但一般来说,我们还是要从软件层来处理问题。

我们可能会问自己几个问题。

  • SQL的执行时间是否是最优的,能否通过添加索引来加速?

  • 数据的及时性要求有没有那么高,能不能使用缓存代替?

  • 单表数量有没有到达瓶颈,需要需要进行表拆分?

  • 所有任务都需要同步执行吗,能不能进行异步处理?

  • 数据库性能有没有被充分利用,代码能不能使用多线程来处理任务?

或许你还有其他更好的问题,欢迎留言。

03 评估优化结果

当监控体系建立起来之后,评估优化结果就只是对比一下的事情了。但这里还有一点重要的操作,那就是要把结果Show出来。提升做优化同事的价值感。



原文始发于微信公众号(架构师手札):怎么对现有技术架构进行优化?

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/234589.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!