精华内容
下载资源
问答
  • 华为 QOS服务质量基础知识总结

    万次阅读 多人点赞 2020-12-14 00:52:33
    QOS服务质量 你知道的有多少?

    我是艺博东 ,一个正在努力学IT的码农;好了,话不多说,我们直接进入正文。

    这一期是结合课上的PPT、课堂笔记、加上个人的想法以及相关的产品文档来写的,有不合理的地方,希望各位大佬多多指正;我个人感觉这非常有必要去总结一下所学的知识,也便于复习、加深理解、提升复习效率等。

    一、拓扑

    在这里插入图片描述

    二、基本配置与分析

    SW-1

    [Huawei]sysname SW-1
    [SW-1]vlan batch 100 200
    [SW-1]interface GigabitEthernet 0/0/1
    [SW-1-GigabitEthernet0/0/1]port link-type access 
    [SW-1-GigabitEthernet0/0/1]port default vlan 100
    [SW-1-GigabitEthernet0/0/1]int g0/0/2
    [SW-1-GigabitEthernet0/0/2]port link-type access 
    [SW-1-GigabitEthernet0/0/2]port default vlan  200
    [SW-1-GigabitEthernet0/0/2]int g0/0/3
    [SW-1-GigabitEthernet0/0/3]port link-type trunk 
    [SW-1-GigabitEthernet0/0/3]port trunk  allow-pass vlan 100 200
    

    AR-1

    (1)配置单臂路由
    (2)配置缺省路由

    [Huawei]sysname AR-1
    [AR-1]int g0/0/0.10
    [AR-1-GigabitEthernet0/0/0.10]dot1q  termination  vid  100
    [AR-1-GigabitEthernet0/0/0.10]arp broadcast enable 
    [AR-1-GigabitEthernet0/0/0.10]ip address 1.1.1.254 24
    [AR-1-GigabitEthernet0/0/0.10]quit
    [AR-1]int g0/0/0.20
    [AR-1-GigabitEthernet0/0/0.20]dot1q  termination vid  200
    [AR-1-GigabitEthernet0/0/0.20]arp broadcast enable 
    [AR-1-GigabitEthernet0/0/0.20]ip address 2.2.2.254 24
    [AR-1]int g0/0/1
    [AR-1-GigabitEthernet0/0/1]ip address 10.1.12.1 24
    [AR-1-GigabitEthernet0/0/1]quit
    [AR-1]ip route-static 0.0.0.0 0.0.0.0 10.1.12.2
    
    [AR-1]int g0/0/0.10
    [AR-1-GigabitEthernet0/0/0.10]trust 8021p override 
    [AR-1-GigabitEthernet0/0/0.10]quit
    [AR-1]int g0/0/0.20
    [AR-1-GigabitEthernet0/0/0.20]trust  8021p override 
    

    AR-2

    [Huawei]sysname AR-2
    [AR-2]int g0/0/0
    [AR-2-GigabitEthernet0/0/0]ip address  10.1.12.2 24
    [AR-2-GigabitEthernet0/0/0]q
    [AR-2]int LoopBack 0
    [AR-2-LoopBack0]ip address 20.20.20.20 32
    [AR-2-LoopBack0]q
    [AR-2]ip route-static 0.0.0.0 0 10.1.12.1
    [AR-2]int g0/0/1
    [AR-2-GigabitEthernet0/0/1]ip address  10.1.23.2 24
    [AR-2-GigabitEthernet0/0/1]quit
    [AR-2]ip route-static 0.0.0.0 0 10.1.23.3
    

    AR-3

    [Huawei]sysname AR-3
    [AR-3]int g0/0/0
    [AR-3-GigabitEthernet0/0/0]ip address  10.1.23.3 24
    [AR-3-GigabitEthernet0/0/0]q
    [AR-3]int l0
    [AR-3-LoopBack0]ip address  3.3.3.3 32
    [AR-3-LoopBack0]quit
    [AR-3]ip route-static 0.0.0.0 0.0.0.0 10.1.23.2
    

    PC-1
    在这里插入图片描述
    PC-2 配置地址类似

    PC1 ping 20.20.20.20
    在这里插入图片描述

    dis qos queue statistics interface GigabitEthernet 0/0/0
    在这里插入图片描述
    PC2 ping 20.20.20.20
    再 ping测
    在这里插入图片描述
    在这里插入图片描述
    由以上输出结果可知经过再一次PING测,14个报文增加到19个报文了。

    AR-1

    [AR-1]qos map-table dot1p-lp
    [AR-1-maptbl-dot1p-lp]input 0 output 7
    

    dis qos map-table dot1p-lp
    在这里插入图片描述
    PC2 ping 20.20.20.20
    再 ping测

    在这里插入图片描述

    dis qos queue statistics interface GigabitEthernet 0/0/0
    在这里插入图片描述
    在AR-1上进行抓包
    在这里插入图片描述
    发现是DSCP为0

    因为默认情况下:
    802.1p=0
    dscp 0

    仅仅只把某一报文映射到了某一队列中,但DCSP没变。

    修改之后会有什么效果呢?

    [AR-1]qos map-table dot1p-dscp
    [AR-1-maptbl-dot1p-dscp]input 0 output 46
    

    PC2 ping 20.20.20.20
    再 ping测

    在这里插入图片描述
    在这里插入图片描述
    抓包分析
    发现DSCP已改为EF(46)

    PC1 ping 20.20.20.20
    再 ping测
    在这里插入图片描述
    队列7增加了5个报文。
    这说明 报文进入接口后根据信息的标记值映射到本地优先级,并将报文放不对应的队列中,然后根据标记值的映射修改相关标记值,在出口队列发出报文。

    AR-1

    1.1.1.1 3.3.3.3 dscp 0 —> dscp 10
    2.2.2.2 3.3.3.3 dscp 0 —> dscp 40

    dscp 10 —> 3
    dscp 40 —> 6

    [AR-1]acl 3000
    [AR-1-acl-adv-3000]rule permit igmp source 1.1.1.1 0 destination  3.3.3.3 0
    [AR-1-acl-adv-3000]q
    [AR-1]acl 3010
    [AR-1-acl-adv-3010]rule permit icmp source 2.2.2.2 0 destination 3.3.3.3 0
    [AR-1-acl-adv-3010]q
    [AR-1]traffic classifier 3000
    [AR-1-classifier-3000]if-match acl 3000
    [AR-1-classifier-3000]q
    [AR-1]traffic classifier 3010
    [AR-1-classifier-3010]if-match  acl 3010
    [AR-1-classifier-3010]q
    [AR-1]traffic behavior 3000
    [AR-1-behavior-3000]remark dscp 10
    [AR-1-behavior-3000]q
    [AR-1]traffic behavior  3010
    [AR-1-behavior-3010]remark dscp 40
    [AR-1-behavior-3010]q
    [AR-1]traffic policy ybd
    [AR-1-trafficpolicy-ybd]classifier 3000 behavior  3000
    [AR-1-trafficpolicy-ybd]classifier 3010 behavior  3010
    [AR-1-trafficpolicy-ybd]int g0/0/1
    [AR-1-GigabitEthernet0/0/1]traffic-policy ybd  outbound
    

    PC1 PING测 3.3.3.3
    在这里插入图片描述

    AR-2

    [AR-2]int g0/0/0
    [AR-2-GigabitEthernet0/0/0]trust dscp override
    [AR-2-GigabitEthernet0/0/0]q
    [AR-2]qos map-table dscp-lp
    [AR-2-maptbl-dscp-lp]input 10 output 3
    [AR-2-maptbl-dscp-lp]input 40 output 6
    

    [AR-2]dis qos queue statistics interface GigabitEthernet 0/0/0
    在这里插入图片描述
    AR-2

    [AR-2]qos queue-profile  ybd
    [AR-2-qos-queue-profile-ybd]schedule wfq 0 to 3 pq 6
    [AR-2-qos-queue-profile-ybd]q
    [AR-2]int g0/0/1
    [AR-2-GigabitEthernet0/0/1]qos queue-profile ybd 
    

    [AR-2]dis qos queue statistics interface GigabitEthernet 0/0/1
    在这里插入图片描述

    [AR-2]drop-profile d
    [AR-2-drop-profile-d]wred dscp 	
    [AR-2-drop-profile-d]dscp 10 low-limit 20 high-limit 30 discard-percentage 30
    [AR-2-drop-profile-d]q
    [AR-2]qos queue-profile 
    [AR-2-qos-queue-profile-ybd]queue 3 drop-profile d
    

    三、前言

    随着网络的不断发展,网络规模及流量类型的不断增加,使得互联网流量激增,产生网络拥塞,增加转发时延,严重时还会产生丢包,导致业务质量下降甚至不可用。所以,要在IP网络上开展这些实时性业务,就必须解决网络拥塞问题,而解决网络拥塞的最直接的办法就是增加网络带宽,但从网络的建设成本考虑,这是不现实的。

    QoS(Quality of Service)技术就是在这种背景下发展起来的。在带宽有限的情况下,该技术应用一个“有保证”的策略对网络流量进行管理,并实现不同的流量可以获得不同的优先服务。

    四、服务模型有哪些

    (1)带宽永远不够
    (2)带宽可以被滥用,业务保证能力弱。
    所以为了提高网络的服务质量,单纯的提高带宽,收效可能不大。

    最大带宽 BWmax 等于传输路径上的最小带宽。

    4.1 尽力而为服务模型

    在尽力而为的服务模型的网络上可通过增大网络带宽、升级网络设备等方式来提升网络通信质量。

    4.1.1 增大网络带宽:

    在这里插入图片描述

    优点:可以改善带宽瓶颈、串行化延迟、丢包等问题。
    缺点:网络建设成本较高。

    4.1.2 升级网络设备:

    在这里插入图片描述

    优点:可以改善处理延迟、队列延迟、丢包等问题。
    缺点:成本较高,替换设备增大业务中断风险。

    4.2 综合服务模型

    使设备运行一些协议来保障关键业务的通信质量。

    在这里插入图片描述

    优点:可以为某些特定业务提供带宽、延迟保证。
    缺点:实现较复杂;当无流量发送时,仍然独占带宽,使用率较低;该方案要求端到端所有节点设备都支持并运行RSVP协议。
    该服务模型在现实网络中并不多见。

    4.3 区分服务模型

    为解决综合服务模型的协议实现复杂性及带宽利用率低等问题,在网络中可部署DiffServ区分服务模型来保证关键业务的通信质量。
    在这里插入图片描述
    优点:不同业务可以得到不同的服务质量;可对流量加于区分对待,高优先级流量可得到高的服务,且线路利用率较高。
    缺点:对人员要求较高。

    目前应用最广的就是区分服务模型。

    4.4 三种服务模型对比

    优点 缺点
    尽力而为服务模型 实现机制简单 对不同业务流不能进行区分对待
    综合服务模型 可提供端到端QoS服务,并保证带宽、延迟 需要跟踪和记录每个数据流的状态,实现较复杂,且扩展性较差,带宽利用率较低
    区分服务模型 不需跟踪每个数据流状态,资源占用少,扩展性较强;且能实现对不同业务流提供不同的服务质量 需要在端到端每个节点都进行手工部署,对人员能力要求较高

    五、报文分类

    802.1p 指的是802.1Q的优先级字段的另外一种叫法

    报文分类可依据不同链路类型传输的不同类别的报文,且其自身所含有的标识QoS优先级的字段值来进行分类:

    5.1 VLAN帧头中的802.1Q字域
    在这里插入图片描述
    5.2 MPLS报文中Label字域
    在这里插入图片描述
    5.3 IP报文头中的ToS字域

    在这里插入图片描述

    由于其只能依据一种粗略地分类方式且匹配规则较简单,故被称为简单流分类。

    5.4 IPv4报文的DSCP字段
    IP报文中的DSCP字段值(对IP-Precedence字段进行了扩充)。
    在这里插入图片描述
    网络的质量服务默认模式是FIF0 ,先进先出,所有业务一视同仁,没有区分服务。

    为什么要进行分类?
    为了提供区分服务,那么流量就必须进行分类。

    基于报文本身的标记执行报文的分类
    1、802.1P
    2、EXP

    缺少端到端对报文分类和标记的能力

    3、IPP
    4、DSCP

    可以实现端到端对报文实现分类和标记的能力

    PPP
    HDLC
    FR

    IPP
    DSCP

    5.5 IPv4报文的DSCP字段

    DSCP值有两种表达方式:
    数字形式:DSCP取值范围为0~63;
    关键字表达方式:用关键字标识的DSCP值。
    在这里插入图片描述
    BE:尽力而为,无需做为服务保证非关键业务流量
    AF:确保转发,一般用于分配需要带宽保证的业务流量,对延时,抖动要求不高的业务。FTP,FILE server,SQL
    EF∶快速转发,一般用于分配给需要带宽保证,低延时,低抖动,低丢包率的业务。viop,viode。
    CS:类别服务,主要用于实现和IPP的兼容。

    注意:报文的标记值本身不能决定路由器对该报文做何种质量服务,而是取决于管理员对于拥有该标记的报文所执行QOS策略。
    故这些标记也仅仅起到分类和标记的作用。

    六、华为QOS分类

    6.1 简单流分类

    根据报文自身携带的标记执行报文的分类;
    缺点:报文分类依据比较单一,无法精确区分业务流量。
    因为不同业务可能拥有相同的标记,而我们希望给这些相同标记的不同业务要提供区分服务时,就无法很好的支持。简单流分类适合在DS域内部实施,方便QOS策略的部署,在DS域内提供统一的QOS策略。

    6.2 复杂流分类

    根据报文多项特征对业务进行精细化分类,精细化的区分业务,提供区分服务能力更强;
    缺点:配置比较繁琐。
    复杂流分类适合在DS域的边缘实施,并结合标记技术,对业务进行统筹管理。

    6.3 DS的信任边界

    由DS域的边界设备组成,边界设备不应该信任DS域外进入DS域内的流量的标记,因为流量的标记不一定是满足我们的标记策略的。所以在边界需要对流量根据DS域的业务分类策略进行业务分类,并重新定义这些流量的标记,方便DS域内的设备根据标记实施简单流分类,并实施QOS策略。

    七、小结

    7.1 报文标记的配置

    traffic behavior ybd
    remark 8021p 1

    7.2 流分类

    traffic classifier OA operator and “与” 匹配
    if-match x
    if-match y

    报文需要同时满足x和y条件才属于定义OA类流量

    traffic classifier OA operator or “或” 匹配
    if-match x
    if-mathc y

    报文只要满足x或者y条件就属于定义OA类流量

    默认操作符为“or”

    标记:对分类出的数据进行重标记,让报文的标记符合我们定制的QOS策略。

    7.3 流行为

    traffic behavior OA

    设定流量操作的行为

    7.4 流策略

    traffic policy

    将流量和行为进行关联,形成相应的QOS策略。

    在接口的inbound或outbound方向上引用流策略。

    7.5 基于MQC的命令行模式

    MQC模块化QOS命令

    优势:可读性强,可移植性强,可编辑能力强。

    八、拥塞管理与拥塞避免

    学习QOSd 五大方向(前五个)

    8.1 流量分类

    (1)简单流分类
    根据报文携带的标记进行分类
    1)缺点:基于类的缺点,不能够精确的定义出一条流
    2)适合在DS域内来实施,方便QOS的部署,提供统一的QOS策略

    (2)复杂流分类
    根据报文的五元组来进行灵活的组合
    1)配置比较复杂
    2)DS边界设备来做,而且要结合标记技术,对业务统筹管理

    注意: 复杂的流分类用在DS域的边界设备,简单流分类用在DS域内。

    8.2 流量标记

    8.3 拥塞管理

    队列技术
    什么是队列呢?
    分为软件队列,硬件队列(硬件队列满,即发生拥塞)

    队列的3个组成要素
    a.分类机制
    b.插入机
    c.调度机制

    硬件队列
    分类:没有分类
    插入:没满就缓存
    调度:FIFO

    设备如何识别发生了拥塞

    即出口报文缓存队列满了,即认为产生拥塞了。

    (1)PQ提供快速转发服务,适合实时型的业务,语音,视频,直播。

    缺点:如果高优先级队列业务把出口带宽用完,那么低优先级队列可能没有带宽可以使用。
    不能做带宽保证服务。
    什么带宽保证?就是量化。

    (2)RR轮询队列,每个队列都能得到带宽,不会 “饿死”,带来延时和抖动,在带宽分配上没有体现出区分服务的特点。不能保证带宽。
    (3)WRR
    (4)DRR
    PQ,WRR,DRR根据报文的优先级分类,进入相应的队列。

    (5)队列的组成
    a.分类机制
    决定报文进入哪个队列
    b.插入机制
    尾丢弃/WRED
    c.调度算法

    (6)WFQ,加权的公平队列
    分类机制

    (7)基于“流”的分类

    SIP+DIP+SPORT+DPORT+TCP/UDP+TOS进行哈希计算,hash值就是队列号,并将报文放入到该队列。

    queue llq                //低延时队列
    
    queue llq bandwidth 1024 //低延时队列带宽为1M
    
    af Specify AF (Assured Forwarding) service
    

    适合提供给数据业务,带宽保证的业务,但不提供低延时服务。

    ef Specify EF (Expedited Forwarding)service 
    

    适合提供给实时业务,带宽保证并监管,提供低延时方服务。

    llq Specify LLQ (Low-latency) service
    

    适合提供给语音业务,一种比EF效果更好队列机制,带宽保证并监管,提供更低延时业务。

    wfq Specify flow-based WFQ for BE (Best-Effort) traffic
    

    基于流的WFQ队列,适合提供给不需要严格QOS保障的业务。

    PCT是什么意思?代表分配接口带宽的百分之十。

    CBQ
    llq
    ef

    带宽保证并监管 1M 监管,不管是否拥塞最多1M。
    LLQ,EF 提供低延时,带宽保证的业务

    AF

    带宽保证 1M 不监管,保证1M,不拥塞时可以超过1M

    AF 提供带宽保证业务。

    队列是实现拥塞管理的主要手段,是一种拥塞保证关键业务体验不下降,劣化其他非关键业务体验的一种技术。

    不建议把太多的业务放入到LLQ或者EF队列中。

    default-class所有没有匹配分类策略的报文,默认属于该类,应用BE队列,即基于流的WFQ队列。

    队列调度算法的比较

    在这里插入图片描述

    8.4 拥塞避免

    8.5 整形和监管

    8.5.1 流量监管技术

    优点:可实现对不同类别的报文分别进行限速。
    缺点:当链路空闲时,造成带宽浪费;丢弃的流量可能要进行重传。

    8.5.2 流量整形技术

    优点:可实现对不同报文分别进行限速;缓冲机制可减少带宽浪费,减少流量重传。
    缺点:可能会增加延迟。

    8.5.3 流量监管与流量整形的比较

    在这里插入图片描述

    拓展:入方向为什么不能做整形?

    实际上入方向也有缓存的,但为什么不能整形,整形他是为了平稳对下行链路的一个峰值的控制;如果在入方向做整形的话,首先不能实现上游流量以平稳的方式向我发送数据,因为不能在入方向接口决定,以什么样峰值过来,我是不能控制,首先起不到对线路上的流量做整形的效果。

    队列的配置方式:

    1、基于接口的队列配置,PQ,WRR,DRR,PQ+WRR,PQ+DRR,PQ+WFQ
    2、基于MQC的队列配置,CBQ
    MQC模块化的QOS命令行接口

    traffic classifier
    traffic behavior
    traffic policy

    然后在接口上应用流策略。

    8.6 LFI(链路效率机制)

    8.7 压缩

    九、令牌桶技术

    cir 比特 cbs 字节

    9.1 关于令牌桶处理报文的方式,RFC中定义了两种标记算法:

    (1)单速率三色标记(single rate three color marker,srTCM,或称为单速双桶算法)算法,主要关注报文尺寸的突发。
    (2)双速率三色标记(two rate three color marker,trTCM,或称为双速双桶算法)算法,主要关注报文速率的突发。

    两种算法的评估结果都是为报文打上红、黄、绿三种颜色的标记,所以称为“三色标记”,QoS会根据报文的颜色做相应的处理,两种算法都可以工作于色盲模式和色敏模式下。

    9.2 单速双桶

    CIR:承诺信息速率,表示向C桶中投放令牌的速率,即C桶允许传输或转发报文的平均速率;
    CBS:承诺突发尺寸,表示C桶的容量,即C桶瞬间能够通过的承诺突发流量;
    EBS (Excess Burst Size):超额突发尺寸,表示E桶的容量,即E桶瞬间能够通过的超出突发流量。

    系统按照CIR速率向桶中投放令牌:

    若Tc<CBS,Tc增加;
    若Tc=CBS,Te<EBS,Te增加;
    若Tc=CBS, Te=EBS,则都不增加。

    对于到达的报文,用B表示报文的大小:

    若B≤Tc,报文被标记为绿色,且Tc减少B;
    若Tc<B≤Te,报文被标记为黄色,且Te减少B;
    若Tc<B并且Te<B,报文被标记为红色,且Tc和Te都不减少。

    9.3 双速双桶

    双速双桶采用RFC2698定义的双速三色标记器trTCM (A Two Rate Three Color Marker)算法对流量进行测评,根据评估结果为报文打颜色标记,即绿色、黄色和红色,为方便描述将两个令牌桶称为P桶和C桶,用Tp和Tc表示桶中的令牌数量。双速双桶有4个参数:
    PIR (Peak information rate):峰值信息速率,表示向P桶中投放令牌的速率,即P桶允许传输或转发报文的峰值速率,PIR大于CIR;
    CIR:承诺信息速率,表示向C桶中投放令牌的速率,用C桶允许传输或转发的平均速率;
    PBS (Peak Burst Size):峰值突发尺寸,表示P桶的容量,即P桶瞬间能够通过的峰值突发流量;
    CBS:承诺突发尺寸,表示C桶的容量,即C桶瞬间能够通过的承诺突发流量。

    系统按照PIR速率向P桶中投放令牌,按照CIR速率向C桶中投放令牌:

    当Tp<PBS时,P桶中令牌数增加,否则不增加。
    当Tc<CBS时,C桶中令牌数增加,否则不增加。

    对于到达的报文,用B表示报文的大小:

    若Tp<B,报文被标记为红色;
    若Tc<B<Tp,报文被标记为黄色,且Tp减少B;
    若B≤Tc,报文被标记为绿色,且Tp和Tc都减少B。

    9.4 单速单桶

    单速单桶,只存—个C桶 令牌桶
    CIR
    CBS
    Tc标识C桶现存有的令牌数,B表示报文的大小

    若B>Tc标记红色,丢弃
    若B≤Tc标记绿色,转发,Tc减少B

    9.5 小结

    Meter:通过令牌桶机制对网络流量进行度量,向Marker输出度量结果。
    Marker:根据Meter的度量结果对报文进行染色,报文会被染成green、yellow、red三种颜色。
    Action:根据Marker对报文的染色结果,对报文进行一些动作,动作包括:

    pass:对测量结果为 “符合” 的报文继续转发。
    remark + pass:修改报文内部优先级后再转发。
    discard:对测量结果为 “不符合” 的报文进行丢弃。

    默认情况下,green报文、yellow报文进行转发,red报文丢弃。

    德不正,则事不兴。


    在这里插入图片描述

    好了这期就到这里了,如果你喜欢这篇文章的话,请点赞评论分享收藏,如果你还能点击关注,那真的是对我最大的鼓励。谢谢大家,下期见!

    展开全文
  • 对信息技术服务质量的全面说明和评价是保证服务质量的关键。本标准正是为支持服务质量评价要求而制订的。本标准定义了六种服务质量特性,并描述了一个信息技术服务评价模型。
  • Kubernetes1.3:QoS服务质量管理

    万次阅读 2016-08-02 08:59:29
    Kubernetes1.3:QoS服务质量管理 在kubernetes中,每个POD都有个QoS标记,通过这个Qos标记来对POD进行服务质量管理。QoS的英文全称为"Quality of Service",中文名为"服务质量",它取决于用户对服务质量的预期,也...

    Kubernetes1.3:QoS服务质量管理

    在kubernetes中,每个POD都有个QoS标记,通过这个Qos标记来对POD进行服务质量管理。QoS的英文全称为"Quality of Service",中文名为"服务质量",它取决于用户对服务质量的预期,也就是期望的服务质量。对于POD来说,服务质量体现在两个指标上,一个指标是CPU,另一个指标是内存。在实际运行过程中,当NODE节点上内存资源紧张的时候,kubernetes根据POD具有的不同QoS标记,采取不同的处理策略。

    在Kubernetes中,POD的QoS服务质量一共有三个级别,如下图所示:


    这三个QoS级别介绍,可以看下面表格:

    QoS级别

    QoS介绍

    BestEffort

    POD中的所有容器都没有指定CPU和内存的requests和limits,那么这个POD的QoS就是BestEffort级别

    Burstable

    POD中只要有一个容器,这个容器requests和limits的设置同其他容器设置的不一致,那么这个POD的QoS就是Burstable级别

    Guaranteed

    POD中所有容器都必须统一设置了limits,并且设置参数都一致,如果有一个容器要设置requests,那么所有容器都要设置,并设置参数同limits一致,那么这个POD的QoS就是Guaranteed级别

    为了更清楚的了解这三个QoS级别,下面我们举例说明。

    QoS级别

    QoS配置例子

    BestEffort

    containers:

        name: foo

            resources:

        name: bar

            resources:

    Burstable

    containers:

        name: foo

            resources:

                limits:

                    cpu: 10m

                    memory: 1Gi

                requests:

                    cpu: 10m

                    memory: 1Gi

     

        name: bar

    containers:

        name: foo

            resources:

                limits:

                    memory: 1Gi

     

        name: bar

            resources:

                limits:

                    cpu: 100m

    containers:

        name: foo

            resources:

                requests:

                    cpu: 10m

                    memory: 1Gi

     

        name: bar

    Guaranteed

    containers:

        name: foo

            resources:

                limits:

                    cpu: 10m

                    memory: 1Gi

        name: bar

            resources:

                limits:

                    cpu: 100m

                    memory: 100Mi

    containers:

        name: foo

            resources:

                limits:

                    cpu: 10m

                    memory: 1Gi

                requests:

                    cpu: 10m

                    memory: 1Gi

     

        name: bar

            resources:

                limits:

                    cpu: 100m

                    memory: 100Mi

                requests:

                    cpu: 10m

                    memory: 1Gi

     

    QoS级别决定了kubernetes处理这些POD的方式,我们以内存资源为例:

    1、当NODE节点上内存资源不够的时候,QoS级别是BestEffort的POD会最先被kill掉;当NODE节点上内存资源充足的时候,QoS级别是BestEffort的POD可以使用NODE节点上剩余的所有内存资源。

    2、当NODE节点上内存资源不够的时候,如果QoS级别是BestEffort的POD已经都被kill掉了,那么会查找QoS级别是Burstable的POD,并且这些POD使用的内存已经超出了requests设置的内存值,这些被找到的POD会被kill掉;当NODE节点上内存资源充足的时候,QoS级别是Burstable的POD会按照requests和limits的设置来使用。

    3、当NODE节点上内存资源不够的时候,如果QoS级别是BestEffort和Burstable的POD都已经被kill掉了,那么会查找QoS级别是Guaranteed的POD,并且这些POD使用的内存已经超出了limits设置的内存值,这些被找到的POD会被kill掉;当NODE节点上内存资源充足的时候,QoS级别是Burstable的POD会按照requests和limits的设置来使用。

    从容器的角度出发,为了限制容器使用的CPU和内存,是通过cgroup来实现的,目前kubernetes的QoS只能管理CPU和内存,所以kubernetes现在也是通过对cgroup的配置来实现QoS管理的。

    我们简单来介绍下cgroup:

    1、来源:

    cgroups(Control Groups)最初叫ProcessContainer,由Google工程师(Paul Menage和Rohit Seth)于2006年提出,后来因为Container有多重含义容易引起误解,就在2007年更名为Control Groups,并被整合进Linux内核。顾名思义就是把进程放到一个组里面统一加以控制。

    2、官方定义:

    cgroups是Linux内核提供的一种机制,这种机制可以根据特定的行为,把一系列系统任务及其子任务整合(或分隔)到按资源划分等级的不同组内,从而为系统资源管理提供一个统一的框架。

    3、作用:

    资源限制(Resource Limitation):cgroups可以对进程组使用的资源总额进行限制。如设定应用运行时使用内存的上限,一旦超过这个配额就发出OOM(Out of Memory)。

    优先级分配(Prioritization):通过分配的CPU时间片数量及硬盘IO带宽大小,实际上就相当于控制了进程运行的优先级。

    资源统计(Accounting): cgroups可以统计系统的资源使用量,如CPU使用时长、内存用量等等,这个功能非常适用于计费。

    进程控制(Control):cgroups可以对进程组执行挂起、恢复等操作。

    4、特点:

    cgroups的API以一个伪文件系统的方式实现,即用户可以通过文件操作实现cgroups的组织管理。

    cgroups的组织管理操作单元可以细粒度到线程级别,用户态代码也可以针对系统分配的资源创建和销毁cgroups,从而实现资源再分配和管理。

    所有资源管理的功能都以“ subsystem(子系统)”的方式实现,接口统一。

    子进程创建之初与其父进程处于同一个cgroups的控制组。

    5、本质:

    本质上来说,cgroups是内核附加在程序上的一系列钩子(hooks),通过程序运行时对资源的调度触发相应的钩子以达到资源追踪和限制的目的。

    6、cgroups术语

    task(任务):cgroups的术语中,task就表示系统的一个进程。

    cgroup(控制组):cgroups 中的资源控制都以cgroup为单位实现。cgroup表示按某种资源控制标准划分而成的任务组,包含一个或多个子系统。一个任务可以加入某个cgroup,也可以从某个cgroup迁移到另外一个cgroup。

    subsystem(子系统):cgroups中的subsystem就是一个资源调度控制器(ResourceController)。比如CPU子系统可以控制CPU时间分配,内存子系统可以限制cgroup内存使用量。

    hierarchy(层级树):hierarchy由一系列cgroup以一个树状结构排列而成,每个hierarchy通过绑定对应的subsystem进行资源调度。hierarchy中的cgroup节点可以包含零或多个子节点,子节点继承父节点的属性。整个系统可以有多个hierarchy。

    在kubernetes中,我们可以看看POD配置中的requests和limits参数是如何同cgroup建立关联关系,进而实现对POD的资源QoS管理的。

    QoS级别

    QoS配置例子

    cgroup对应

    Guaranteed

    kind: Pod

    metadata:

        name: Pod1

    spec:

        containers:

            name: foo

                resources:

                    limits:

                        cpu: 10m

                        memory: 1Gi

            name: bar

                resources:

                    limits:

                        cpu: 100m

                        memory: 2Gi

    /Pod1/cpu.quota = 110m 

    /Pod1/cpu.shares = 110m 

    /Pod2/cpu.quota = 20m 

    /Pod2/cpu.shares = 20m 

    /Pod1/memory.limit_in_bytes = 3Gi 

    /Pod2/memory.limit_in_bytes = 2Gi

    kind: Pod

    metadata:

        name: Pod2

    spec:

        containers:

            name: foo

                resources:

                    limits:

                        cpu: 20m

                        memory: 2Gi

    Burstable

    kind: Pod

    metadata:

        name: Pod3

    spec:

        containers:

            name: foo

                resources:

                    limits:

                        cpu: 50m

                        memory: 2Gi

                    requests:

                        cpu: 20m

                        memory: 1Gi

            name: bar

                resources:

                    limits:

                        cpu: 100m

                        memory: 1Gi

    /Bu/cpu.shares = 30m 

    /Bu/Pod3/cpu.quota = 150m 

    /Bu/Pod3/cpu.shares = 20m 

    /Bu/Pod4/cpu.quota = 20m 

    /Bu/Pod4/cpu.shares = 10m 

    /Bu/memory.limit_in_bytes = Allocatable - 5Gi 

    /Bu/Pod3/memory.limit_in_bytes = 3Gi 

    /Bu/Pod4/memory.limit_in_bytes = 2Gi 

     

    kind: Pod

    metadata:

        name: Pod4

    spec:

        containers:

            name: foo

                resources:

                    limits:

                        cpu: 20m

                        memory: 2Gi

                    requests:

                        cpu: 10m

                        memory: 1Gi 

    BestEffort

    kind: Pod

    metadata:

        name: Pod5

    spec:

        containers:

            name: foo

                resources:

            name: bar

                resources:

    /BE/cpu.shares = 2 

    /BE/cpu.quota= not set 

    /BE/memory.limit_in_bytes = Allocatable - 7Gi 

    /BE/Pod5/memory.limit_in_bytes = no limit 

     

    我们知道了cgroups里面有hierarchy(层级树)的概念,那么我们来看在kubernetes里面是如何把POD放在hierarchy(层级树)上面的:


    对于kubernetes来说,通过cgroup就可以给POD设置QoS级别,当资源不够使用时,先kill优先级低的POD,在实际使用时,是通过OOM(Out of Memory)分数值来实现的,OOM分数值从0到1000。OOM分数值是根据OOM_ADJ参数计算出来的,对于Guaranteed级别的POD,OOM_ADJ参数设置成了-998,对于BestEffort级别的POD,OOM_ADJ参数设置成了1000,对于Burstable级别的POD,OOM_ADJ参数取值从2到999,对于kube保留的资源,比如kubelet,OOM_ADJ参数设置成了-999。OOM_ADJ参数设置的越大,通过OOM_ADJ参数计算出来的OOM分数越高,OOM分数越高,这个POD的优先级就越低,在出现资源竞争的时候,就越早被kill掉,对于OOM_ADJ参数是-999的代表kubernetes永远不会因为OOM而被kill掉。如下图所示:

     

    展开全文
  • Mqtt之服务质量等级Qos

    2019-11-14 21:49:11
    Mqtt之服务质量等级Qos Mqtt之服务质量等级Qos - 04stone37 - CSDN博客 https://blog.csdn.net/yangguosb/article/details/78653228

    Mqtt之服务质量等级Qos

    Mqtt之服务质量等级Qos - 04stone37 - CSDN博客
    https://blog.csdn.net/yangguosb/article/details/78653228

    展开全文
  • 每天都要扛着KPI的考核,而考核重点就是客户服务质量。只有满足了客户需求,才会减少客户投诉。客户满意度的增加,就必须学会提高服务质量。 那么如何来提高服务质量呢?就必须要求我们每个在线客服学会掌握客户...

    原文地址

    作为一名在线客服,真的不是简简单单坐在电脑前打字那么简单。每天都要扛着KPI的考核,而考核重点就是客户服务质量。只有满足了客户需求,才会减少客户投诉。客户满意度的增加,就必须学会提高服务质量。

    在这里插入图片描述
    那么如何来提高服务质量呢?就必须要求我们每个在线客服学会掌握客户需求心理。

    首先要学会和客户换位思考,站在客户的角度想问题。那么就要求我们看到客户提出问题的时候,能够做到快速反应。时间要求越短越好,毕竟如果我们是客户,看到发信息很久不回复都开始怀疑对面是不是没人,这家公司是不是骗子公司,怎么连个售后客服都没有,就会变得异常急躁,毕竟没人能够帮助自己解决问题。

    为了缓解客户情绪,光是快速回复也是没用的。要求我们要有耐心集中精力去思考客户的重点问题是哪里?该如何去解决问题?更具客户的需求,做出针对性的解决。不要答非所问,踢皮球回答问题,千万不能把问题抛给客户,让客户找相关人员解决。要明白你是他的联系人,那么问题给你了,你就要负责解决,至于是找哪个人去解决,是应该去联系的事情而不是客户。

    在和客户交流的过程中,一定要保持客户至上的态度,尊重客户。交流的过程中,要求我们必须文明用语,不能有言语冲撞。要明白客户抱怨也好,还是怎样发脾气,他的重点目的是解决问题。如果不能保持尊重客户的态度,那么你的服务质量也会因此大打折扣。要学会给客户提供舒适感,说话温柔文明用语,给客户在心理上可以舒缓不安的心情,客户也会慢慢转变自己急躁的态度,这样更利于问题的解决。

    在这里插入图片描述
    我们知道其实在售后服务中,客户已经不满了。就要学会在职责范围内给予客户一定的补偿。补偿心理对于客户来说是比较重要的安慰。除了一定的补偿,还要制定一定的个性化额外服务,比如说给客户一定补偿之外,还对客户说,如果您今后有其他需求,您可以报我的工号,我这边会直接给您对接,这边给您享受专有VIP客服服务,一对一专门为您解决问题。这样的话,客户会感受到字节和别人不一样的独家,会感受自己受到重视,满意度就会变高,你的客服质量也就OK了。

    其实这些客户需求心理,归根结底还是源于客户。只要你学会站在客户角度想问题,把他们当作朋友去解决问题,那么我们在线客服的服务质量也就提高了。因为给朋友的永远是最佳服务。

    展开全文
  • MQTT协议_服务质量

    千次阅读 2017-12-05 12:31:32
    服务质量 MQTT按照这里定义的服务质量 (QoS) 等级分发应用消息。分发协议是对称的,客户端和服务端既可以是发送者也可以是接收者。分发协议关注的是从单个发送者到单个接收者的应用消息。服务端分发应用消息给多个...
  • QoS 服务质量介绍说明

    2018-10-21 19:52:21
    QoS 服务质量介绍说明 前言 QoS(Quality of Service,服务质量)指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力, 是网络的一种安全机制, 是用来解决网络延迟和阻塞等问题的一种技术。 在...
  • 0)个学生被邀请来给餐厅的饮食和服务质量打分, 分数划分为1~10这10个等级(1表示最低分,10表示最高分), 编程统计并按如下格式输出餐饮服务质量调查结果. #include <stdio.h> #define M 10 #define N 11 ...
  • 1. 售后服务体系图售后服务体系为了应对不断变化的IT技术服务市场,开拓更为广泛...2. 服务质量体系2.1.主动回访定期或不定期的回访上线系统各个主管部门以及使用人员、系统管理人员,结合实际现状对他们的个人情...
  • QoS - 服务质量

    千次阅读 2016-12-02 00:20:08
    中文: 服务质量 介绍: 指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制,==是用来解决网络延迟和阻塞等问题的一种技术。== 在正常情况下,如果网络只用于特定的无...
  • **postman测试这个接口 服务质量设置2** @PostMapping("/sendMqtt2") public String sendMqtt(String topic,int qos,String payload){ mqttSender.sendToMqtt(topic,qos,payload); return "OK"; } !...
  • Qos服务质量功能及特点

    千次阅读 2019-01-01 16:31:41
    当用户提出对不同应用服务质量的要求,根据用户的要求为不同的应用分配和调度资源,为不同的数据提供不同的服务质量。 当网络发生拥塞时,对处理优先级低的数据包进行排队处理或丢弃。对优先级高的数据包优先处理...
  • 服务质量 MQTT协议中规定了消息服务质量(Quality of Service),它保证了在不同的网络环境下消息传递的可靠性,QoS 的设计是 MQTT 协议里的重点。作为专为物联网场景设计的协议,MQTT 的运行场景不仅仅是 PC,而是...
  • HTTP服务是最流行的互联网应用之一,服务质量的好坏关系到用户体验以及网站的运营服务水平,最常用的有两个标准,一为服务的可用性,比如是否处于正常提供服务状态,而不是出现404页面或500页面错误等;二是服务响应...
  • 检测web服务质量

    2014-12-23 11:16:08
    调用pycurl提供的方法,探测web服务质量,如响应http码,请求延时,http头信息,下载速度等 pycurl安装: easy_install pycurl pip install pycurl 源码安装: 源码安装curl wget ...
  • VOLTE-QOS服务质量

    千次阅读 2016-10-27 15:49:20
    Service 服务质量,在LTE中,无论是什么业务都会有一个默认承载以及相应的QOS质量保障,而这个QOS通过QCI进行指示。QOS关键参数包括Resource Type (是GBR 还 Non-GBR),Priority(优先级),Packet Delay Budget...
  • HTTP服务是最流行的互联网应用之一,服务质量的好坏关系到用户体验以及网站的运营服务水平,最常用的有两个标准,一为服务的可用性,比如是否处于正常提供服务状态,而不是出现404页面未找到或500页面错误等;...
  • 1. 为什么要有QOS?...4. 改善网络通信质量方案:带宽一致的情况下如何提升服务质量,这里就来介绍三种解决方案服务模型。那么这三种服务模型有什么优点缺点呢?我们就来看一下这三种服务模型的对比:5.报...
  • python探测web服务质量

    2017-03-31 16:00:37
    本文通过pycurl模块提供的方法探测web服务质量的情况, pycurl.Curl()类创建一个Curl句柄对象,关于Curl对象的一下方法使用通过一个例子说明:import os import sys import pycurl# print pycurl.versionURL = ...
  • Quality of service(QoS 服务质量) MQTT协议提供三种服务质量:最多一次、最少一次、只有一次 QoS 0,最多一次:消息最多被传递一次,甚至根本没有被传递。它在网络上的传输不被确认,消息不被存储。如果客户端...
  • QoS即服务质量,其目的是针对各种业务的不同需求,为其提供端到端的服务质量保证。QoS不会增加网络带宽,它是有效利用现有网络资源的工具,它允许不同的流量不平等的竞争网络资源,语音、视频和重要的数据应用在网络...
  • 关于服务质量设置(QoS)

    千次阅读 2018-07-30 19:04:43
    ROS 2提供丰富的服务质量(QoS)策略,允许您调整节点之间的通信。通过正确的服务质量策略集,ROS 2可以像TCP一样可靠优先,也可以像UDP一样效率优先,中间有许多可能的状态。与主要仅支持TCP的ROS 1不同,ROS 2受益...
  • 一 点睛 pycurl(http://pycurl.sourceforge.net)是一个用C语言写的libcurl Python实现,功能非常强大...本节通过调用pycurl提供的方法,实现探测Web服务质量的情况, 比如响应的HTTP状态码、请求延时、HTTP头信...
  • MQTT服务质量等级及抓包分析

    千次阅读 2018-09-16 17:49:12
    什么是服务质量服务质量(QualityofService,QoS)等级是消息发送方与消息接收方之间的协议,对应着消息传递的不同的可靠程度。 MQTT中有三种QoS等级: 至多一次(0) 至少一次(1) 只有一次(2) MQTT中消息的...
  • Cisco ❀ QOS-服务质量

    千次阅读 2018-08-19 23:07:51
    QOS–quality of server:服务质量 一、使用原因: (1)带宽(有效带宽–实际带宽的75%)—提高有效带宽,做优先处理,压缩 (2)延时(传播路线延时、处理进程延时、软件延时—队列延时—在缓存区排队、硬件...
  • 由于大量的语音电话,人工成本日趋上涨,智能质检是呼叫系统较为重要的一部分,提供质量检验自动化的功能,实现质量检验战略和规则的设置,自动筛选录音数据,发现服务质量问题,向质量检验人员提供审核确认,使质量...
  • 珠海机场服务质量与口碑问卷调查 样本分布 频数分析结果 名称 选项 频数 百分比(%) 累积百分比(%) 性别 男 226 71.52 71.52 女 90 28.48 100.00 年龄 25岁以下 43 13.61 13.61 25岁-35岁 120 37.97 51.58 36岁-45岁 ...
  • QoS(网络服务质量),服务质量,是网络的一种安全机制,用来解决网络延迟和阻塞等问题的技术。 但是并不是所有的应用都需要质量服务,比如说Web应用或者E-Mail等就不不需要,但是对于关键应用和多媒体应用(voip ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 27,701
精华内容 11,080
关键字:

服务质量