TCP的建立过程
关键字:三次握手,四次挥手
三次握手:A发送syn包给B,B确认后返回syn和ack包给A,A确认后返回ack
交换数据:A发送data给B,B返回ack确认,B发送data给A,A返回ack确认
四次挥手:A发送结束给B,B返回ack确认,同时发送结束给A,A返回ack
Docker
集装箱原理,可以把应用以及依赖的环境等封装到一个虚拟空间。
V模型
并发处理需要软件做到怎样的支撑才能做到并发处理,可靠性上
1、避错和容错。
2、避错主要是指提前做一些措施,避免系统在运行中出现错误。
3、容错则是指系统在运行中部分组件出现错误,仍然不失效,可以继续运行;或者当数据、文件损坏或丢失后,系统可以自动将这些数据恢复到以前的状态,使系统能够继续正常运行。
4、测试就是最常用的一种避错技术。而容错则一般使用冗余来实现。
- 转载自 胡庆访[ http://zgynhqf.cnblogs.com/ ]
大量用户使用系统,需要怎么样的支撑才能支持大规模的访问
1、页面静态化:CDN,Nginx,http://blog.csdn.net/king_a_123/article/details/52785516
2、分布式:多台server器。
HA,高可用性,通常有两个或两个以上的节点,当一个节点出现故障,会由另一个节点处理请求。(可靠性)
3、硬件层面优化
4、图片server器分离
5、数据库集群和库表散列:数据读写分离,不同的数据类型、热度放在不同数据库里,
6、缓存,memcache,Squid,redis,消息队列
7、镜像,CDN:解决不同网络接入商和不同区域用户的差异。
8、冗余(可靠性),多个负载均衡server器,多个server器
9、负载均衡
10、应用层面:多线程,中间件优化(tomcat:①线程池优化;②启动占用内存优化;③日志输出优化;④HTTP压缩优化;⑤配置文件优化。)
server器上的负载均衡遇到故障怎么样去处理
什么是负载均衡
- 高性能集群:将单个重负载的请求分散到多个节点进行处理,最后再将处理结果进行汇总
- 高可用集群:提高冗余单元,避免单点故障
- 负载均衡集群:将大量的并发请求分担到多个处理节点。由于单个处理节点的故障不影响整个系统,负载均衡集群同时也实现了高可用性。
server器负载均衡有三大基本Feature:负载均衡算法,健康检查和会话保持。
采用不同的机制建立映射关系,可以形成不同的负载均衡技术,常见的包括:
1、DNS轮询
2、CDN
3、IP负载均衡
硬件设备的主要产品是F5-BIG-IP-GTM(简称F5),软件产品主要有LVS、HAProxy、NginX。其中LVS、HAProxy可以工作在4-7层,NginX工作在7层。
负载均衡的故障处理
- 负载均衡的单点故障:做双机热备份,使用keepalived检查server器状态。
参考:http://blog.csdn.net/lein_wang/article/details/78369957
接口的性能怎么评估
性能指标
1、吞吐率
2、响应时间
3、用户数:
4、硬件参数:IO,CPU,内存,网络
性能测试方法
1、基准测试:基准测试是基于一定规模的数据量上进行单业务或按实际用户操作同比例组合业务的测试,目的在于量化响应时间、吞吐率的指标,便于后续比对。
方法是做多组不同场景的测试,观察结果,抽取出几个关键数据做好记彔,用于以后进行性能对比和评价。
2、性能测试:通过模拟生产运行的业务压力量和使用场景组合,测试系统的性能是否满足生产性能要求。
特点:
(1) 主要目的是验证系统是否具有系统宣称的能力。
(2) 需要事先了解被测系统的典型场景,并具有确定的性能目标。
(3) 要求在已确定的环境下运行。
3、负载测试:通过在被测系统上不断增加压力,直到性能指标,例如“响应时间”超过预定指标或者某种资源使用已经达到饱和状态。
特点:
(1) 主要目的是找到系统处理能力的极限。
(2) 需要在给定的测试环境下进行,通常也需要考虑被测系统的业务压力量和典型场景,使得测试结果具有业务上的意义。
(3) 一般用来了解系统的性能容量,或是配合性能调优使用。
4、压力测试:测试系统在一定饱和状态下,例如CPU、内存等在饱和使用情况下,系统能够处理的会话能力,以及系统是否会出现错误。
特点:
(1) 主要目的是检查系统处于压力情况下是应用的表现。
(2) 一般通过模拟负载等方法,使得系统的资源使用达到较高水平。
(3) 一般用于测试系统的稳定性。
5、配对测试:通过对被测系统的软/硬件环境的调整,了解各种不同环境对系统性能影响的程度,从而找到系统各项资源的最优分配原则。
特点:
(1) 主要目的是了解各种不同因素对系统性能影响的程度,从而判断出最值得进行得调优操作。
(2) 一般在对系统性能状况有初步了解后进行。
(3) 一般用于性能调优和规划能力。
6、并发测试:通过模拟用户的并发访问,测试多用户并发访问同一个应用、同一个模块或者数据记录时是否存在死锁或者其他性能问题。
特点:
(1) 主要目的是发现系统中可能隐藏的并发访问时的问题。
(2) 主要关注系统可能存在的并发问题,例如系统中的内存泄露、线程锁和资源争用方面的问题。
(3) 可在在开发的各个阶段使用,需要相关的测试工具的配合和支持。
7、可靠性测试:通过给系统加载一定的业务压力(例如资源在70%~90%的使用率)的情况下,让应用持续运行一段时间,测试系统在这种条件下是否能稳定运行。
特点:
(1) 主要目的是验证系统是否支持长期稳定的运行。
(2) 需要在压力下持续一段时间的运行。
(3) 需要关注系统的运行状况。
8、针对有冗余备份和负载均衡的系统设计的,可以用来检验如果系统局部发生故障,用户是否能够继续使用系统;以及如果这种情况发生,用户将受到多大程度的影响。
特点:
(1) 主要目的是验证在局部故障情况下,系统能否继续使用。
(2) 还需要指出,当问题发生时“能支持多少用户访问”的结论和“采取何种应急措施”的方案。
(3) 一般来说,只有对系统持续运行指标有明确要求的系统才需要进行这种类型的测试。
转载自:https://www.cnblogs.com/yanyx/p/6709090.html
参考:http://blog.csdn.net/jiary5201314/article/details/51429347
阿里云对象存储的原理