Spring aware接口的作用是什么
392
2022-09-09
如何根据网络分层模型进行性能调优(对网络进行分层,分层模型的概念有什么好处)
比如要对复杂系统进行性能调优,就可以从不同层次的角度去思考与实践。
在应用层不仅要考虑两大指标:TPS(每秒事务数)和QPS(每秒查询率),而且要考虑每个报文的平均大小。 如果希望提升握手或者对称加密的性能优化时,本质上是在表示层进行优化的,需要TLS安全层去讨论性能优化。 对RTT(网络时延)进行优化时,本质上是站在传输层来思考的,就需要考虑网卡的吞吐量、整个主机的BPS。 如果要对TCP的可靠传输进行性能优化时,可以考虑增加TCP连接握手的速度,这是在很深的优化层面上考虑问题。 如果要对PPS(每秒发送的packet)进行优化时,本质上是站在网络层来考虑问题的。比如后端或者运维人员使用英特尔的DPDK,它本质上就是在网络层上进行优化的。 如果对数据链路层进行优化,那么更多需要关注的是广播和ARP的欺骗。 如何选择负载均衡呢?负载均衡包括了三层、四层、七层的负载均衡。七层的负载均衡是在解析应用层的各种各样的协议。那么到四层的时候只解析到UDP或者TCP。三层的负载均衡就是网络层的负载均衡,用NET等各种各样的技术进行负担均衡,比如常用的LVS。
案例一:阿里云ECS存储优化。在阿里云环境中,一台物理机上运行了很多虚拟机(购买的ECS服务器,本质上购买的是虚拟机)。如果购买了云盘,云盘是自动挂载在虚拟机上的。在虚拟机上任何的IO操作,本质上都会通过物理机上称为TTC的程序,将其转发到远端的存储集群中。优化之前,存储集群的cache缓存是放在远端的。那么放在远端时,如何进行优化呢?
站在网络层(三层)的角度进行优化时,网络的传输路径太长了。传输路径过长还会带来另外一个问题,比如说后端云盘为了保证可靠性,就会复制两三份,这样会造成成本过高。如果把缓存前移,直接放在物理机上就会使得路径缩短。
案例二:如何降低多线程多路复用的成本?比如一台物理机上跑了20个虚拟机,平均每个虚拟机包含有一个系统盘和一个数据盘。加起来是40个盘。40个盘使用多线程来解决问题。但是多线程会造成多路复用,成本就会比较高。那么怎么样把这个多路复用的成本降低呢? 通过协程来替代原先的这样多线程的架构,本质上是在传输层进行优化的。
案例二:阿里云使用的是经典网络,内网IP是10开头的A类子网地址,如今使用的是是B类子网地址,网络本质上在跑在VPC或者SDN(软件定义网络),这种网络是在数据链路层上或者是数据链路层与网络层之间(2.5层)。本质上是在rp报文和ip tunnel概念上做文章。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~