当前位置: 首页 > news >正文

深入探讨RAID 5的性能与容错能力:实验与分析(磁盘阵列)

前言——

本实验旨在探讨 RAID 5 的性能和容错能力。通过创建 RAID 5 阵列并进行一系列读写性能测试及故障模拟,我们将观察 RAID 5 在数据冗余和故障恢复方面的表现,以验证其在实际应用中的可靠性和效率。

首先说明:最少三块硬盘, 使用 4 块硬盘确实能获得更好的性能和更大的存储空间。让我们用 4 块硬盘(nvme0n2 到 nvme0n5)来构建 RAID 5。

最少三块,我这边用四块做实验。

你的硬盘类型可能和我的不一样 不过没有关系不影响操作实验

实验环境说明

  • 系统盘:nvme0n1(不参与 RAID)
  • 可用磁盘:
    • nvme0n2(20GB)
    • nvme0n3(20GB)
    • nvme0n4(20GB)
    • nvme0n5(20GB)

实验步骤

1.确认安装 mdadm
sudo yum install mdadm -y
2.清理现有分区

(因为已经有分区,需要先清理)清楚分区会删除数据 慎重操作

# 删除现有分区
sudo fdisk /dev/nvme0n2
# 输入 d 删除现有分区
# 输入 w 保存并退出# 对其他磁盘重复相同操作
sudo fdisk /dev/nvme0n3
sudo fdisk /dev/nvme0n4
sudo fdisk /dev/nvme0n5
3.创建新的 RAID 分区

对每个磁盘创建新分区:

sudo fdisk /dev/nvme0n2

在 fdisk 中

  1. 输入 n 创建新分区
  2. 选择 p 创建主分区
  3. 分区号按默认(1)
  4. 起始扇区按默认
  5. 结束扇区输入 +15G(给每个磁盘分配15GB用于RAID)
  6. 输入 t 修改分区类型
  7. 输入 fd 设置为 Linux RAID
  8. 输入 w 保存并退出

按照顺序来 具体分配多少空间根据你的需求

对 nvme0n3、nvme0n4、nvme0n5 重复相同操作。

4.创建 RAID 5 阵列
sudo mdadm -Cv /dev/md0 -l 5 -n 4 /dev/nvme0n2p1 /dev/nvme0n3p1 /dev/nvme0n4p1 /dev/nvme0n5p1

