华为HCIE课堂笔记第十六章 Qos基本原理
第十六章 Qos基本原理
16.1 Qos背景
Qos:在带宽有限的情况下,为不同的业务需求,提供不同的网络的服务质量。
影响Qos的不同的因素:
- 带宽,链路在单位时间可以传输数据的bit数量,单位bps
- 一般上传下载速度为带宽/8,即100M带宽显示速度理论值12.5MB/s
- 延迟:报文从一端发出,从另一端接受到经过的时间
- 处理时间:设备对报文查表等处理的时间
- 队列时延:报文在出口队列中等待发送的时间
- 串行化时延:报文形成bit流,从接口发出时,第一个bit到最后bit发完总共需要的时间。
- 传输时延:报文在介质上传输的时间。
- 丢包率:数据包转发过程中出现丢弃的概率
- 抖动:网络传输数据包,接收端接收报文存在顺序不一致的情况,变化较大,则认为抖动比较明显。
- 可用性:网络是否可用。
16.2 Qos技术
16.2.1 服务模型
- 尽力而为模型:数据转发过程中没有服务质量相关的部署,所有的报文按照先后顺序进行转发,不提供质量保障。
- 综合服务模型:
- 应用转发数据包的之前需要申请带宽预留,申请的带宽预留除自己可用,其他应用不能使用
- 部署非常复杂
- 区分服务模型:Qos,通过对报文进行分类,对每一类的报文进行标记,根据标记实现对不同类的报文提供不同的服务质量,时延,丢包率,优先转发。
- DS边缘节点:区分服务域边缘节点,区分服务域有一系列Qos设备组成
- 实现方式:
- DS边缘设备的入接口进行流量分类,给不同类的流量打上不同的标记。
- DS节点的入接口信任该标记类型,后续DS域中按照该标记为流量提供服务质量。
16.2.2 Qos的常用技术
- 限速技术
- 拥塞管理技术
- 拥塞避免技术
16.3 流量分类
16.3.1 简单流分类
- 概念:
外部优先级:指报文携带的优先级值
内部优先级:报文在设备内的服务等级
- 两个优先级,可以通过修改映射表进行调整,不同的外部优先级报文,可以指定进入设备后的内部优先级
- 接口队列:传统Qos接口存在8个队列,内部优先级与队列编号一一映射,内部优先级7的报文对应队列7号,不可以修改改映射关系。
- 外部优先级:报文中携带的标记
- VLAN 字段中的PRI:取值范围是0-7,名字802.1p
- MPLS 头部中的EXP:取值范围是0-7
- IP头部中的Tos字段(8bit):两种不互斥的
- 标记方式1:IP-P,占用3bit,表示范围0-7,高3bit位
- 标记方式2:DSCP值,占用6bit,表示范围0-63,高6bit位
- DSCP值标记:数字和名字表示方式
- 定义了4个PHB(每一跳动作):CS(类选择器),EF(快速转发),AF(确保转发),BE(尽力而为)
- AF11、AF12、AF13、AF21到AF43,AF对应的DSCP值的映射关系是AFXY值=DSCP值8x+2y
- CSx值=DSCP值(8x)
- 总结:简单流分类是按照报文已有的标记对报文进行Qos处理
16.3.2 复杂流分类
在DS边缘设备的入方向上,通过数据报文的五元组,采用MQC模块配置,实现对报文的重标记,或者其他的Qos处理。后续DS域中的节点可以根据重标记后的报文标记值进行简单流分类。
为什么没有EXP-DSCP
16.4 拥塞管理
拥塞管理:网络发生拥塞的时候,对流进行管理和控制,采用队列技术。
16.4.1 队列技术
- 队列技术:通过一定的调度算法,从队列中提取数据报文给出接口进行转发
- Qos Q-profile 传统的Qos工具,对应的下行出口存在8个队列(0-7号队列)
- CBQ队列,华为设备支持的自行开发的队列,4个队列(AF、EF/LLQ、BE)
- 队列调度算法:
- FIFO:先进先出算法,在队列内,收到的报文,按照谁先到,谁先出的原则,发送
- SP:严格优先级算法,在队列间进行报文调度的时候,按照队列的优先级严格调度。如:7,6,5三个队列采用SP算法,则优先调度优先级最高的7号队列,7号队列发送完毕在调度6队列,6号发送完毕调度5号队列,如果5号队列正在调度,7号队列有报文进入,则重新调度7号队列。时时刻刻调度最高优先级的队列。
- 缺点:低优先级队列可能出现“饿死”现象,不能得到及时调度。
- WFQ:加权公平队列,在队列间的报文调度的时候,按照队列配置的加权值,进行报文调度,权值越大,队列调度的机会越大(占用的带宽就越大)。
- 缺点:低延时的报文不能保证低延迟(绝对优先级的报文得立即调度)
- 调度算法组合:SP+WFQ,6,7号队列是SP算法,0-5号是WFQ算法
- 此时6,7号队列拥有绝对优先级的调度机会,6,7号队列中不存在报文的时候,才会按照WFQ算法调度剩余的0-5号队列。
- SP算法的队列中经常给到占用带宽不大(绝对优先级,会抢占其他队列带宽),要求延时小(立即调度,减少时延)的业务使用。
- WFQ算法的队列用途:保证业务带宽,给到业务带宽比较大的业务使用。
- 此时6,7号队列拥有绝对优先级的调度机会,6,7号队列中不存在报文的时候,才会按照WFQ算法调度剩余的0-5号队列。
- 调度方式:传统Qos接口的软件队列0-8队列,可以加入到以下三种队列(组)中,进行Qos的报文调度。
- PQ队列(组),采用的SP调度算法,PQ队列中可以存在多个软件队列,按照严格优先级进行调度。
- WFQ队列(组),采用WRR、WDRR、WFQ算法(都是存在加权值,按照加权值分配带宽),WFQ队列中可以存在多个软件队列,多个软件对垒按照WFQ算法进行调度。
- LPQ队列(组),采用SP调度算法,LPQ队列也可以存在多个软件队列,按照SP算法,调度组内不同队列中的报文。
- PQ和LPQ都是采用SP算法,不同点是LPQ拥塞时不能抢占带宽。
- PQ、WFQ、LPQ队列(组)之间的调度算法采用SP算法:先调度PQ队列,再调度WFQ队列、最后调度LPQ
- PQ多用于将语音等低延迟,低带宽的流量加入到该队列(组)中
- WFQ多使用与需要带宽保障,确保转发的的业务报文加入到该队列(组)中
- LPQ队列用于BE的流量加入,当PQ和WFQ带宽分配存在空闲带宽,则交给LPQ调度BE的流量。
16.4.2 拥塞管理配置
- 基于队列技术的拥塞管理(传统的Qos)
- DS边缘设备配置复杂流分类对流量进行分类并重标记
- DS设备根据DSCP进行Qos部署(简单流分类)
- 入接口需要配置信任DSCP值,对应的DSCP值的报文才会进入到对应LP的队列中。
- 如果需要调整报文进入到对应的队列,则需要调整DSCP值与本地优先级的映射关系。
- DS设备上配置Qos-Queue-profile工具,将对应的队列加入到PQ、WFQ、LPQ中,WFQ队列需要配置权重值分摊带宽,在出接口上调用该工具。实现报文的差分服务
- 基于MQC的拥塞管理
- 队列:
- EF/LLQ队列:适用于语音等低延迟低带宽要求的流分类。LLQ比EF具有跟小的带宽,当链路拥塞的时候,EF可以抢占空闲带宽。该队列优先级最高,需要配置最大的指定带宽。类似传统Qos 的PQ队列
- AF队列:适用于大带宽保证转发的业务。AF队列中可以包含多个类,每个类中可以配置指定的最小带宽,保证业务转发的带宽。
- BE队列:不满足所有其他的分类的流量归于该默认类,可以将默认类设置为AF队列,也可以将默认的BE队列。BE队列采用WFQ调度算法。
- 配置:
- 流分类对报文进行分类,流行为指定分类后的报文的队列,流策略绑定流分类和流行为
- 参考命令:带宽设置有两种,绝对值和空闲带宽百分比
- 队列:
traffic behavior OA
queue llq bandwidth 30 //在流行为视图下,配置与该行为绑定的流量分类加入到LLQ队列(EF),设置最大带宽30kbit/s
traffic behavior FTP
queue af bandwidth pct 10 //在流行为视图下,配置与该行为绑定的流量分类加入到AF队列中,设置最小带宽保障业务带宽需求。
traffic policy Qos
classifier default-class behavior def //在流策略的视图下,设置默认的分类(系统原有匹配所有缺省类)与行为绑定(类名字def是用户自定义,且设置队列为WFQ(BE队列))
16.5 拥塞避免
16.5.1 拥塞产生的原因:
- 带宽不匹配,发送报文方的带宽,链路的带宽减小,导致出接口无法及时发送高速接受到的报文。
- 接口带宽已知,但是流量都汇聚到一个接口发出(内网出口),收到的报文的数量所需带宽要大于出接口的带宽,
16.5.2 拥塞产生后的影响
- 丢弃策略:
- 尾丢弃:如果没有配置早期随机检测,则当网络出现拥塞,队列缓存已满,则接收的报文将在进入队列前全部丢弃。
- TCP全局同步:当拥塞发生,TCP所有的连接,将同时降低滑动窗口字段的值,控制TCP的传输速度,网络不在拥塞,TCP连接进入慢启动过程,逐步提高TCP连接的报文传输速度,循环往复。该过程中,会造成TCP的所有连接传输报文的速度同步升高,同步降低,造成链路资源浪费。
- TCP连接“饿死”现象:拥塞发生TCP降低连接的速度,此时UDP报文没有传输速度控制机制,UDP则利用TCP让出来带宽,再次造成网络拥塞,TCP会再一次降低连接速度,UDP再次占用,循环往复,造成TCP连接“饿死”现象。
- 无差别丢弃:超出队列缓存的报文进行无差别丢弃,不区分报文的优先级。
- RED:当网络趋向于拥塞的时候,可以使用RED(早期随机检测)提前丢弃报文,延缓网络出现拥塞
- 队列长度到达低门限的时候,开始随机丢弃报文,到达高门限,则执行尾丢弃,从而延缓了TCP的全局同步(随机丢弃的报文中,属于不同的TCP连接,TCP连接的速度不会同时到达最大)
- WRED:根据报文的优先级,在拥塞发生之前,提前对报文进行有差别的丢弃。
- 按照报文优先级或者队列优先级,分别设置低门限,高门限,某队列长度到达低门限,则开始丢弃。高优先级报文(队列)低门限设置的更高,使得高优先级报文晚于低优先级报文丢弃的时间。避免TCP同步
- 尾丢弃:如果没有配置早期随机检测,则当网络出现拥塞,队列缓存已满,则接收的报文将在进入队列前全部丢弃。
- 拥塞避免配置方式:两种
- 基于Qos丢弃模版配置
- 参考命令见PPT
- 基于MQC配置
- 参考命令见PPT
- 基于Qos丢弃模版配置
16.6 限速
16.6.1 令牌桶技术
- 单桶单速双色标记法:C桶(单桶)
- 概念:
- CIR:承诺信息速率,向令牌桶中按照该速率放置令牌,单位Kbps
- CBS:报文的突发尺寸,允许报文的转发时的突发长度尺寸,表示令牌桶的尺寸,令牌桶中初始的令牌数量为该CBS值,即桶的容量。
- 工作机制:
- Tc值:表示令牌桶中现有的令牌数量,初始情况(没有发送报文之前)Tc值=CBS(桶内令牌是满的)
- B值:代表要转发的报文的长度尺寸
- 工作机制:
- 按照CIR匀速的速度持续向令牌桶中放置令牌,桶中令牌数量超出CBS,则溢出(Tc值不能大于CBS)。
- 要转发报文之前查看报文的长度B,判断B是否小于Tc值
- 如果B<Tc值,则将报文标记为绿色转发,且Tc值(桶内剩余的令牌数)减少B
- 如果B>Tc值,则报文标记为红色,丢弃,不转发。桶内的令牌不减少。
- 概念:
- 双桶单速三色标记法:
- 两个桶:C桶、E桶
- 三种颜色标记报文:绿黄红
- 概念:CBS和EBS关注的时数据流的大小
- CBS:与单桶单速相同,C桶的容量(令牌最大数量)承诺突发尺寸。单位Byte
- EBS:E桶的容量(令牌最大数量),峰值突发尺寸,单位Byte
- CIR:承诺信息速率,关注的流量发送的承诺速率。单位Kbps
- 工作机制
- Tc=C桶中现有的令牌数量,初始情况,Tc=CBS
- Te=E桶中的现有令牌数量,初始情况,Te=EBS
- 工作机制:
- 以CIR的速率持续向C桶中投放令牌,当C桶的令牌数量达到CBS,溢出,溢出令牌放入到E桶中,当E桶的令牌数量溢出,则丢弃。
- 收到报文,查看报文的大小,值为B:比较B与桶内令牌数量:
- 如果B<Tc,则将报文标记为绿色,并发送,C桶剩余容量Tc减少B
- 如果B>Tc,(C桶中剩余令牌不够),此时比较B与Te大小(查看E桶中是否有足够令牌):
- 如果B<Te,则报文标记为黄色,默认发送,并将E桶中令牌数Te减少B
- 如果B>Te,则报文标记为红色,丢弃报文,E桶中令牌数量Te不减少。
- 双桶双速三色标记法
- 双桶:P桶、C桶
- 双速:PIR、CIR
- 颜色:绿黄红
- 概念:
- PBS:峰值突发尺寸,P桶的容量 单位Byte
- CBS:承诺突发尺寸,C桶的容量
- PIR:峰值突发速率 单位Kbps
- CIR:承诺信息速率 CIR<PIR
- 工作机制
- Tp=P桶中的剩余的令牌数量,初始Tp=PBS
- Tc=C同种剩余的令牌数量,初始Tc=CBS,CBS<PBS
- 工作机制:
- 放置令牌:以PIR的速率向P桶中持续放置令牌,超出PBS令牌会溢出;以CIR的速率向C桶中持续放置令牌,超出CBS令牌会溢出。
- 收到报文后,检查流量报文的大小,值为B,首先比较B与P桶的剩余令牌数Tp
- 如果B>Tp,报文标记为红色,Tp值不减少
- 如果B<Tp,继续比较B与Tc的值大小:
- B>Tc,则报文被标记为黄色,Tp减少B
- B<Tc,则报文标记为绿色,Tp和Tc都减少B
- 三种方式的区别
- 单桶单速双色标记法:不关注突发速率,仅关注突发流量尺寸 C桶
- 双桶单速三色标记法:关注峰值突发尺寸,不关注突发速率 C桶 E桶
- 双桶双色三色标记法:即关注报文的突发峰值尺寸,也关注突发的峰值速率。 P桶 C桶
16.6.2 流量监管
使用令牌桶技术实现,在设备的入口和出口方向实现限速,超出速率部分的报文直接丢弃。削峰不填谷
两种实现方式:
- 基于接口进行限速
- 参考命令:Qos car cir xxx //可以使用所有的令牌桶技术
- 基于MQC对流分类进行限速
- 参考命令:
- Traffic behavior A
- Car cir xxxx //流行为视图下设置对绑定流分类中的数据流进行限速,可以使用所有令牌桶技术
- 参考命令:
16.6.3 流量整形
使用令牌桶技术和缓存技术,在设备的出方向实现限速,超出速率部分的报文先缓存,等待流量下降后从缓存中提取并转发。削峰填谷。
三种实现方式:只能使用单桶单速技术。
- 基于接口配置:对接口内出方向上所有通过的流量生效,不区分优先级
- 基于队列配置:对单个队列中的流量生效,区分优先级的。
基于MQC配置方式:正对流量的流分类生效,在流行为中配置。
相关文章:
华为HCIE课堂笔记第十六章 Qos基本原理
第十六章 Qos基本原理 16.1 Qos背景 Qos:在带宽有限的情况下,为不同的业务需求,提供不同的网络的服务质量。 影响Qos的不同的因素: 带宽,链路在单位时间可以传输数据的bit数量,单位bps 一般上传下载速…...
79、avx2 向量指令集优化卷积运算
上一节 介绍了 avx2 向量指令集中的 load/store 操作,本节介绍如何使用 avx2 的向量指令集来实现乘累加运算。 因为我们实战中用到的 resnet50 神经网络中,卷积运算在整个模型中的比例占据是相当高,而卷积运算的核心计算就是乘累加计算。因此,只要将最核心的乘累加计算效率…...
【AI】人工智能和图像编码(2)
传统图像编解码与智能图像编解码,都是要编码和解码,但还是有一些区别的。 相关相同点和要点描述如下: 一、区别 1.1 技术原理 传统图像编解码:主要依赖于固定的算法和标准,如JPEG、MPEG等,进行图像的压…...
2023 巅峰之作 | AIGC、AGI、GhatGPT、人工智能大语言模型的崛起与挑战
文章目录 01 《ChatGPT 驱动软件开发》内容简介 02 《ChatGPT原理与实战》内容简介 03 《神经网络与深度学习》04 《AIGC重塑教育》内容简介 05 《通用人工智能》目 录 2023年是人工智能大语言模型大爆发的一年,一些概念和英文缩写也在这一年里集中出现ÿ…...
com域名注册腾讯云价格
腾讯云com域名首年价格,企业新用户注册com域名首年1元,个人新用户注册com域名33元首年,非新用户注册com域名首年元85元一年,优惠价75元一年,com域名续费85元一年。腾讯云百科txybk.com分享腾讯云com域名注册优惠价格&a…...
mysql从库重新搭建的流程
背景 生产环境上的主从集群,因为一些异常原因,导致主从同步失败。现记录下通过重做mysql从库的方式来解决,重做过程不影响主库。 步骤 1、在主库上的操作步骤 备份主库所有数据,并将dump.sql文件拷贝到从库/tmp目录 mysqldump …...
用户ssh正确密码登陆树莓派镜像均报错Permission denied, please try again.处理方法
一个树莓派镜像,启动后发现没有 sshd 功能,于是 启用 openssh,重新启动,又发现树莓派拒绝 ssh 连接请求。 我的一台树莓派IP是:192.168.59.133任何服务器使用任何用户ssh均报错,甚至连自己都不能ssh自己。 …...
SpringBoot 统计API接口用时该使用过滤器还是拦截器?
统计请求的处理时间(用时)既可以使用 Servlet 过滤器(Filter),也可以使用 Spring 拦截器(Interceptor)。两者都可以在请求处理前后插入自定义逻辑,从而实现对请求响应时间的统计。 …...
Python sleep函数用法:线程睡眠
如果需要让当前正在执行的线程暂停一段时间,并进入阻塞状态,则可以通过调用 time 模块的 sleep(secs) 函数来实现。该函数可指定一个 secs 参数,用于指定线程阻塞多少秒。 当前线程调用 sleep() 函数进入阻塞状态后,在其睡眠时间…...
50-Js控制元素显示隐藏
1.使用style样式,两个按钮:显示按钮,隐藏按钮 <style>div{width: 300px;height: 300px;background-color: red;transition: .4s;}</style></head><body><button>显示</button><button>隐藏</button><div></div>…...
LC213. 打家劫舍 II
代码随想录 class Solution {public int rob(int[] nums) {if(nums null || nums.length 0){return 0;}int len nums.length;if(len 1){return nums[0];}return Math.max(robAction(nums,0,len-1),robAction(nums,1,len));}public int robAction(int [] nums, int start, …...
Django REST Framework入门之序列化器
文章目录 一、概述二、安装三、序列化与反序列化介绍四、之前常用三种序列化方式jsonDjango内置Serializers模块Django内置JsonResponse模块 五、DRF序列化器序列化器工作流程序列化(读数据)反序列化(写数据) 序列化器常用方法与属…...
AI对比:ChatGPT与文心一言的异同与未来
文章目录 📑前言一、ChatGPT和文心一言概述1.1 ChatGPT1.2 文心一言 二、ChatGPT和文心一言比较2.1 训练数据与知识储备2.2 语义理解与生成能力2.2 应用场景与商业化探索 三、未来展望3.1 模型规模与参数数量不断增加3.2 多模态交互成为主流3.3 知识图谱与大模型的结…...
elasticsearch备份恢复,elasticdump使用
准备环境 1. 将node-v10.23.1-linux-x64.tar.xz上传到服务器/usr/local目录下 2. tar xf node-v10.23.1-linux-x64.tar.xz 3. 将node_modules.tar.gz上传到服务器/usr/local目录 4. tar -zxvf node_modules.tar.gz 5. 设置NODE环境 5.1 vim /etc/profile export NODEJS_…...
【C++干货铺】C++11新特性——右值引用、移动构造、完美转发
个人主页点击直达:小白不是程序媛 C系列专栏:C干货铺 代码仓库:Gitee 目录 左值与左值引用 右值与右值引用 左值引用和右值引用的比较 左值引用总结: 右值引用总结: 左值引用的作用和意义 右值引用的使用场景和…...
5G_射频测试_基础概念(二)
定义了测试参考点,不同的RRU类型 C类型传统RRU Conducted and radiated requirement reference points 4.3.1 BS type 1-C(传统RRU一般测试点就是连接天线的射频接头) 4.3.2 BS type 1-H(宏站MassiveMIMO 矩阵天线ÿ…...
【笔记】Helm-3 主题-10 Kubernetes分发指南
Kubernetes分发指南 Helm应该适用于任何 符合标准的Kubernetes版本 (无论是否经过 认证 )。 https://github.com/cncf/k8s-conformance Certified Kubernetes Software Conformance | CNCF 该文档捕获在特定Kubernetes环境中使用Helm的有关信息。如果…...
ROS第 13 课 TF 坐标系广播与监听的编程 实现
文章目录 第 13 课 TF 坐标系广播与监听的编程 实现1.机器人的坐标变换2.创建功能包3.编程方法3.1 编写广播和监听程序3.2 运行程序 第 13 课 TF 坐标系广播与监听的编程 实现 1.机器人的坐标变换 在进行编程前,先需要了解机器人的坐标变换。这里以运行海龟案例来…...
flask 与小程序 菜品详情和分享功能
mina/pages/food/info.wxml <import src"../../wxParse/wxParse.wxml" /> <view class"container"> <!--商品轮播图--> <view class"swiper-container"><swiper class"swiper_box" autoplay"{{autop…...
C语言通过MSXML6.0读写XML文件(同时支持char[]和wchar_t[]字符数组)
开发环境:Visual Studio 2010 运行环境:Windows XP SP3 第一节 读取XML文件(使用wchar_t[]字符数组) 读取XML文件可使用IXMLDOMDocument_load函数。 /* 这个程序只能在C编译器下编译成功, 请确保源文件的扩展名为c */ #define …...
通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...
【JVM】- 内存结构
引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...
令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍
文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结: 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析: 实际业务去理解体会统一注…...
C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...
技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...
回溯算法学习
一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...
Java 与 MySQL 性能优化:MySQL 慢 SQL 诊断与分析方法详解
文章目录 一、开启慢查询日志,定位耗时SQL1.1 查看慢查询日志是否开启1.2 临时开启慢查询日志1.3 永久开启慢查询日志1.4 分析慢查询日志 二、使用EXPLAIN分析SQL执行计划2.1 EXPLAIN的基本使用2.2 EXPLAIN分析案例2.3 根据EXPLAIN结果优化SQL 三、使用SHOW PROFILE…...
基于单片机的宠物屋智能系统设计与实现(论文+源码)
本设计基于单片机的宠物屋智能系统核心是实现对宠物生活环境及状态的智能管理。系统以单片机为中枢,连接红外测温传感器,可实时精准捕捉宠物体温变化,以便及时发现健康异常;水位检测传感器时刻监测饮用水余量,防止宠物…...
解析“道作为序位生成器”的核心原理
解析“道作为序位生成器”的核心原理 以下完整展开道函数的零点调控机制,重点解析"道作为序位生成器"的核心原理与实现框架: 一、道函数的零点调控机制 1. 道作为序位生成器 道在认知坐标系$(x_{\text{物}}, y_{\text{意}}, z_{\text{文}}…...
Yii2项目自动向GitLab上报Bug
Yii2 项目自动上报Bug 原理 yii2在程序报错时, 会执行指定action, 通过重写ErrorAction, 实现Bug自动提交至GitLab的issue 步骤 配置SiteController中的actions方法 public function actions(){return [error > [class > app\helpers\web\ErrorAction,],];}重写Error…...
