三高定义
高并发、高性能、高可用
1.1高并发与高性能的关系
高并发指的是机器的并发连接数。如果静态的看待,就是一个时间点下面服务能容纳的最大链接数。如果动态的看待,就是一段时间下连接总数。
高性能则是侧重在处理业务的速度上,耗时越少,性能越好。
从概念上面来说这两个注重的侧重面不一样
例如阻塞io方式实现服务,低并发+高性能的服务,得到响应的速度很快,但可能无法接受大量的并发请求。
大部分时候我们优化性能,并发数也能得到提升,从指标上我们更关注吞吐量与时延
连接数受到资源的限制,例如使用更大的内存,可以一定程度上提高连接数。但是随着连接数上升,处理业务所占用的cpu时间越多,分配给建立连接的cpu时间变少,这时再扩大内存也无法进一步提高连接数。这时我们选用性能更好,核数更多的cpu,提升处理服务性能,腾出更多的cpu时间去建立连接,就反作用的提升了并发连接数,提高了整体的吞吐量
单服务器下大部分时候单纯的提高连接数却对整体性能,吞吐量提升有限,例如我们加大内存条,让机器能接受更多的连接资源,会导致更大的锁冲突,和更多的线程切换成本,导致性能下降,整体的性能无法突破瓶颈。当然在分布式的情况下采用服务的水平扩展来提高连接数
1.2三高的一般手段
作为程序员,抛开硬件优化不谈,我们一般关注单服务下的吞吐量与时延,和分布式下引进的各种问题和解决方案
提升程序吞吐量与时延手段:原则上减少用户态与内核态的切换,减少cpu的切换,提高cpu执行效率,io效率,提高网络通信效率
分布式:有状态服务,无状态服务,服务治理等各种问题 服务三高.png
网友评论