给大家介绍一下每一个参数的作用 (不理解的话做出来也没有用

命令分解
  • mdadm: 用于管理Linux软件RAID设备的工具。
  • -C: 创建一个新的RAID设备。
  • -v: 显示详细输出,便于调试和查看进程。
  • /dev/md0: 创建的RAID设备的名称,表示第一个RAID设备。
  • -l 5: 指定RAID级别为5。RAID 5使用条带化和奇偶校验,提供较好的读性能和容错能力。
  • -n 4: 指定RAID阵列中的磁盘数量为4。这意味着RAID 5将使用4个设备来存储数据和奇偶校验信息。
  • /dev/nvme0n2p1 /dev/nvme0n3p1 /dev/nvme0n4p1 /dev/nvme0n5p1: 指定参与RAID阵列的具体设备。这些是四个NVMe设备的分区。

5.查看 RAID 状态
cat /proc/mdstat

可能会有疑惑 不是刚格式化创建好的分区,并没有创建什么文件数据之类的,为什么还要同步数据

  • 在RAID阵列创建过程中,系统会将所有参与的设备视为一个整体,并进行必要的操作(如奇偶校验的计算和写入),这就是为什么你看到有恢复进度。

创建文件系统

sudo mkfs.xfs /dev/md0    #创建文件系统log stripe unit (524288 bytes) is too large (maximum is 256KiB)
log stripe unit adjusted to 32KiB
meta-data=/dev/md0               isize=512    agcount=16, agsize=491008 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=1, sparse=1, rmapbt=0=                       reflink=1    bigtime=0 inobtcount=0
data     =                       bsize=4096   blocks=7856128, imaxpct=25=                       sunit=128    swidth=384 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=3840, version=2=                       sectsz=512   sunit=8 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

创建挂载点并挂载

sudo mkdir /raiddata
sudo mount /dev/md0 /raiddata

设置开机自动挂载

echo '/dev/md0 /raiddata xfs defaults 0 0' | sudo tee -a /etc/fstab

验证挂载

df -hT

对于四个10GB的磁盘,实际可用空间计算为: 可用空间=(磁盘数量−1)×每个磁盘的容量可用空间=(磁盘数量−1)×每个磁盘的容量 可用空间=(4−1)×10GB=30GB可用空间=(4−1)×10GB=30GB

6.如果需要删除 RAID

如果配置出错需要重来,可以使用以下命令:

bash
复制
# 停止 RAID
sudo mdadm --stop /dev/md0# 清除超级块
sudo mdadm --zero-superblock /dev/nvme0n2p1
sudo mdadm --zero-superblock /dev/nvme0n3p1
sudo mdadm --zero-superblock /dev/nvme0n4p1
sudo mdadm --zero-superblock /dev/nvme0n5p1# 从 fstab 中删除挂载项
sudo sed -i '/\/dev\/md0/d' /etc/fstab

性能测试实验

设计一系列实验来测试 RAID 5 的性能和容错能力。这些测试将展示 RAID 5 的主要特性:读写性能、数据冗余和故障恢复能力

这些测试将展示

  1. RAID 5 的读写性能
  2. 数据冗余和容错能力
  3. 在磁盘故障时的系统行为
  4. 重建过程的自动化

实验一:基础性能测试

首先创建一个测试文件

dd if=/dev/zero of=/raiddata/testfile bs=1M count=1024

这会创建一个 1GB 的测试文件

测试读取速度

dd if=/raiddata/testfile of=/dev/null bs=1M

测试写入速度

dd if=/dev/zero of=/raiddata/testfile2 bs=1M count=1024 conv=fdatasync

实验二:容错性测试(模拟磁盘故障)

  1. 首先创建一些重要数据
# 创建测试目录
mkdir /raiddata/important_data# 创建一些测试文件
for i in {1..5}; dodd if=/dev/urandom of=/raiddata/important_data/file$i bs=1M count=100
done# 计算文件的 MD5 值以便后续验证
[root@Centos8 ~]# md5sum /raiddata/important_data/* > /root/checksums.txt
[root@Centos8 ~]# cat /root/checksums.txt 
6640f67939d03071c27bda6ba5cf3c3d  /raiddata/important_data/file1
f5d97e43cb0678fe4f07f2a2221912ac  /raiddata/important_data/file2
16c63489a2ab7a15b857d6a265f33cdd  /raiddata/important_data/file3
af4cde80c4affa9480a56cf7887466dc  /raiddata/important_data/file4
3cadc5fc4dbd6a21d5d0d4e73374a306  /raiddata/important_data/file5

模拟磁盘故障

# 查看当前 RAID 状态
cat /proc/mdstat# 标记其中一个磁盘为故障
sudo mdadm /dev/md0 --fail /dev/nvme0n2p1# 查看 RAID 状态
cat /proc/mdstat
mdadm --detail /dev/md0

验证数据完整性

# 验证之前创建的文件是否仍然可以访问
ls -l /raiddata/important_data/# 验证文件内容是否完整
md5sum -c /root/checksums.txt

实验三:重建测试

移除故障磁盘

sudo mdadm /dev/md0 --remove /dev/nvme0n2p1

添加新磁盘(假设我们修复了原来的磁盘)

sudo mdadm /dev/md0 --add /dev/nvme0n2p1

观察重建过程

# 实时监控重建进度
watch -n 1 cat /proc/mdstat

实验四:性能测试

  1. 安装性能测试工具
bash
复制
sudo yum install fio -y
  1. 运行综合性能测试
bash
复制
# 创建测试配置文件
cat > raid_test.fio << EOF
[global]
ioengine=libaio
direct=1
group_reporting
time_based
runtime=60[sequential-read]
stonewall
rw=read
size=1g
directory=/raiddata
bs=1M[sequential-write]
stonewall
rw=write
size=1g
directory=/raiddata
bs=1M[random-read]
stonewall
rw=randread
size=1g
directory=/raiddata
bs=4k[random-write]
stonewall
rw=randwrite
size=1g
directory=/raiddata
bs=4k
EOF# 运行测试
fio raid_test.fio

执行完成脚本等待性能测试 然后输出各种参数和结果

实验总结

通过本实验,我们成功验证了 RAID 5 的高效读写性能和良好的容错能力。在模拟磁盘故障的情况下,数据仍然保持完整,且重建过程顺利进行。这表明 RAID 5 是一种可靠的存储解决方案,适合需要高可用性和数据安全性的场景。

相关文章:

深入探讨RAID 5的性能与容错能力:实验与分析(磁盘阵列)

前言—— 本实验旨在探讨 RAID 5 的性能和容错能力。通过创建 RAID 5 阵列并进行一系列读写性能测试及故障模拟&#xff0c;我们将观察 RAID 5 在数据冗余和故障恢复方面的表现&#xff0c;以验证其在实际应用中的可靠性和效率。 首先说明&#xff1a;最少三块硬盘, 使用 4 块…...

如何让ai问答机器人通人性?

领域专用的问答机器人&#xff0c;数据是灵魂。通用模型的问题在于&#xff0c;它们虽然知识广博&#xff0c;但对特定领域的深度理解不足。解决这个问题的第一步&#xff0c;就是构建一个高质量的领域知识库。 数据要精准且全面 想让机器人真正“懂”一个领域&#xff0c;数…...

最新版Chrome浏览器加载ActiveX控件技术--allWebPlugin中间件一键部署浏览器扩展

allWebPlugin简介 allWebPlugin中间件是一款为用户提供安全、可靠、便捷的浏览器插件服务的中间件产品&#xff0c;致力于将浏览器插件重新应用到所有浏览器。它将现有ActiveX控件直接嵌入浏览器&#xff0c;实现插件加载、界面显示、接口调用、事件回调等。支持Chrome、Firefo…...

重生之我在学Vue--第11天 Vue 3 高级特性

重生之我在学Vue–第11天 Vue 3 高级特性 文章目录 重生之我在学Vue--第11天 Vue 3 高级特性前言一、Teleport&#xff1a;打破组件层级的瞬移术1. 什么是Teleport&#xff1f;2. 核心用法3. 实战技巧 二、Suspense&#xff1a;异步组件的优雅过渡1. 为什么需要Suspense&#x…...

汽车无钥匙启动系统不使用传统机械钥匙启动汽车

汽车无钥匙启动系统 定义 汽车无钥匙启动系统&#xff08;Keyless Start System&#xff09;&#xff0c;启动车辆时不用掏拧钥匙&#xff0c;只需把钥匙放在包内或口袋里&#xff0c;按下车内按键或拧动导板即可使发动机点火。它无需插入钥匙&#xff0c;通过点按按键或旋转…...

平安养老险深圳分公司积极开展2025年“3·15”金融消费者权益保护教育宣传活动

为深刻把握金融工作的政治性、人民性&#xff0c;帮助社会公众增强维护自身合法权益的意识和能力&#xff0c;平安养老险深圳分公司在2025年3月7日至3月15日期间&#xff0c;以“保障金融权益&#xff0c;助力美好生活”为口号&#xff0c;聚焦“维护权益”主题&#xff0c;全面…...

python 实现 A* 算法

A*算法是一种广泛使用的路径搜索算法&#xff0c;结合了启发式搜索和Dijkstra算法的优点。它通过评估每个节点的代价函数 ( f(n) g(n) h(n) ) 来选择最优路径&#xff0c;其中&#xff1a; ( g(n) ) 是从起点到当前节点的实际代价。( h(n) ) 是从当前节点到目标节点的启发式…...

MyBatis 如何创建 SqlSession 对象的?

MyBatis 创建 SqlSession 对象的过程主要由 SqlSessionFactory 接口及其实现类来完成。以下是详细步骤&#xff1a; 1. SqlSessionFactory 接口: SqlSessionFactory 是 MyBatis 的核心接口之一&#xff0c;它负责创建 SqlSession 对象。 你可以将 SqlSessionFactory 视为 Sql…...

微服务》》四个问题

客户端如何访问 API 网关 如 Core中 Ocelot技术 服务如何治理 服务注册与发现 如 Core中 的 consul技术 服务挂了怎么办 可以利用 重试机制、限流、熔断、降级等 服务之间通信问题 》》同步 1. Http 对外 跨防火墙 【 序列化、反序列化 2 &#xff08; 因为http是应用层…...

CockroachDB MCP -cursor适用

CockroachDB MCP 服务器 GitHub仓库置顶 这是一个用于 Cursor 的 CockroachDB MCP 服务器&#xff0c;基于 Model Context Protocol (MCP) 规范实现&#xff0c;可以让你在 Cursor 中直接与 CockroachDB 数据库交互。 功能 连接到 CockroachDB 数据库获取数据库中的所有表获…...

GOC学习

for(int i1;i<5;i){//这里的所有语句都会被执行 5 次 } int main(){pen.a(200,16,1,0).a(200,-16,1,0);pen.rt(16).fd(200).bk(200);pen.lt(32).fd(200).bk(200);///pen.rt(-32).fd(200).bk(200);for(int i1;i<5;i){pen.a(200,16,1,0).a(200,-16,1,0);pen.rt(16).fd(200)…...

【机器学习】基于t-SNE的MNIST数据集可视化探索

一、前言 在机器学习和数据科学领域&#xff0c;高维数据的可视化是一个极具挑战但又至关重要的问题。高维数据难以直观地理解和分析&#xff0c;而有效的可视化方法能够帮助我们发现数据中的潜在结构、模式和关系。本文以经典的MNIST手写数字数据集为例&#xff0c;探讨如何利…...

Vscode工具开发Vue+ts项目时vue文件ts语法报错-红波浪线等

Vscode工具开发Vuets项目时vue文件ts语法报错-红波浪线等 解决方案 问题如题描述&#xff0c;主要原因是开发工具使用的代码检查与项目的中的ts不一致导导致&#xff0c;解决办法&#xff0c;修改 vscode 中&#xff0c; 快捷键&#xff1a;command shift p, 输入&#xff…...

Python在数据处理中的应用:从入门到精通

活动发起人小虚竹 想对你说&#xff1a; 这是一个以写作博客为目的的创作活动&#xff0c;旨在鼓励大学生博主们挖掘自己的创作潜能&#xff0c;展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴&#xff0c;那么&#xff0c;快来参加吧&#xff01…...

vue3实现跨页面缓存

避免频繁向后端发送请求,vue3中,可以用缓存机制,为了实现跨页面缓存,可以把缓存放到localsotrage里面 关键代码: const globalCache JSON.parse(localStorage.getItem(globalCache)) || {}; 然后加一个forceRefresh关键字, const fetchData async (forceRefresh false) …...

YOLO优化之多信息融合MIF

设计背景 在目标检测领域,随着深度学习技术的不断进步,研究者们一直在寻求提高模型性能和效率的方法。其中, 多模态数据融合 作为一种有效的策略,近年来受到了广泛关注。多模态融合旨在将来自不同传感器或模态的数据进行整合,以提供更全面、丰富的信息供模型学习和推断。…...

人工智能与人的智能,改变一生的思维模型【8】逆向思维

逆向偏差思维模型&#xff1a;顶尖高手如何「反常识」破局 &#xff08;斯坦福决策科学中心认证的逆向思考框架&#xff09; 一、直击本质&#xff1a;什么是逆向偏差思维&#xff1f; 定义&#xff1a; 逆向偏差思维是一种主动对抗本能认知倾向的决策模式&#xff0c;通过系…...

Python 科学计算与机器学习入门:NumPy + Scikit-Learn 实战指南

Langchain系列文章目录 01-玩转LangChain&#xff1a;从模型调用到Prompt模板与输出解析的完整指南 02-玩转 LangChain Memory 模块&#xff1a;四种记忆类型详解及应用场景全覆盖 03-全面掌握 LangChain&#xff1a;从核心链条构建到动态任务分配的实战指南 04-玩转 LangChai…...

深入理解 Qt 系统托盘图标:创建自定义的系统托盘图标类

文章目录 深入理解 Qt 系统托盘图标&#xff1a;创建自定义的系统托盘图标类1. 什么是 QSystemTrayIcon&#xff1f;2. 自定义系统托盘图标类&#xff1a;SysTraylcon3. 代码解析1. **类的定义**2. **构造函数&#xff1a;SysTraylcon::SysTraylcon(QWidget *parent)**3. **ini…...

DeepSeek-R1 面试 -—— GRPO

DeepSeek训练中应用的GRPO算法&#xff0c;它源自于强化学习领域的PPO算法。GRPO与PPO算法之间存在哪些差异&#xff1f;这两种算法各自的优劣何在&#xff1f;为何DeepSeek选择采用GRPO算法而非PPO算法&#xff1f;本文将对这些问题提供解答。 一、PPO算法 PPO&#xff08;Pr…...

AI作曲DiffRhythm原理及本地部署

1.原理简介 最近AI在音乐生成方面的进展引起了极大的关注&#xff0c;但现有的方法面临着严重的限制。一些当前的生成模型只能合成人声或伴奏轨道。虽然一些模型可以生成组合的人声和伴奏&#xff0c;但它们通常依赖于精心设计的多阶段级联架构和复杂的数据管道&#xff0c;阻…...

农业电商|基于SprinBoot+vue的农业电商服务系统(源码+数据库+文档)

农业电商服务系统 目录 基于SprinBootvue的农业电商服务系统 一、前言 二、系统设计 三、系统功能设计 5.1系统功能实现 5.2后台模块实现 5.2.1管理员模块实现 5.2.2商家模块实现 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码…...

深度学习有哪些算法?

深度学习包含多种算法和模型&#xff0c;广泛应用于图像处理、自然语言处理、语音识别等领域。以下是主要分类及代表性算法&#xff1a; 一、基础神经网络 多层感知机&#xff08;MLP&#xff09; 最简单的深度学习模型&#xff0c;由多个全连接层组成&#xff0c;用于分类和回…...

鸿蒙开发-一多开发之媒体查询功能

在HarmonyOS中&#xff0c;使用ArkTS语法实现响应式布局的媒体查询是一个强大的功能&#xff0c;它允许开发者根据不同的设备特征&#xff08;如屏幕尺寸、屏幕方向等&#xff09;动态地调整UI布局和样式。以下是一个使用媒体查询实现响应式布局的实例&#xff1a; 1. 导入必要…...

历年华中科技大学计算机考研复试上机真题

历年华中科技大学计算机考研复试上机真题 2022华中科技大学计算机考研复试上机真题 2021华中科技大学计算机考研复试上机真题 2019华中科技大学计算机考研复试上机真题 在线评测&#xff1a;https://pgcode.cn 八进制 题目描述 输入一个整数&#xff0c;将其转换成八进制数…...

卷积神经网络(CNN)的主要架构

卷积神经网络&#xff08;CNN, Convolutional Neural Networks&#xff09;是深度学习中最重要的模型之一&#xff0c;广泛应用于计算机视觉、目标检测、语义分割等任务。自 LeNet 诞生以来&#xff0c;CNN 结构经历了多个重要发展阶段&#xff0c;出现了许多经典架构&#xff…...

IDEA:项目结构不见了,项目文件消失解决

IDEA&#xff1a;看不见目录结构了。 1、确认项目是否仍存在&#xff1a;检查项目文件夹是否仍然存在于磁盘上。如果项目文件夹被删除或移动了&#xff0c;您需要将其还原或重新导入到IDEA中。 2、重新导入项目&#xff1a;如果项目文件存在&#xff0c;在 IDEA 中找到项目文…...

基于ssm的宠物医院信息管理系统(全套)

一、系统架构 前端&#xff1a;html | layui | vue | element-ui 后端&#xff1a;spring | springmvc | mybatis 环境&#xff1a;jdk1.8 | mysql | maven | tomcat | idea | nodejs 二、代码及数据库 三、功能介绍 01. web端-首页1 02. web端-首页…...

How to install a package in offline scenario in Ubuntu 24.04

概述 做过信创项目的兄弟们在工作上每天可能面对很多需要解决的问题&#xff0c;不过&#xff0c;有一类问题可能是大家经常遇的&#xff0c;比方说&#xff0c;有时候我们不得不硬着头皮在离线生产环境中安装某些软件包&#xff0c;相信很多兄弟被这种细碎的小事搞得焦头烂额…...

将pdf或者word转换成base64格式

废话不多说直接上代码&#xff1a; function fileToBase64(file) {return new Promise((resolve, reject) > {const reader new FileReader();reader.readAsDataURL(file);reader.onload function (event) {const base64Data event.target.result.split(,)[1];resolve(b…...

使用Nodejs基于DeepSeek加chromadb实现RAG检索增强生成 本地知识库

定义 检索增强生成&#xff08;RAG&#xff09;的基本定义 检索增强生成&#xff08;Retrieval-Augmented Generation&#xff0c;简称RAG&#xff09;是一种结合了信息检索技术与语言生成模型的人工智能技术。RAG通过从外部知识库中检索相关信息&#xff0c;并将其作为提示&…...

乐观锁VS分布式锁实现抢单服务

司机开始接单&#xff0c;乘客填写出发地——目的地&#xff0c;开始下单 service-order模块 Operation(summary"司机抢单") GetMapping("/robNewOrder/{driverId}/{orderId}") public Result<Boolean> robNewOrder(PathVariable Long driverId,P…...

通过特征值和特征向量实现的图像压缩和特征提取

前文&#xff0c;我们在学习人工智能的线性代数基础的时候&#xff0c;就了解到&#xff0c;矩阵在人工智能中被广泛使用&#xff0c;接下来我们就从大家非常常见的图像开始&#xff0c;深度理解矩阵在人工智能中的应用。有关线性代数基础的文章可以看的我CSDN:人工智能中的线性…...

ranger集成starrock报错

org.apache.ranger.plugin.client.HadoopException: initConnection: Unable to connect to StarRocks instance, please provide valid value of field : {jdbc.driverClassName}.. com.mysql.cj.jdbc.Driver. 可能的原因 JDBC 驱动缺失&#xff1a;运行环境中没有安装 MySQL …...

第J2周:ResNet50V2算法实现01(Tensorflow硬编码版)

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 目标 使用tensorflow实现ResNetV50V2的网络结构。本次根据第一层的细节手动硬编码&#xff0c;没有任何的优化&#xff0c;只为了更好的理解细节。 目录结构&…...

论文分享 | HE-Nav: 一种适用于复杂环境中空地机器人的高性能高效导航系统

阿木实验室始终致力于通过开源项目和智能无人机产品&#xff0c;为全球无人机开发者提供强有力的技术支持&#xff0c;并推出了开源项目校园赞助活动&#xff0c;助力高校学子在学术研究与技术创新中取得更大突破。近日&#xff0c;香港大学王俊铭同学&#xff0c;基于阿木实验…...

【mysql】centOS7安装mysql详细操作步骤!—通过tar包方式

【mysql】centOS7安装mysql详细操作步骤&#xff01; linux系统安装mysql版本 需要 root 权限&#xff0c;使用 root 用户进行命令操作。使用tar文件包&#xff0c;安装&#xff0c;gz包也可以但是还需要配置用户&#xff0c;tar包虽然大&#xff0c;但是全啊&#xff01; 1. …...

java学习笔记1

程序编译步骤 java程序执行步骤 相关代码及解释&#xff1a; /* 对第一个java程序进行总结 1. java程序编写-编译-运行的过程 编写&#xff1a;我们将编写的java代码保存在以".java"结尾的源文件中 编译&#xff1a;使用javac.exe命令编译我们的java源文件。格式&am…...

强大的数据库DevOps工具:NineData 社区版

本文作者司马辽太杰&#xff0c; gzh&#xff1a;程序猿读历史 在业务快速变化与数据安全日益重要的今天&#xff0c;生产数据库变更管理、版本控制、数据使用是数据库领域的核心挑战之一。传统的解决方式往往采用邮件或即时通讯工具发起审批流程&#xff0c;再通过堡垒机直连数…...

「Unity3D」UGUI运行时设置元素的锚点Anchor,维持元素Rect的显示不变,即待在原处

在编辑器中&#xff0c;通过设置Raw edit mode&#xff0c;可以切换两种&#xff0c;元素锚点的改变模式&#xff1a; 一种是锚点单独改变&#xff0c;即&#xff1a;不开启原始模式&#xff0c;保持原样&#xff0c;改变anchoredPosition与sizeDelta。一种是锚点联动显示&…...

深入解析大语言模型的 Function Call 实现—— 以 Qwen2.5为例

引言 在现代大语言模型&#xff08;LLM&#xff09;中&#xff0c;Function Call&#xff08;函数调用&#xff09;能力极大地提升了模型的实用性&#xff0c;使其能够调用外部 API、执行复杂计算或获取实时数据。例如&#xff0c;在 OpenAI API 和 Qwen2.5-7B-Instruct 这样的…...

鸿蒙路由 HMrouter 配置及使用一

1、学习链接 HMRouter地址 https://gitee.com/hadss/hmrouter/blob/dev/HMRouterLibrary/README.md 2、工程配置 下载安装 ohpm install hadss/hmrouter 添加编译插件配置 在工程目录下的build-profile.json5中&#xff0c;配置useNormalizedOHMUrl属性为true (我这项目创…...

驾驭 DeepSeek 科技之翼,翱翔现代学习新天际

在当今这个信息爆炸的时代&#xff0c;学习的方式和途径正在经历着前所未有的变革。人工智能技术的飞速发展&#xff0c;为我们的学习带来了全新的机遇和挑战。DeepSeek 作为一款强大的大语言模型&#xff0c;凭借其卓越的性能和丰富的功能&#xff0c;为现代学习注入了新的活力…...

[Windows] 轻量级景好鼠标录制器 v2.1 单文件版,支持轨迹+鼠标键盘录制复刻

[Windows] 轻量级景好鼠标录制器 链接&#xff1a;https://pan.xunlei.com/s/VOLHz0rPyqdhV4bgyTYuW6W7A1?pwd98uj# 软件特性&#xff1a; 高效播放控制&#xff1a;动作间隔优化至100 ms&#xff0c;进度条可视化&#xff0c;支持随机循环/多次播放。 深度自定义&#xff1…...

C#生产型企业ERP系统管理软件PCB行业ERP进销存MRP管理系统BOM管理

背景 本软件为为苏州某生产型电子科技企业开发的ERP管理软件。 功能说明 希哲管理系统v1.0是一款在流览器上使用的企业管理软件&#xff0c;使用上与客户端版的优势是&#xff1a; 1.安装更新部署方便&#xff0c;只需服务器部署了软件&#xff0c;其它客户端的用户无需安装&am…...

【Linux内核系列】:文件系统

&#x1f525; 本文专栏&#xff1a;Linux &#x1f338;作者主页&#xff1a;努力努力再努力wz ★★★ 本文前置知识&#xff1a; 文件系统初识 那么在我们此前关于文件的学习中&#xff0c;我们学习的都是进程与打开的文件之间的关系&#xff0c;以及打开的文件如何进行管理…...

工程化与框架系列(35)--前端微服务架构实践

前端微服务架构实践 &#x1f3d7;️ 引言 随着前端应用规模的不断扩大&#xff0c;微服务架构在前端领域的应用越来越广泛。本文将深入探讨前端微服务架构的实现方案、最佳实践和相关工具。 微服务架构概述 前端微服务架构主要包括以下方面&#xff1a; 应用拆分&#xf…...

多条件下的免杀webshell

前言 在做webshell免杀的时候&#xff0c;很多情况下都是对system,eval等命令执行函数进行匹配&#xff0c;如果说把变量当做一个函数来使用的话&#xff0c;那是不是可以bypass了呢&#xff1f;这今天刚好看见有一个回调函数有这样的功能&#xff0c;而且也不会报毒&#xff…...

【算法】动态规划

⭐️个人主页&#xff1a;小羊 ⭐️所属专栏&#xff1a;Linux 很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~ 目录 动态规划总结1、常见动态规划Fibonacci数列杨辉三角最小花费爬楼梯孩子们的游戏 2、组合方案李白打酒加强版&#xff08;lqb&…...

MySQL事务及索引复习笔记

本文参考小林coding&#xff0c;地址事务隔离级别是怎么实现的&#xff1f; | 小林coding 事务 一、事务是什么&#xff1f; 比如一个程序是转账&#xff0c;你要扣减a的余额&#xff0c;增加b的余额&#xff0c;但是如果程序执行扣减成功然后挂了&#xff0c;就会出现a的余额…...