29 openEuler管理网络-配置网络绑定
文章目录
- 29 openEuler管理网络-配置网络绑定
- 29.1 使用nmcli
- 29.2 使用命令行
- 29.2.1 检查是否已安装Bonding内核模块
- 29.2.2 创建频道绑定接口
- 29.2.3 创建从属接口
- 29.2.4 激活频道绑定
- 29.2.5 创建多个绑定
29 openEuler管理网络-配置网络绑定
29.1 使用nmcli
-
创建名为bond0的绑定,使用示例如下:
[root@superman-21 ~]# nmcli con add type bond con-name bond0 ifname bond0 mode active-backup 连接 "bond0" (180f0202-eb66-4530-a0d0-17a4860abfe6) 已成功添加。 [root@superman-21 ~]# -
添加从属接口,使用示例如下:
[root@superman-21 ~]# nmcli con add type bond-slave ifname ens33 master bond0 连接 "bond-slave-ens33" (530e5a4d-9bf5-4151-97a7-5fc34790f610) 已成功添加。 [root@superman-21 ~]#要添加其他从属接口,重复上一个命令,并在命令中使用新的接口,使用示例如下:
[root@superman-21 ~]# nmcli con add type bond-slave ifname ens36 master bond0 连接 "bond-slave-ens36" (006f3c08-ffd7-45ab-8f8b-2b79dbb640da) 已成功添加。 [root@superman-21 ~]# -
要启动绑定,则必须首先启动从属接口,使用示例如下:
[root@superman-21 ~]# nmcli con up bond-slave-ens33 Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7) [root@superman-21 ~]#[root@superman-21 ~]# nmcli con up bond-slave-ens36 Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/8) [root@superman-21 ~]#现在可以启动绑定,使用示例如下:
[root@superman-21 ~]# nmcli con up bond0 Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/9) [root@superman-21 ~]# -
bond0状态示例如下:
[root@superman-21 ~]# cat /proc/net/bonding/bond0 Ethernet Channel Bonding Driver: v5.10.0-60.18.0.50.oe2203.x86_64Bonding Mode: fault-tolerance (active-backup) Primary Slave: None Currently Active Slave: ens36 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Peer Notification Delay (ms): 0Slave Interface: ens36 MII Status: up Speed: 1000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 00:0c:29:96:c9:e1 Slave queue ID: 0Slave Interface: ens33 MII Status: up Speed: 1000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 00:0c:29:96:c9:d7 Slave queue ID: 0 [root@superman-21 ~]#
29.2 使用命令行
29.2.1 检查是否已安装Bonding内核模块
在系统中默认已加载相应模块。要载入绑定模块,可在root权限下使用如下命令:
[root@compute ~]# modprobe --first-time bonding
[root@compute ~]#
显示该模块的信息,可在root权限下使用如下命令:
[root@superman-21 ~]# modinfo bonding
filename: /lib/modules/5.10.0-60.18.0.50.oe2203.x86_64/kernel/drivers/net/bonding/bonding.ko
author: Thomas Davis, tadavis@lbl.gov and many others
description: Ethernet Channel Bonding Driver
license: GPL
alias: rtnl-link-bond
srcversion: 567375FF5BBB59184962A66
depends:
retpoline: Y
intree: Y
name: bonding
vermagic: 5.10.0-60.18.0.50.oe2203.x86_64 SMP mod_unload modversions
sig_id: PKCS#7
signer: openEuler kernel signing key
sig_key: 62:1D:B6:4C:CD:82:A9:3E:3B:55:8A:80:AE:2F:A5:A0:40:94:0E:F5
sig_hashalgo: sha256
signature: 18:23:5D:42:90:11:E1:9D:E1:69:5E:C4:BB:71:33:2D:74:FF:FD:42:46:8C:26:6C:02:A5:06:92:58:F4:B1:02:AB:45:01:80:2F:3B:E7:77:A1:AD:DF:C5:5D:12:0A:8F:D5:03:10:DE:45:FB:E8:8A:1F:87:86:13:16:5F:1D:51:A5:E3:85:B7:9F:6C:94:A1:35:00:13:CB:D5:3A:FF:AA:89:E2:03:92:1D:45:00:27:2C:B3:5A:BC:E2:F2:12:12:4E:64:8C:6A:A8:D9:C2:93:28:CB:F7:E4:05:4C:43:31:5E:9D:53:C6:D7:B0:78:E1:F2:75:86:C6:18:40:21:1A:E3:0F:14:D3:EF:5B:E6:08:49:C0:32:40:FF:B4:30:EE:D1:7B:8A:86:F4:C4:EF:65:A9:6B:45:48:75:2A:E5:E9:1E:E9:AB:88:96:ED:0B:87:0E:F4:78:5A:BD:A9:90:4D:24:C5:DA:12:C0:34:0F:13:43:BD:1F:46:DF:38:AC:0E:5A:CB:40:AD:48:55:4F:40:27:F3:8C:D5:6D:3D:66:27:5F:2D:3D:0F:DB:4B:34:08:0E:8E:DF:7D:1E:46:C7:35:AB:12:9A:33:BC:61:35:64:29:EB:22:12:F9:BD:D8:FA:F0:E8:33:6D:98:E5:52:4A:64:82:57:02:90:5F:B7:3D:87:67:A7:E5:9D:8C:F2:36:04:AB:80:CC:D6:72:AE:F9:69:F3:79:D5:50:7C:90:76:BC:DA:B3:51:21:B6:30:9D:46:B7:C0:D9:6C:B8:BF:CF:39:3F:8A:36:0B:7F:E5:4C:F2:87:FC:8F:0D:D9:11:2B:B7:1C:EE:44:03:67:C1:81:81:A5:5A:7C:10:09:C7:37:F2:2D:11:EE:0D:63:4D:AC:55:25:F3:39:3E:B5:37:51:AF:9B:EA:FB:0B:66:2D:25:5C:8F:1F:6F:F6:18:E5:D5:C1:44:E7:EE:2E:23:CA:D4:F5:B2:FC:A6:94:2D:8F:BA:0F:F6:AD:0A:BA:44:AB:DC:28:A1:58:B9:0B:81:CE:59:C5:78:36:8F:DB:2D:07:2A:82:24:DA:F1:E1:E7:4C:E1:FD:D8:8D:5F:BE:A9:64:1B:B0:38:86:59:09:AD:D6:EC:FF:74:FF:A1:B6:B9:18:84:BA:F8:CD:E5:E5:BD:F1:A6:5D:E6:80:2C:64:56:21:52:A0:5A:CC:48:D2:8B:10:08:ED:E2:FF:1F:FA:9E:26:60:63:B0:92:19:02:5B:51:A7:38:0D:35:BC:02:60:E6:8F:CD:B9:D6:BF:5F:B4:BA:96:34:DC:24:DA:BC:B8:A4:C8:4A:81:58:4C:42:89:E7:4C:64:F4:87:D4:A0:C2:0E:59
parm: max_bonds:Max number of bonded devices (int)
parm: tx_queues:Max number of transmit queues (default = 16) (int)
parm: num_grat_arp:Number of peer notifications to send on failover event (alias of num_unsol_na) (int)
parm: num_unsol_na:Number of peer notifications to send on failover event (alias of num_grat_arp) (int)
parm: miimon:Link check interval in milliseconds (int)
parm: updelay:Delay before considering link up, in milliseconds (int)
parm: downdelay:Delay before considering link down, in milliseconds (int)
parm: use_carrier:Use netif_carrier_ok (vs MII ioctls) in miimon; 0 for off, 1 for on (default) (int)
parm: mode:Mode of operation; 0 for balance-rr, 1 for active-backup, 2 for balance-xor, 3 for broadcast, 4 for 802.3ad, 5 for balance-tlb, 6 for balance-alb (charp)
parm: primary:Primary network device to use (charp)
parm: primary_reselect:Reselect primary slave once it comes up; 0 for always (default), 1 for only if speed of primary is better, 2 for only on active slave failure (charp)
parm: lacp_rate:LACPDU tx rate to request from 802.3ad partner; 0 for slow, 1 for fast (charp)
parm: ad_select:802.3ad aggregation selection logic; 0 for stable (default), 1 for bandwidth, 2 for count (charp)
parm: min_links:Minimum number of available links before turning on carrier (int)
parm: xmit_hash_policy:balance-alb, balance-tlb, balance-xor, 802.3ad hashing method; 0 for layer 2 (default), 1 for layer 3+4, 2 for layer 2+3, 3 for encap layer 2+3, 4 for encap layer 3+4 (charp)
parm: arp_interval:arp interval in milliseconds (int)
parm: arp_ip_target:arp targets in n.n.n.n form (array of charp)
parm: arp_validate:validate src/dst of ARP probes; 0 for none (default), 1 for active, 2 for backup, 3 for all (charp)
parm: arp_all_targets:fail on any/all arp targets timeout; 0 for any (default), 1 for all (charp)
parm: fail_over_mac:For active-backup, do not set all slaves to the same MAC; 0 for none (default), 1 for active, 2 for follow (charp)
parm: all_slaves_active:Keep all frames received on an interface by setting active flag for all slaves; 0 for never (default), 1 for always. (int)
parm: resend_igmp:Number of IGMP membership reports to send on link failure (int)
parm: packets_per_slave:Packets to send per slave in balance-rr mode; 0 for a random slave, 1 packet per slave (default), >1 packets per slave. (int)
parm: lp_interval:The number of seconds between instances where the bonding driver sends learning packets to each slaves peer switch. The default is 1. (uint)
[root@superman-21 ~]#
更多命令请在root权限下使用modprobe --help查看。
29.2.2 创建频道绑定接口
要创建绑定接口,可在root权限下通过在 /etc/sysconfig/network-scripts/ 目录中创建名为 ifcfg-bondN 的文件(使用接口号码替换 N,比如 0)。
根据要绑定接口类型的配置文件来编写相应的内容,比如网络接口。接口配置文件示例如下:
[root@superman-21 ~]# cat /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
NAME=bond0
TYPE=Bond
BONDING_MASTER=yes
IPADDR=192.168.0.21
PREFIX=24
ONBOOT=yes
BOOTPROTO=none
BONDING_OPTS="=mode=active-backup"
[root@superman-21 ~]#
29.2.3 创建从属接口
创建频道绑定接口后,必须在从属接口的配置文件中添加 MASTER 和 SLAVE 指令。
例如将两个网络接口enp3s0 和 enp4s0 以频道方式绑定,其配置文件示例分别如下:
[root@superman-21 ~]# cat /etc/sysconfig/network-scripts/ifcfg-bond-slave-ens33
TYPE=Ethernet
NAME=bond-slave-ens33
UUID=530e5a4d-9bf5-4151-97a7-5fc34790f610
DEVICE=ens33
ONBOOT=yes
MASTER=bond0
SLAVE=yes
[root@superman-21 ~]#
[root@superman-21 ~]# cat /etc/sysconfig/network-scripts/ifcfg-bond-slave-ens36
TYPE=Ethernet
NAME=bond-slave-ens36
UUID=006f3c08-ffd7-45ab-8f8b-2b79dbb640da
DEVICE=ens36
ONBOOT=yes
MASTER=bond0
SLAVE=yes
[root@superman-21 ~]#
29.2.4 激活频道绑定
要激活绑定,则需要启动所有从属接口。请在root权限下,运行以下命令:
[root@superman-21 ~]# ifup ens33
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7)
[root@superman-21 ~]#
[root@superman-21 ~]# ifup ens36
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/8)
[root@superman-21 ~]#
说明:
对于已经处于“up”状态的接口,请首先使用“ifdown ens33 ”命令修改状态为down,其中 ens36 为实际网卡名称。
完成后,启动所有从属接口以便启动绑定(不将其设定为 “down”)。
要让 NetworkManager 感知到系统所做的修改,在每次修改后,请在root权限下,运行以下命令:
[root@superman-21 ~]# nmcli con load /etc/sysconfig/network-scripts/ifcfg-device
[root@superman-21 ~]#
查看绑定接口的状态,请在root权限下运行以下命令:
[root@superman-21 ~]# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP mode DEFAULT group default qlen 1000link/ether 00:0c:29:96:c9:e1 brd ff:ff:ff:ff:ff:ff permaddr 00:0c:29:96:c9:d7altname enp2s1
3: ens36: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP mode DEFAULT group default qlen 1000link/ether 00:0c:29:96:c9:e1 brd ff:ff:ff:ff:ff:ffaltname enp2s4
4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000link/ether 00:0c:29:96:c9:e1 brd ff:ff:ff:ff:ff:ff
5: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000link/ether 52:54:00:bc:bb:cd brd ff:ff:ff:ff:ff:ff
6: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN mode DEFAULT group default qlen 1000link/ether 52:54:00:bc:bb:cd brd ff:ff:ff:ff:ff:ff
[root@superman-21 ~]#
29.2.5 创建多个绑定
系统会为每个绑定创建一个频道绑定接口,包括 BONDING_OPTS 指令。使用这个配置方法可让多个绑定设备使用不同的配置。请按照以下操作创建多个频道绑定接口:
- 创建多个 ifcfg-bondN 文件,文件中包含 BONDING_OPTS 指令,让网络脚本根据需要创建绑定接口。
- 创建或编辑要绑定的现有接口配置文件,添加 SLAVE 指令。
- 使用 MASTER 指令工具在频道绑定接口中分配要绑定的接口,即从属接口。
以下是频道绑定接口配置文件示例:
DEVICE=bondN
NAME=bondN
TYPE=Bond
BONDING_MASTER=yes
IPADDR=192.168.0.21
PREFIX=24
ONBOOT=yes
BOOTPROTO=none
BONDING_OPTS="bonding parameters separated by spaces"
在这个示例中,使用绑定接口的号码替换 N。例如要创建两个接口,则需要使用正确的 IP 地址创建两个配置文件 ifcfg-bond0 和 ifcfg-bond1。

