大型网站技术架构 读书笔记3 高性能架构

网友投稿 247 2022-10-30


大型网站技术架构 读书笔记3 高性能架构

很明显,这一章是说性能优化的,那么在说性能之前,我们得先了解性能的具体定义,也就是说如何评定一个系统性能是好还是不好。 因此,我们就先说说性能测试,然后分别是前端性能,应用服务器的性能以及存储性能的优化。

性能测试

1 不同的人对性能的认识是不一样的

对开发人员来说,那就简单了,包括系统延迟,系统吞吐量,并发处理能力,稳定性等等。当然,这部分的优化就主要在应用服务器这一层。

对运维来说,那就是基础设施的性能和资源利用率。包括服务器带宽利用率,cpu,内存利用率等等。

2 测试指标

响应时间:这个很好理解,从发出请求到获得响应数据所花费的时间

并发数:同时提交请求的用户数。对于一个网站来说,我们得区分三个概念,网站系统用户数,当前在线用户数,并发用户数。

吞吐量:单位时间内系统处理的请求数量。可是tps(每秒事务数)等指标衡量

性能计数器:包括系统负载,对象与线程数,内存使用等等。监控系统应该监控这些指标,一点到达某个阈值就报警。

这里咱们说说系统负载:正在被cpu执行和等待被cpu执行的进程数目之和。

如果系统负载小于cpu数量,表示系统资源在被浪费,反之,如果系统负载大于cpu数量,那么就是说资源不足

最好的情况就是系统负载等于cpu数量

在linux下,可以使用top命令查看系统负载

参见:l

​​inux怎样使用top命令查看系统状态​​

3 优化策略

第一步肯定就是性能分析喽,你得先确定用户说系统响应缓慢,到底是那个模块拖了后腿。然后再进行优化,大体的优化应该在三个层次:前端,应用,存储。

前端优化

浏览器优化

减少频繁的修改数据(一般情况下读写比例在2:1以上,缓存才有意义)

2 没有热点的访问(也就是说对数据的访问,不遵循2-8定律)

4 数据不一致(如卖家已经改动了商品属性,但是买家并不是实时看到,如果要强制一致也会带来别的问题)

分布式缓存架构

一种是jboss cache代表的需要更新同步的方案,一种是以Memcached为代表的不互相通信的方案。

异步

主要就是使用消息队列,任何可以晚点做的事情都晚点做吧,使用消息队列可以削峰

集群

一匹马拉不动,就用三匹马。很简单的逻辑

代码优化

1 多线程(最好把对象设计为无状态或者使用局部对象,访问资源的时候使用锁)

2 资源复用(单例和对象池)

3 垃圾回收

存储优化


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java虚拟机工具入门
下一篇:java实现飞机大战游戏
相关文章

 发表评论

暂时没有评论,来抢沙发吧~