【教程】检查RDMA网卡状态和测试带宽 | 附测试脚本
转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn]
如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~
目录
检查硬件和驱动状态
测试RDMA通信
报错修复
对于交换机的配置,可以看这篇:
【教程】详解配置多台主机通过交换机实现互联通信_通过交换机链接多台设备-CSDN博客
检查硬件和驱动状态
1、查看是否识别到网卡(PCI 层)
lspci | grep -i mellanox
如果输出类似以下内容,说明系统已经识别到了硬件设备。
40:00.0 Ethernet controller: Mellanox Technologies MT27800 Family [ConnectX-5]
40:00.1 Ethernet controller: Mellanox Technologies MT27800 Family [ConnectX-5]
2. 查看驱动是否加载成功(内核模块)
lsmod | grep mlx5
mlx5_ib 466944 0
ib_uverbs 163840 2 rdma_ucm,mlx5_ib
ib_core 417792 8
mlx5_core 2191360 1 mlx5_ib
mlx_compat 69632 12
上述输出说明:
模块名 说明 mlx5_core
Mellanox 网卡核心驱动,控制数据面 mlx5_ib
用于 RDMA(InfiniBand verbs)的支持 ib_uverbs
用户态 Verbs 接口(userspace RDMA 程序会依赖) ib_core
RDMA 核心抽象层(通用 InfiniBand 子系统) mlx_compat
Mellanox 向后兼容层(用于 OFED 内核兼容性)
如果没加载,可尝试手动加载:
sudo modprobe mlx5_ib
还可以查看所有与 RDMA 相关模块:
lsmod | grep rdma
ib_uverbs
rdma_ucm
mlx5_ib
3. 查看网卡驱动和状态
ethtool -i ens1f1np1 # 替换为你的网卡名,ifconfig可查看
driver: mlx5_core
version: 24.10-2.1.8
firmware-version: 16.35.4506 (MT_0000000012)
expansion-rom-version:
bus-info: 0000:1a:00.1
supports-statistics: yes
supports-test: yes
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: yes
4. 查看 RDMA 设备信息(核心)
ibv_devinfo
hca_id: mlx5_0
transport: InfiniBand (0)
fw_ver: 16.35.4506
node_guid: 043f:7203:00dc:00d4
sys_image_guid: 043f:7203:00dc:00d4
vendor_id: 0x02c9
vendor_part_id: 4119
hw_ver: 0x0
board_id: MT_0000000012
phys_port_cnt: 1
port: 1
state: PORT_ACTIVE (4)
max_mtu: 4096 (5)
active_mtu: 1024 (3)
sm_lid: 0
port_lid: 0
port_lmc: 0x00
link_layer: Ethernet
这表示 RDMA 核心层已经注册并初始化成功。
5. 查看 RDMA 子系统
rdma link show
link mlx5_0/1 state ACTIVE physical_state LINK_UP netdev ens1f0np0
link mlx5_1/1 state ACTIVE physical_state LINK_UP netdev ens1f1np1
说明 RDMA 子系统已加载并绑定到对应网卡。
6. 检查 OFED 安装状态
如果你使用 Mellanox OFED(不是内核默认驱动),可以运行:
ofed_info -s
MLNX_OFED_LINUX-24.10-2.1.8.0:
确认你装的是 Mellanox 官方驱动栈。
测试RDMA通信
1、在两台服务器上新建以下脚本,命名为:rdma_test.sh 。
#!/bin/bash# ===============================================
# Script: rdma_test.sh
# Author: 小锋学长
# Description:
# 一键运行 RDMA 带宽测试(ib_write_bw)工具,自动完成:
# - 自动检测 GID index
# - 切换 CPU governor 为 performance
# - 支持 server/client 模式
# - 支持 read / write / send 操作类型(默认 read)
# - 支持传入设备名、端口号
# - 测试后自动恢复 CPU governor
#
# Requirements:
# - ib_write_bw 工具(来自 perftest 包)
# - Mellanox 驱动已正确加载
# - RDMA 设备支持 RoCE 并已配置 IP + GID
#
# Usage:
# Server 模式:
# bash rdma_test.sh server
# bash rdma_test.sh server [device] [port] [mode_type]
#
# Client 模式:
# bash rdma_test.sh client <server_ip>
# bash rdma_test.sh client <server_ip> [device] [port] [mode_type]
#
# Examples:
# bash rdma_test.sh server mlx5_1 1 read
# bash rdma_test.sh client 192.168.5.228 mlx5_1 1 read
#
# Note:
# - 默认设备为 mlx5_1,默认物理端口为 1
# - GID index 会根据本地 IP 自动选择
# - 支持异常退出自动清理 CPU governor 设置
# ===============================================# CONFIGURATION (默认值)
MODE="" # 第一个参数为运行模式,server 或 client
PEER_IP="" # 第二个参数作为 Server IP(仅 client 模式使用)
DEVICE="mlx5_1" # 第三个参数为设备名,默认值为 mlx5_1
PORT=1 # 第四个参数为物理端口,默认 1
MODE_TYPE="read" # 第五个参数为传输模式,read/write/send(默认 read)
GID_INDEX=-1 # 自动检测# 解析参数
ARGS=$(getopt -o m:i:d:p:t: \-l mode:,peer_ip:,device:,port:,mode_type: \-n "$0" -- "$@")
if [ $? -ne 0 ]; thenecho "❌ 参数解析失败"exit 1
fi
eval set -- "$ARGS"
while true; docase "$1" in-m|--mode) MODE="$2"; shift 2 ;;-i|--peer_ip) PEER_IP="$2"; shift 2 ;;-d|--device) DEVICE="$2"; shift 2 ;;-p|--port) PORT="$2"; shift 2 ;;-t|--mode_type) MODE_TYPE="$2"; shift 2 ;;--) shift; break ;;*) echo "❌ 未知参数: $1" >&2; exit 1 ;;esac
done# 确定实际运行的测试工具
case "$MODE_TYPE" inwrite) TEST_TOOL="ib_write_bw" ;;send) TEST_TOOL="ib_send_bw" ;;*) TEST_TOOL="ib_read_bw" ;;
esac
echo "==== RDMA 快速检查和测试工具 ===="
echo "运行模式 : $MODE"
echo "操作类型 : $TEST_TOOL"
echo "网卡设备 : $DEVICE"
echo "物理端口 : $PORT"
[[ "$MODE" == "client" ]] && echo "目标Server: $PEER_IP"# === 1. 检查 Mellanox 驱动加载状态 ===
echo "[1] 检查驱动模块加载状态"
lsmod | grep mlx5 || echo "❌ 未加载 Mellanox 驱动模块"# === 2. 查看设备状态 ===
echo -e "\n[2] 查看设备列表与状态"
ibv_devinfo -d "$DEVICE" || { echo "❌ RDMA 设备不可用"; exit 1; }# === 3. 自动识别 GID index ===
echo -e "\n[3] 显示端口 $PORT 的 GID 表:"
for i in {0..15}; doGID=$(cat /sys/class/infiniband/${DEVICE}/ports/${PORT}/gids/$i)echo "GID[$i] = $GID"if [[ "$GID" =~ .*c0a8.* ]]; then # 检查是否含有192.168.5.x对应十六进制段GID_INDEX=$ifi
done
if [[ "$GID_INDEX" -eq "-1" ]]; thenecho "❌ 未能自动识别出 GID index,请手动设置 GID_INDEX"exit 1
elseecho "✅ 使用 GID index: $GID_INDEX"
fi# === 3.5 临时将 CPU governor 切换为 performance,并注册恢复 ===
echo -e "\n[3.5] 临时切换 CPU governor 为 performance"
declare -A ORIGINAL_GOVERNORS
for cpu in /sys/devices/system/cpu/cpu[0-9]*; dogov_file="$cpu/cpufreq/scaling_governor"cpu_name=$(basename "$cpu")ORIGINAL_GOVERNORS[$cpu_name]=$(cat "$gov_file")echo performance | sudo tee "$gov_file" > /dev/null
done
sleep 1restore_governors() {echo -e "\n[清理] 恢复原有 CPU governor 设置..."for cpu in "${!ORIGINAL_GOVERNORS[@]}"; doecho "${ORIGINAL_GOVERNORS[$cpu]}" | sudo tee /sys/devices/system/cpu/$cpu/cpufreq/scaling_governor > /dev/nulldone
}
trap restore_governors EXIT# === 4. 启动 RDMA 测试 ===
echo -e "\n[4] 启动 ib_write_bw 测试"
COMMON_ARGS="-d $DEVICE -i $PORT -x $GID_INDEX -s 65536 -q 8 -n 500000 --noPeak --report_gbits"if [[ "$MODE" == "server" ]]; thenecho "🟢 正在启动 server(设备=$DEVICE, 端口=$PORT, GID=$GID_INDEX, 模式=$TEST_TOOL)"# send 模式提示 + 参数处理if [[ "$MODE_TYPE" == "send" ]]; thenecho -e "\n📢 注意:当前为 send 模式,client需要主动发送数据"if [[ "$MODE" == "server" ]]; thenCOMMON_ARGS="$COMMON_ARGS --run_infinitely"fifiecho "🔧 实际执行命令:sudo $TEST_TOOL $COMMON_ARGS"while true; doecho -e "\n🟢 等待 client 连接..."sudo $TEST_TOOL $COMMON_ARGSecho -e "\n✅ 当前 client 测试完成,等待下一个连接...\n"sleep 1done
elif [[ "$MODE" == "client" ]]; thenif [[ -z "$PEER_IP" ]]; thenecho "❌ 错误:client 模式需要指定 server IP"echo "用法:$0 client <server_ip> [device] [port] [mode_type]"exit 1fiecho "🚀 正在连接到 server $PEER_IP(设备=$DEVICE, 端口=$PORT, GID=$GID_INDEX, 模式=$TEST_TOOL)"echo "🔧 实际执行命令:sudo $TEST_TOOL $COMMON_ARGS $PEER_IP"sudo $TEST_TOOL $COMMON_ARGS "$PEER_IP"
elseecho "❌ 错误:必须指定模式参数 server 或 client"echo "用法:$0 server [device] [port] [mode_type] 或 $0 client <server_ip> [device] [port] [mode_type]"exit 1
fi
2、在服务端运行(根据你的情况修改):
bash rdma_test.sh -m server -t read
3、在客户端运行(根据你的情况修改):
bash test_rdma.sh -m client -i 192.168.5.228 -d mlx5_1 -p 1 -t read
4、测试结果:
字段解释:
字段名 含义 #bytes
每个 RDMA 消息的 payload 大小(本例为 64 KiB) #iterations
总共发送了多少条消息(5000 次) BW peak [MiB/sec]
测试过程中的瞬时最大带宽(本例为 10313.62 MiB/s) BW average [MiB/sec]
平均带宽(本例为 10313.14 MiB/s) MsgRate [Mpps]
平均消息发送速率(每秒多少条消息,单位:百万条)
(本例为 0.165 Mpps,也就是 165,010 条/秒)
5、结果解析:
平均带宽换算为 Gbps(千兆位每秒):
1 MiB = 2²⁰ 字节 = 8.388608 Mbit
所以实际达到了 86.5 Gbps 的有效吞吐量:
10313.14 MiB/sec × 8.388608 = ≈ 86520.2 Mbit/sec ≈ 86.5 Gbps
由于是mlx5 RoCE 网卡(ConnectX-4 或以上),active_speed = 25 Gbps × 4x,因此理论带宽为:25 × 4 = 100 Gbps(最大可用)。
-
实测:86.5 Gbps
-
达标率:≈ 86.5%
在真实环境下由于 PCIe 延迟、内存访问、系统 jitter、未调优参数等因素,能达到 80~90% 的理论带宽就已经非常理想。
6、进一步提升性能:
方法 | 效果 |
---|---|
增加 -q (Queue Pairs 数) | 提高并发度 |
增加 -s 消息大小(如 128KB) | 增加吞吐上限 |
使用 -F | 跳过 CPU 频率校验 |
使用 --report_gbits | 直接用 Gbps 输出,避免换算 |
绑定 NUMA 节点 | 降低内存访问延迟 |
使用 --duration 模式长期运行 | 稳定性更好 |
示例命令:
sudo ib_write_bw -d mlx5_1 -i 1 -x 5 -s 65536 -q 8 -F -n 1000000 --report_gbits
报错修复
1、Unable to init the socket connection
把防火墙都关了。
sudo systemctl stop firewalld # 重启会恢复
sudo systemctl disable firewalld # 禁用后重启也不会恢复
sudo ufw disable
sudo iptables -F
相关文章:
【教程】检查RDMA网卡状态和测试带宽 | 附测试脚本
转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~ 目录 检查硬件和驱动状态 测试RDMA通信 报错修复 对于交换机的配置,可以看这篇: 【教程】详解配置多台主机通过交换机实现互…...
OSPF的拓展配置
OSPF的拓展配置 1,ospf的手工认证 1,接口认证 r1: display ospf peer brief (查看邻居关系) int g 0/0/0 ospf authentication-mode md5 1 cipher 123456 display this r2: ospf authentication-mode md5 1 plain 12345…...
http、https、TLS、证书原理理解,对称加密到非对称加密问题,以及对应的大致流程
http 超文本传输协议 存在问题: 安全性、隐私性、数据完整性 易被中间人(黑客之类的)对数据进行劫持、篡改、隐私泄露 引出了 https (source) http 在网络模型中的应用层 Application > transport > inter…...
vscode格式化为什么失效?自动保存和格式化(Prettier - Code formatter,vue-format)
vscode自动格式化保存最终配置 博主找了好多的插件,也跟着教程配置了很多,结果还是没有办法格式化,最终发现了一个隐藏的小齿轮,配置完后就生效了 关键步骤 关键配置 一定要点小齿轮!!! 这个小…...
两类中断控制器处理流程_链式和层级
今天呢,我们来用一种新的视角去看中断子系统,然后仿照人家的方法去写一个虚拟的中断子系统,我们先来讲讲链式和层级: 链式中断控制器(chained): 上图中,左边的"chained intc"就是链式中断控制器…...
软件测试之接口测试用例设计
1.接口测试用例设计简介 我们对系统的需求分析完成之后,即可设计对应的接口测试用例,然后用接口测试用例进行接口测试。接口测试用例的设计也需要用到黑盒测试方法,其与功能测试用例设计的方法类似,接口测试用例设计中还需要增加…...
猫咪如厕检测与分类识别系统系列【九】视频检测区域在线绘制+支持摄像头+网络摄像头+整体构建【上】
前情提要 家里养了三只猫咪,其中一只布偶猫经常出入厕所。但因为平时忙于学业,没法时刻关注牠的行为。我知道猫咪的如厕频率和时长与健康状况密切相关,频繁如厕可能是泌尿问题,停留过久也可能是便秘或不适。为了更科学地了解牠的如…...
MySQL-运维篇
日志主从复制分库分表读写分离 日志 在任何一种数据库当中都会有各种各样的日志,这些日志记录着数据库运行的各个方面 错误日志 这个命令可以查看文件尾部的50行日志👆 这个命令是实时输出👆 二进制日志 第三个是索引文件,里面…...
mysql关联查询语句
假设存在以下三张表: orders 表:记录订单信息,包含 order_id(订单编号)、customer_id(客户编号)、order_date(订单日期)等字段。customers 表:记录客户信息&…...
Uniapp权限申请优化方案
获取权限前给用户提示,并在用户拒绝后48小时内不再弹窗请求授权。 优化方案分析 您的代码已经实现了基本的权限申请逻辑,但可以进一步优化以满足应用商店的审核要求。 1. 权限申请前的用户提示优化 当前代码中已经包含了权限申请前的提示功能&#x…...
案例驱动的 IT 团队管理:创新与突破之路:第四章 危机应对:从风险预见到创新破局-4.2 人才流失危机-4.2.3梯队建设的“洋葱模型“
👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 梯队建设的"洋葱模型":破解IT团队人才流失危机的创新实践1. 人才流失危机的现实挑战1.1 行业现状与数据警示1.2 传统应对策略的失效 2. 洋葱模型的理论…...
双目视觉中矩阵等参数说明及矫正
以下是标定文件中各个参数的详细解释: 1. 图像尺寸 (imageSize) 参数值: [1280, 1024]含义: 相机的图像分辨率,宽度为1280像素,高度为1024像素。 2. 相机内参矩阵 (leftCameraMatrix / rightCameraMatrix) 结构: yaml data: [fx, 0, cx, 0,…...
烽火ai场控接入deepseek自动回复话术软件
要将烽火AI场控软件与DeepSeek自动回复话术软件进行对接,实现直播间自动互动功能,需通过API接口或脚本工具完成数据互通。以下是具体操作步骤及注意事项: 确认兼容性与准备工作 软件支持检查 确认烽火AI场控是否开放API接口(一般需…...
CSS 美化页面(三)
一、盒模型 盒模型本质上是一个盒子,封装周围的HTML元素 。包含: 外边距,边框,填充,和实际内容 一个盒子由四个区域组成:内容(Content)、内边距(Padding)、外…...
面试题之数据库-mysql高阶及业务场景设计
最近开始面试了,410面试了一家公司 针对自己薄弱的面试题库,深入了解下,也应付下面试。在这里先祝愿大家在现有公司好好沉淀,定位好自己的目标,在自己的领域上发光发热,在自己想要的领域上(技术…...
STM32F407实现SD卡的读写功能
文章目录 前言一、SDIO简介二、SD卡操作1.读操作2.写数据3.擦除操作4.最终效果5.完整工程 前言 在STM32中存储空间是有限的,对于需要存储大量数据的项目就需要外扩存储空间,一般会选择FLASH、EEPROM或者SD卡。SD是这三种中可达空间最大的,所…...
Vue 3中的setup【与Vue 2的区别】
一、前言 在Vue 3中,setup是组合式API(Composition API)的核心入口函数。其核心作用是为组件提供灵活的逻辑组织方式,解决复杂组件中逻辑碎片化的问题。 二、核心作用 1.初始化响应式数据 通过ref和reactive等API声明响应式状态…...
基于PySide6的YOLOv8/11目标检测GUI界面——智能安全帽检测系统
📖 前言 在工业安全领域,智能安全帽检测是保障工人生命安全的重要技术手段。本文将介绍如何利用YOLOv8/YOLOv11目标检测算法与PySide6 GUI框架,开发一套功能完整的智能安全帽检测系统。系统支持: 动态切换检测模型(Y…...
AF3 generate_chain_data_cache脚本解读
AlphaFold3 generate_chain_data_cache 脚本在源代码的scripts文件夹下。该脚本从指定目录中批量解析 mmCIF/PDB 文件的工具,并将每个链的基本信息(序列、分辨率、是否属于聚类等)提取并写入 JSON 文件,主要用于后续蛋白质建模、过滤或训练数据准备。 源代码: import ar…...
C/C++不透明指针
今天在ESP32编程中又看到了这个词,这个词出现在cursor回答中。回答如下: struct esp_netif_obj; typedef struct esp_netif_obj esp_netif_t;esp_netif_obj的具体实现细节被隐藏了用户代码只能通过esp_netif_t类型指针来操作网络接口这种封装方式被称为…...
电力实习中需要注意哪些安全用电问题
电力实习中需要注意哪些安全用电问题 在电工实习中,由于涉及到电力设备和电气设施,安全问题尤为重要。 以下是电工实习中需要注意的安全问题: 一、电气设备及线路安全 使用电气设备前,应确保设备具有良好的电气绝缘,…...
【版本控制】git命令使用大全
大家好,我是jstart千语。今天来总结一下git的使用命令,上文会先将git命令都列出来,便于快速寻找,然后还会对部分常用命令图文讲解,适合新手,让你快速地理解。最后还会总结在idea中使用git。如果有缺失的&am…...
Day09【基于Tripletloss实现的简单意图识别对话系统】
基于Tripletloss实现的表示型文本匹配 目标数据准备参数配置数据处理Triplet Loss目标Triplet Loss计算公式公式说明 模型构建网络结构设计网络训练目标损失函数设计 主程序推理预测类初始化加载问答知识库文本向量化知识库查询主程序main测试测试效果 参考博客 目标 在此之前…...
什么是HIGG验厂,HIGG验厂有什么要求?HIGG验厂有什么作用
什么是Higg验厂? Higg验厂(Higg Facility Environmental Module, FEM & Higg Facility Social & Labor Module, FSLM)是由可持续服装联盟(SAC, Sustainable Apparel Coalition)开发的一套评估工具,…...
SmolVLM新模型技术解读笔记
原文地址:https://huggingface.co/blog/zh/smolervlm 一、核心发布概要 新成员亮相:推出256M(2.56亿参数)与500M(5亿参数)视觉语言模型关键定位:目前全球最小VLM(256M)…...
解决USG5150防火墙web无法连接问题
参考 防火墙usg5500(V300R001C00SPC700)WEB界面无法登陆 现象 Web防火墙突然无法web登录,Ping通,但是Tcpping端口不通。无论是从外网、还是内网都一样。 Probing 192.168.100.1:1234/tcp - No response - time2047.528ms Prob…...
Resilience4j与Spring Cloud Gateway整合指南:构建弹性的API网关
什么是Resilience4j? Resilience4j是一个轻量级的容错库,专为Java 8和函数式编程设计。它借鉴了Netflix Hystrix的设计理念,但更加轻量且专注于Java 8的函数式编程风格。Resilience4j提供了多种容错机制,帮助开发者构建弹性强健的…...
Quipus,LightRag的Go版本的实现
1 项目简介 奇谱系统当前版本以知识库为核心,基于知识库可以快构建自己的问答系统。知识库的Rag模块的构建算法是参考了LightRag的算法流程的Go版本优化实现,它可以帮助你快速、准确地构建自己的知识库,搭建属于自己的AI智能助手。与当前LLM…...
怎样完成本地模型知识库检索问答RAG
怎样完成本地模型知识库检索问答RAG 目录 怎样完成本地模型知识库检索问答RAG使用密集检索器和系数检索器混合方式完成知识库相似检索1. 导入必要的库2. 加载文档3. 文本分割4. 初始化嵌入模型5. 创建向量数据库6. 初始化大语言模型7. 构建问答链8. 提出问题并检索相关文档9. 合…...
研发效率破局之道阅读总结(2)流程优化
研发效率破局之道阅读总结(2)流程优化 Author: Once Day Date: 2025年4月15日 一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦… 漫漫长路,有人对你微笑过嘛… 全系列文章可参考专栏: 程序的艺术_Once-Day…...
解决PIP 安装出错ERROR: cp310-cp310-manylinux_2_28_x86_64.whl is not a supported wheel
ERROR: torch-2.8.0.dev20250325cu128-cp310-cp310-manylinux_2_28_x86_64.whl is not a supported wheel on this platform. 可以 pip debug --verbose | grep manylinux | grep cp310 WARNING: This command is only meant for debugging. Do not use this with automation f…...
b站golang后端开发一面
go和其他语言的对比 Golang(也称为Go语言)是一种静态类型、编译型语言,由Google开发,以其简洁、高效和强大的并发处理能力著称。 Golang的设计哲学强调简洁明了。与Python类似,Go语法简洁,易于学习和编写。…...
Vue3 SSR Serverless架构革命:弹性计算与量子加速
一、全维度Serverless SSR架构 1.1 蜂巢式弹性调度系统 1.2 冷启动时间优化表 优化策略Node.js冷启(ms)Deno冷启(ms)Bun冷启(ms)裸启动1800960420预编译二进制650380210内存快照预热22016090WASM实例池15011075量子状态预载453832 二、边缘渲染协议升级 2.1 流式SSR响应协议…...
深度大脑:AI大模型的设计与运行原理
AI大模型的设计与运行原理涉及多个复杂环节,以下是系统化的总结,结合核心要点与补充细节: 一、AI大模型的设计 1. 深度神经网络架构 Transformer:取代RNN/CNN,解决长程依赖问题。核心组件: 自注意力机制…...
Python网络编程从入门到精通:Socket核心技术+TCP/UDP实战详解
引言 网络编程是构建现代分布式系统的核心能力,而Socket作为通信的基石,其重要性不言而喻。本文将从零开始,通过清晰的代码示例、原理剖析和对比分析,带你彻底掌握Python中的Socket编程技术,涵盖TCP可靠连接、UDP高效…...
使用CMake生成Opencv对应库文件
opencv环境配置:版本3.4/3.2(OpenCV-3.4.3) CMake:3.12.1 D:\OpenCv\opencv\build\x64\vc16\bin路径添加至环境变量中 CMake环境配置: D:\Install_QT\bin路径添加至环境变量中(path中即可) QT5环境变量配置:…...
MySQL 数据库备份和恢复全指南
MySQL 是一款常用的开源数据库系统,在日常运维中,数据备份和恢复是系统管理的重要一环。本文将细致介绍 MySQL 两大备份方案—— mysqldump 和 XtraBackup,包括备份方式、恢复步骤、定时脚本、远程备份和常见问题处理方案。 一、mysqldump 备…...
关于我的服务器
最近我买了台腾讯云服务器,然后新手小白只会用宝塔。。。 安装完之后默认的端口是8888,打开面板就会提示我有风险。然后 我改了端口之后,怎么都打不开。 于是 学到了几句命令可以使用: //查看端口是否已经修改成功 cat www/se…...
spring面试题
1,如何理解spring boot中的starter Starter是一种简化依赖管理和自动配置的核心机制,能快速集成特定功能模块,无需手动配置复杂依赖和xml文件。 依赖简化:将某个功能模块所需的所有依赖打包成一个“一站式”依赖,开发…...
python setup.py学习
Python-setup进阶打包命令 Python-setup进阶打包命令_python setup-CSDN博客 packages 需要处理的包目录(包含__init__.py的文件夹),这里通常使用 find_packages(),它默认在和setup.py同一目录下搜索各个含有 __init__.py的包。…...
最简单的使用SDL2 播放原始音频数据程序
author: hjjdebug date: 2025年 04月 15日 星期二 14:02:05 CST description: 最简单的使用SDL2 播放原始音频数据程序 文章目录 1.最简单的播放音频的程序是什么样子的?2. 怎样用SDL 来编写音频播放器代码?2.1 SDL播放音频核心代码:混音函数2.2 先看看音频播放的可能的两种框…...
利用IDEA开发Spark-SQL
创建子模块Spark-SQL,并添加依赖 创建Spark-SQL的测试代码: 运行结果: 自定义函数: UDF: UDAF(自定义聚合函数) 强类型的 Dataset 和弱类型的 DataFrame 都提供了相关的聚合函数, …...
随身Wi-Fi能跑PCDN?
随身WiFi可以用于运行PCDN(点对点内容分发网络),但存在技术限制和潜在风险,需谨慎操作。 可行性分析 技术基础 随身WiFi本质是便携式无线路由器,具备网络接入和分发能力,理论上可配置为PCDN节点。 部分用户…...
Google-A2A协议全面解析:一文掌握Agent-to-Agent协议的核心与应用
前言: 在当今人工智能技术飞速发展的时代,智能体(Agent)已悄然融入我们生活的各个角落。无论是个人智能助手,还是企业的自动化工具,各类AI代理的应用愈发广泛。但目前这些智能体之间大多处于孤立状态&…...
jmeter压测工具出现乱码
然后 prev.setDataEncoding(“utf-8”)...
大模型训练显存压缩实战:ZeRO-3 vs 梯度累积 vs 量化混合策略
一、显存瓶颈的本质与挑战 大模型训练面临的核心矛盾是模型参数量指数级增长与GPU显存容量线性提升之间的鸿沟。以175B参数模型为例,其显存消耗主要来自三个方面: 参数存储:FP32精度下需700GB显存梯度缓存:反向传播产生的…...
WPS JS宏编程教程(从基础到进阶)-- 第七部分:JS对象在WPS中的应用
目录 第7章 JS对象在WPS中的应用7-1 对象创建的几种方法从零理解对象:数据收纳盒两种基础创建方式代码解析表 7-2 对象属性的查、改、增、删像操作Excel单元格一样管理属性1. 点操作符(静态键名)2. 中括号操作符(动态键名…...
网络编程(UDP)
server:服务器 # import socket # # 传递udp协议参数 # sk socket.socket(typesocket.SOCK_DGRAM) # # # 绑定ip及端口 # sk.bind(("127.0.0.1",8080)) # # print("等待客户端发送消息") # # # 直接发送 # msg,addr sk.recvfrom(1024) # # print(msg.d…...
深入讲解 CSS 选择器权重及实战
1. 权重计算规则详解 CSS 选择器的优先级由 三元组 (x, y, z) 决定,比较规则如下: 选择器类型权重值 (x, y, z)示例ID 选择器x 1#header → (1,0,0)类/伪类/属性y 1.active, :hover元素/伪元素z 1div, ::before 比较规则:从左到右逐级比…...
Mysql的查询
1.Mysql的基本查询 语法:select*from 表名;代表查询所有数据的所有列 SELECT * FROM classinfo; SELECT * FROM studentinfo; select 字段1,字段2.....from 表名;查询数据的指定字段 查询studentinfo表的学生姓名和年龄 SELECT stuname,age FROM stu…...