相关文章:
29 openEuler管理网络-配置网络绑定
文章目录29 openEuler管理网络-配置网络绑定29.1 使用nmcli29.2 使用命令行29.2.1 检查是否已安装Bonding内核模块29.2.2 创建频道绑定接口29.2.3 创建从属接口29.2.4 激活频道绑定29.2.5 创建多个绑定29 openEuler管理网络-配置网络绑定 29.1 使用nmcli 创建名为bond0的绑定&…...
RTT 全志D1s RDC2022纪念版开发板开箱使用分享与折腾记录
原文链接:https://bbs.aw-ol.com/topic/3021/ 作者caoxuetian 1:开发板介绍 RTT D1s RDC2022纪念版开发板是一块基于全志科技RISC-V内核 芯片 D1S的小尺寸开发板,尺寸仅为5.5cm*4cm,能够已非常小的体积带来舒适的开发感受&#…...
24日常实习万得一面面径
文章目录分析与复盘面试题分析与复盘 应该将项目进行复习好的,两个项目都应该对简历写的那些进行复习,以为日常不问项目的一面。哭死… 面试题 1.自我介绍 2.为什么从土木转到开发,学习java有哪些途径 3.介绍下项目中你觉得最有设计的模…...
MySQL的DML和DDL操作(1)
这里介绍几种DML操作INSERT INTO——插入记录插入一条记录插入一条记录 INSERT INTO table [(column [, column . ])] VALUES(value [,value . ]); 例子: insert into student values( 1,"承太郎" )default charset utf8;插入多条记录插入多条…...
Kafka系列之:Kafka生产者和消费者
Kafka系列之:Kafka生产者和消费者 一、Kafka生产者发送流程二、提高生产者吞吐量三、Kafka消费方式四、Kafka消费者总体工作流程五、按照时间消费Kafka Topic一、Kafka生产者发送流程 batch.size:只有数据积累到batch.size之后,sender才会发送数据,默认16K。linger.ms:如果…...
Linux进程间通信:信号量(一)
前提知识 在介绍信号量之前,先来看看一些概念和一些简单的前提知识: 进程间通信的前提是让不同的进程看到同一份资源。于是,就有提出让这种资源成为一种公共资源的方法,方法的提出,导致了一种新的问题的出现…...
Python笔记一之excel的读取
这里我常用的 python 对于 excel 的读取库有两个,一个是 xlsxwriter 用于操作 excel 的写入,一个是 xlrd 用于 excel 文件的读取。 使用的库的版本如下: xlsx1.2.6xlrd1.1.0 xlsxwriter 写入 excel 新建一个 excel import xlsxwriterpat…...
JavaScript Number 数字对象
文章目录JavaScript Number 数字对象JavaScript 数字所有 JavaScript 数字均为 64 位精度八进制和十六进制无穷大(Infinity)NaN - 非数字值数字可以是数字或者对象数字属性数字方法JavaScript Number 数字对象 JavaScript 只有一种数字类型。 可以使用也…...
设计模式-服务定位器模式
设计模式-服务定位器模式一、背景1.1 服务定位模式1.2 策略模式二、代码实战2.1 服务定位器2.2 配置ServiceLocatorFactoryBean2.3 定义一个支付的接口2.4 根据不同类型处理Bean2.5 controller层三、项目结构及测试结果3.1 测试结果3.2 项目结构及源码(欢迎star)四、参考资料一…...
Android Dalvik虚拟机 GC流程分析
前言 本篇继续介绍安卓dalvik虚拟机,介绍Dalvik虚拟技的GC流程。 GC结构体 dalvik/vm/alloc/Heap.h static const GcSpec kGcForMallocSpec {true, /* isPartial */false, /* isConcurrent */true, /* doPreserve */"GC_FOR_ALLOC" }; /* Not eno…...
opencv读入图片注意事项
来源:投稿 作者:蓬蓬奇 编辑:学姐 深度学习数据预处理中常用opencv读入图片,一般在__getitem__函数中调用。本文主要介绍opencv读取图片的一些细节以及注意事项。本文中使用的图片见第6节“opencv测试使用的图片”。 1.如何通过o…...
学习渗透测试,考CISP-PTE还是考NISP-PT证书呢?
其实两者都可以,但是要看考生的实际需求! 为什么说两者都可以? 两个证书都由中国信息安全测评中心颁发,CISP-PTE(注册信息安全渗透测试工程师),NISP-PT(国家信息安全水平考试渗透测试工程师),…...
记录自己遇到的关于Hashmap的面试题
一.麻烦讲述一下Hashmap的扩容原理 jdk1.8中的hashmap扩容原理 1.put流程图 首先贴一张图(图片来源于传送门),多谢大佬的美图,此图已经完美的描述了put的整个流程,我也就不想自己画了,嘿嘿: 2.hashmap中几个比较重…...
mysql数据库之sql语句性能分析工具
一、sql执行频率。 mysql客户端连接成功后,通过show [session | global] status 命令可以提供服务器状态信息。通过如下指令,可以查看当前数据库的INSERT/UPDATE/DELETE的访问频次。 #一个下划线代表一个字符 show global status like com_; 二、慢查…...
搭建SpringBoot项目
文章目录前言准备工具创建项目前言 为什么使用SpringBoot?它有什么好处? SpringBoot可以快速构建出独立的Spring应用,简化了配置文件。内嵌Tomcat服务器,无须手动部署war文件。 准备工具 idea2022navicat16postmanjdk1.8 创建项目 File-&…...
“一网统管”视频融合平台EasyCVR页面tab切换细节优化
EasyCVR视频融合平台基于云边端协同架构,能支持海量视频的轻量化接入与汇聚管理,借助大数据分析的决策判断,为网络摄像头、网络存储设备、智能终端、无人机、车载设备、移动执法仪、视频监控平台等提供一体化的视频接入、分发、存储、处理等能…...
【Python入门第二十天】Python Lambda
lambda 函数是一种小的匿名函数。 lambda 函数可接受任意数量的参数,但只能有一个表达式。 语法 lambda arguments : expression执行表达式并返回结果: 实例 一个 lambda 函数,它把作为参数传入的数字加 10,然后打印结果&…...
比特数据结构与算法(第四章_下)二叉树OJ(力扣:144,965,104,226,100,572)
144. 二叉树的前序遍历难度简单给你二叉树的根节点 root ,返回它节点值的 前序 遍历。示例 1:输入:root [1,null,2,3]输出:[1,2,3]示例 2:输入:root [ ]输出:[ ]示例 3:输入&#…...
【C++】inline 内联函数
文章目录📕 概念📕 使用前的准备📕 使用📕 特性📕 概念 在 C 中,为了解决一些频繁调用的小函数大量消耗栈空间(栈内存)的问题,特别的引入了 inline 修饰符,表…...
如何审计一个智能合约
智能合约审计用于整个 DeFi 生态系统,通过对协议代码的深入审查,可以帮助解决识别错误、低效代码以及这些问题。智能合约具有不可篡改的特点,这使得审计成为任何区块链项目安全流程的关键部分。 代码审计对任何应用程序都很重要,…...
VOOHU沃虎xJLSemi景略:智造时代通信基石-以太网接口PHY芯片
随着智能制造和工业物联网的高速发展,工业通信正朝着高速化、智能化的方向迈进。工业自动化设备需要实时、高效地传输大量数据,以实现精准控制和协同作业。 工业以太网现场总线凭借其高速率、高可靠性、兼容性强等优势成为工业通信的主流选择࿰…...
Arduino高性能WebSocket客户端库深度解析
1. Arduino-Websocket-Fast 库深度解析:面向嵌入式物联网的高性能 WebSocket 客户端实现1.1 设计动因与工程定位在嵌入式物联网(IoT)系统开发中,WebSocket 协议因其全双工、低开销、长连接特性,已成为设备与云平台间实…...
MusePublic大模型Qt图形界面开发指南
MusePublic大模型Qt图形界面开发指南 1. 为什么需要图形界面? 如果你已经能用代码调用MusePublic大模型,可能会发现一个问题:每次都要打开终端、输入命令、等待结果,这样的交互方式既不方便也不直观。特别是当你需要频繁调整参数…...
某物APP的newSign与X-Auth-Token逆向分析与实战破解
1. 逆向分析前的环境准备 搞逆向分析的第一步永远是搭建好调试环境。这次我们用的测试机是Pixel 2,系统版本Android 9,目标APP版本v4.82.0。刚开始用Charles抓包时发现什么都抓不到,这其实是APP启用了防抓包机制——具体来说就是设置了Proxy.…...
vscode-drawio扩展依赖更新:安全高效地管理第三方库
vscode-drawio扩展依赖更新:安全高效地管理第三方库 【免费下载链接】vscode-drawio This unofficial extension integrates Draw.io (also known as diagrams.net) into VS Code. 项目地址: https://gitcode.com/gh_mirrors/vs/vscode-drawio vscode-drawio…...
STC15W4K32S4寄存器操作避坑指南:为什么你的PWM输出异常?(附完整初始化流程图)
STC15W4K32S4寄存器操作避坑指南:为什么你的PWM输出异常? 最近在调试STC15W4K32S4的PWM功能时,发现不少开发者都会遇到一些共性问题:明明按照手册配置了寄存器,PWM输出就是不稳定或者干脆没有波形。这些问题往往源于几…...
Joy-Con Toolkit:让Switch玩家掌控设备的开源管理方案
Joy-Con Toolkit:让Switch玩家掌控设备的开源管理方案 【免费下载链接】jc_toolkit Joy-Con Toolkit 项目地址: https://gitcode.com/gh_mirrors/jc/jc_toolkit 为什么Switch玩家需要专属管理工具? 当你插入Switch游戏卡带时,是否担心…...
如何让Windows任务栏焕然一新?TranslucentTB给你答案
如何让Windows任务栏焕然一新?TranslucentTB给你答案 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB 您是否曾对Windows系统一…...
构建全渠道智能通知系统:从高可用架构到用户体验优化
1. 全渠道智能通知系统的核心价值 想象一下这样的场景:你在电商平台下单后,系统立即通过短信发送订单确认通知;当你忘记支付时,APP推送会及时提醒;订单发货后,邮箱里静静躺着物流信息;而站内信则…...
YOLOv5实战:如何自定义COCO指标计算APtiny(附完整代码修改指南)
YOLOv5实战:深度解析COCO评估指标自定义与APtiny计算优化 在目标检测领域,COCO数据集的评估标准已成为衡量模型性能的黄金准则。但当我们面对特定场景——尤其是小目标检测任务时,标准的3232像素"small"类别划分往往难以满足精细化…...

说明: