ubuntu2204安装kvm

news2024/9/20 14:17:51

ubuntu2204安装kvm

  • 前言
  • 一、检测硬件是否支持
  • 二、安装软件
  • 三、创建/管理虚拟机
    • 1、创建存储池
    • 2、qemu创建镜像
    • 3、xml文件运行虚拟机
      • 1、范文
      • 2、xml文件创建虚机
      • 3、创建虚机
    • 4、克隆虚机
    • 5、创建快照
    • 6、脚本创建
    • VNC连接
  • 四、创建集群
    • 1、安装glusterfs
    • 2、加入集群
      • 删除节点
    • 3、 创建卷
    • 3、kvm挂载目录
    • 图形化创建
    • 五、虚拟机迁移
      • 同一宿主机内迁移
      • 不同宿主机内迁移


前言

##虚拟机开启虚拟化
在这里插入图片描述
VNC下载链接


一、检测硬件是否支持

##非零即可
root@kvm:~# egrep -c ‘(svm|vmx)/proc/cpuinfo  
##检查是否启用虚拟化
root@kvm:~# apt install cpu-checker

root@kvm:~# kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used

二、安装软件

root@kvm:~# apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst virt-manager


root@kvm:~#  systemctl start libvirtd
root@kvm:~#  systemctl enable libvirtd

root@kvm:~# usermod -aG libvirt $USER
root@kvm:~# lsmod | grep kvm
kvm_intel             368640  0
kvm                  1032192  1 kvm_intel

三、创建/管理虚拟机

1、创建存储池

##创建一个存储池来存放虚拟机的磁盘镜像文件
root@kvm:~# mkdir -p /data/kvm/pool


virsh pool-define-as --name kvm_test --type dir --target /data/kvm/pool/

virsh pool-start kvm_test

virsh pool-autostart kvm_test

2、qemu创建镜像

qemu-img create -f qcow2 /data/kvm/qcow/vm_test.qcow2 20G
1. 使用 qcow2 格式创建镜像
qcow2 是 QEMU 推荐的磁盘格式,支持动态扩展、快照和压缩。
qemu-img create -f qcow2 /data/kvm/qcow/vm_test.qcow2 20G
-f qcow2: 指定镜像格式为qcow2。
/data/kvm/qcow/vm_test.qcow2: 镜像文件保存路径及文件名。
20G: 分配给虚拟机的磁盘大小(可根据需求调整)。
2. 使用 raw 格式创建镜像
raw 格式是未压缩的磁盘格式,性能较好,但不支持快照等高级功能。
qemu-img create -f raw /data/kvm/qcow/vm_test.raw 20G

####常见 qemu-img 命令
1. 查看镜像信息
##可以使用 qemu-img info 命令查看镜像文件的详细信息:
qemu-img info /data/kvm/qcow/vm_test.qcow2
2. 转换镜像格式
##将现有镜像转换为另一种格式:
qemu-img convert -f qcow2 -O raw /data/kvm/qcow/source_image.qcow2 /data/kvm/qcow/target_image.raw
-f qcow2: 源镜像格式。
-O raw: 目标镜像格式。
/data/kvm/qcow/source_image.qcow2: 源镜像文件。
/data/kvm/qcow/target_image.raw: 目标镜像文件。
3. 创建包含快照的镜像
##通过创建一个依赖于原始镜像的快照镜像,可以节省磁盘空间:

qemu-img create -f qcow2 -b /path/to/base_image.qcow2 /path/to/snapshot_image.qcow2
-b /path/to/base_image.qcow2: 基础镜像路径。
4. 扩展镜像大小
##如果需要扩大已经创建的镜像,可以使用以下命令:

qemu-img resize /data/kvm/qcow/vm_test.qcow2 +10G
这将把镜像的大小增加10GB。
5. 启动虚拟机
##创建完镜像后,可以使用qemu-system命令启动虚拟机。例如:

qemu-system-x86_64 -hda /data/kvm/qcow/vm_test.qcow2 -m 2G -smp 2 -boot d
-hda: 指定硬盘镜像文件。
-m 2G: 分配2GB内存。
-smp 2: 分配2个虚拟CPU。
-boot d: 指定从光驱(或者ISO镜像)启动。

3、修改qcow文件

##加载 NBD 模块(如果未加载):

modprobe nbd

qemu-nbd --connect=/dev/nbd0 /data/kvm/qcow/vm_test.qcow2 
fdisk -l /dev/nbd0
mount /dev/nbd0 /mnt/

mount -o loop /dev/nbd0 /mnt/

mount -o iso /dev/nbd0 /mnt/
检查文件头和内容
如果 file 命令无法识别文件类型,使用 hexdump 或 xxd 查看文件头部分来识别文件结构:
file -s /dev/nbd0 

hexdump -C /path/to/datafile.data | head


/dev/nbd0: data

parted /dev/nbd0 print
Model: Unknown (unknown)                                                  
Disk /dev/nbd0: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags: 

root@kvm:/data/kvm/vm# sysctl -a | grep overcommit
    vm.nr_overcommit_hugepages = 0
    vm.overcommit_kbytes = 0
    vm.overcommit_memory = 0
    vm.overcommit_ratio = 50

    vm.overcommit_memory = 1

3、xml文件运行虚拟机

1、范文

<domain type='kvm'>
  <!-- 虚拟机名称 -->
  <name>example_vm</name>

  <!-- UUID是虚拟机的唯一标识符 -->
  <uuid>d759a4f4-3f3d-499e-8431-123456789abc</uuid>

  <!-- 内存配置:设置虚拟机的最大和初始内存 -->
  <memory unit='KiB'>8388608</memory> <!-- 8 GB -->
  <currentMemory unit='KiB'>8388608</currentMemory> <!-- 初始内存也是8 GB -->

  <!-- CPU配置 -->
  <vcpu placement='static'>4</vcpu> <!-- 分配4个虚拟CPU -->

  <!-- 操作系统设置 -->
  <os>
    <type arch='x86_64' machine='pc-i440fx-2.11'>hvm</type>
    <boot dev='hd'/> <!-- 从硬盘启动 -->
    <bootmenu enable='yes'/> <!-- 启用启动菜单 -->
  </os>

  <!-- 时钟设置 -->
  <clock offset='utc'>
    <timer name='rtc' tickpolicy='catchup'/>
    <timer name='pit' tickpolicy='delay'/>
    <timer name='hpet' present='no'/>
  </clock>

  <!-- CPU模式和特性 -->
  <cpu mode='host-passthrough'>
    <topology sockets='1' cores='2' threads='2'/>
    <!-- 禁用虚拟化功能SVM (AMD) -->
    <feature policy='disable' name='svm'/>
  </cpu>

  <!-- 设备设置 -->
  <devices>
    <!-- 磁盘配置 -->
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/var/lib/libvirt/images/example_vm.qcow2'/>
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </disk>

    <!-- CD-ROM驱动器 -->
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/var/lib/libvirt/images/example.iso'/>
      <target dev='hda' bus='ide'/>
      <readonly/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </disk>

    <!-- 网络接口配置 -->
    <interface type='network'>
      <mac address='52:54:00:aa:bb:cc'/>
      <source network='default'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>

    <!-- 图形设备配置 -->
    <graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0'>
      <listen type='address' address='0.0.0.0'/>
    </graphics>

    <!-- 声卡设备 -->
    <sound model='ich9'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1b' function='0x0'/>
    </sound>

    <!-- 输入设备 -->
    <input type='mouse' bus='ps2'/>
    <input type='keyboard' bus='ps2'/>

    <!-- 显卡设备 -->
    <video>
      <model type='cirrus' vram='16384' heads='1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </video>

    <!-- 串口控制台 -->
    <console type='pty'>
      <target type='serial' port='0'/>
    </console>

    <!-- 通用USB设备 -->
    <hub type='usb'/>
  </devices>

  <!-- 特权设置:如果需要,允许KVM虚拟机访问设备 -->
  <features>
    <acpi/> <!-- 启用ACPI电源管理 -->
    <apic/> <!-- 启用APIC -->
    <pae/>  <!-- 启用PAE(物理地址扩展),允许32位系统使用大于4GB的内存 -->
  </features>

  <!-- 启动时自动启动虚拟机 -->
  <on_poweroff>destroy</on_poweroff>  <!-- 电源关闭时销毁虚拟机 -->
  <on_reboot>restart</on_reboot>      <!-- 重启时自动重启虚拟机 -->
  <on_crash>restart</on_crash>        <!-- 崩溃时自动重启虚拟机 -->
</domain>

2、xml文件创建虚机

<domain type='kvm'>
  <name>vm_test</name>  
  <memory unit='KiB'>2097152</memory>  
  <vcpu placement='static'>2</vcpu>  
  <os>
    <type arch='x86_64' machine='pc-i440fx-2.11'>hvm</type>
    <boot dev='cdrom'/>
    <boot dev='hd'/>
  </os>
  <devices>
    <!-- 磁盘配置 -->
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/data/kvm/qcow/vx_test.qcow2'/>
      <target dev='vda' bus='virtio'/>
    </disk>
x
    <!-- ISO 镜像作为CD-ROM -->
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/data/kvm/image/ubuntu-22.04.4-live-server-amd64.iso'/>
      <target dev='hdc' bus='ide'/>
      <readonly/>
    </disk>

    <!-- 网络配置 -->
    <interface type='network'>
      <mac address='52:54:00:aa:bb:cc'/>
      <source network='default'/>
      <model type='virtio'/>
    </interface>

    <!-- VNC 配置 -->
    <graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0'/>
  </devices>
</domain>

qemu-img create -f qcow2 /data/kvm/qcow/vx_test.qcow2 20G
virsh define vx-test.xml 
virsh list --all
virsh start vx_test 
##设置虚拟机开机自启 
virsh autostart  vx_test 
virsh autostart --disable vx_test #取消

3、创建虚机

wget  https://mirrors.ustc.edu.cn/ubuntu-releases/22.04/ubuntu-22.04.4-live-server-amd64.iso

##创建虚拟磁盘文件:该命令创建了一个大小为 20GB 的虚拟磁盘文件,格式为 qcow2,用于后续虚拟机的存储。
qemu-img create -f qcow2 /data/kvm/qcow/image.qcow2 20G

## 创建和安装虚拟机:创建并安装了一个名为 vm_test 的虚拟机,分配了 2GB 内存、2 个虚拟 CPU、默认网络配置,使用 VNC 连接显示图形界面,并从 Ubuntu 22.04 ISO 镜像启动安装系统。
virt-install --virt-type kvm  --name vm_test   --ram 2048   --vcpus 2   --disk path=/data/kvm/qcow/image.qcow2,format=qcow2        --os-variant ubuntu22.04   --network network=default   --graphics vnc,listen=0.0.0.0   --cdrom /data/kvm/image/ubuntu-22.04.4-live-server-amd64.iso --noautoconsole

4、克隆虚机

root@kvm:/data/kvm/clone#   virt-clone -o vm_test -f /data/kvm/clone/vm_test.qcow2  --name vm_test_clone

ERROR    Domain to clone must be shutoff.

Clone 'vm_test_clone' created successfully.

 参数说明:
 -o:指定被克隆虚拟机
 -n:克隆机名称
 -f:指定克隆机文件位置与名称
 
root@kvm:/data/kvm/clone# virsh list --all
 Id   Name            State
--------------------------------
 1    vm_test2        running
 -    vm_test         shut off
 -    vm_test_clone   shut off

## 修改uuid
root@kvm:/data/kvm/clone# virsh edit vm_test_clone 

5、创建快照

root@kvm:/data/kvm/clone# virsh snapshot-create-as vm_test2 vm_test-snap2
Domain snapshot vm_test-snap2 created


root@kvm:/data/kvm/clone# virsh snapshot-list vm_test2 
 Name            Creation Time               State
------------------------------------------------------
 vm_test-snap2   2024-09-12 03:30:54 +0000   running


root@kvm:/data/kvm/clone# virsh snapshot-info vm_test2 vm_test-snap2 
Name:           vm_test-snap2
Domain:         vm_test2
Current:        yes
State:          running
Location:       internal
Parent:         -
Children:       0
Descendants:    0
Metadata:       yes

6、脚本创建

#!/bin/bash

# 需要指定的变量
VM_NAME=$1  # 虚拟机名称
OS_TYPE=$2  # 操作系统类型 (ubuntu, centos, win)
DISK_SIZE=20  # 虚拟机磁盘大小 (GB)
RAM_SIZE=2048  # 虚拟机内存大小 (MB)
VCPUS=2  # 虚拟机CPU核数
CLONE_NAME=$3  # 如果进行克隆的虚拟机名称

# 检查是否提供必要的参数
if [ -z "$VM_NAME" ] || [ -z "$OS_TYPE" ]; then
    echo "Usage: $0 <vm_name> <os_type: ubuntu|centos|win> [clone_name]"
    exit 1
fi

# 设置系统对应的os-variant参数
case $OS_TYPE in
    ubuntu)
        OS_VARIANT="ubuntu20.04"
        ;;
    centos)
        OS_VARIANT="centos8"
        ;;
    win)
        OS_VARIANT="win10"
        ;;
    *)
        echo "Invalid OS type! Choose from ubuntu, centos, win."
        exit 1
        ;;
esac

# 磁盘文件路径
DISK_PATH="/var/lib/libvirt/images/${VM_NAME}.qcow2"

# 镜像文件路径(可根据实际环境修改)
ISO_PATH=""
case $OS_TYPE in
    ubuntu)
        ISO_PATH="/path/to/ubuntu.iso"
        ;;
    centos)
        ISO_PATH="/path/to/centos.iso"
        ;;
    win)
        ISO_PATH="/path/to/windows.iso"
        ;;
esac

# 创建虚拟机磁盘文件
echo "Creating virtual machine disk..."
qemu-img create -f qcow2 $DISK_PATH ${DISK_SIZE}G

# 创建虚拟机
echo "Installing virtual machine..."
virt-install \
  --name $VM_NAME \
  --ram $RAM_SIZE \
  --vcpus $VCPUS \
  --disk path=$DISK_PATH,format=qcow2,size=$DISK_SIZE \
  --os-variant $OS_VARIANT \
  --network network=default \
  --graphics vnc \
  --cdrom $ISO_PATH \
  --noautoconsole

# 检查是否需要克隆虚拟机
if [ ! -z "$CLONE_NAME" ]; then
    echo "Cloning virtual machine..."
    virt-clone --original $VM_NAME --name $CLONE_NAME --file /var/lib/libvirt/images/${CLONE_NAME}.qcow2

    # 生成新的UUID并修改克隆虚拟机的UUID
    NEW_UUID=$(uuidgen)
    echo "Updating UUID for the cloned virtual machine..."
    virsh dumpxml $CLONE_NAME > ${CLONE_NAME}.xml
    sed -i "s/<uuid>.*<\/uuid>/<uuid>${NEW_UUID}<\/uuid>/" ${CLONE_NAME}.xml
    virsh define ${CLONE_NAME}.xml
    rm -f ${CLONE_NAME}.xml
    echo "Cloned VM: $CLONE_NAME with new UUID: $NEW_UUID"
fi

echo "Virtual machine installation completed."

# 创建虚拟机(如Ubuntu)
./virsh-install.sh my_vm ubuntu

# 创建虚拟机并克隆(如CentOS)
./virsh-install.sh my_vm centos my_vm_clone

VNC连接

vnc连接:主机为本机ip。默认端口5900,依次加一
安装好系统后可本机ssh连接。
在这里插入图片描述
在这里插入图片描述

四、创建集群

1、安装glusterfs

##kvm及所有节点hosts文件修改
root@vm2:~# cat /etc/hosts
...
192.168.220.88     vm2
192.168.220.99     vm3


apt install glusterfs-*
glusterfs -V

root@vm3:~# systemctl start glusterd.service 
root@vm3:~# systemctl enable glusterd.service 

2、加入集群

##单节点上执行,添加其他节点到集群
root@vm2:~# gluster peer probe vm3
peer probe: success
##vm2上验证
root@vm2:~# gluster peer status
Number of Peers: 1

Hostname: vm3
Uuid: 67eed80b-be06-4564-ae16-adebfc079709
State: Peer in Cluster (Connected)

删除节点

root@vm2:~# gluster peer detach kvm

3、 创建卷

##所有节点创建目录
mkdir /data
## 直接用根分区做存储卷,需加force
##创建一个名为models的存储卷、2副本
root@vm2:~# gluster volume create gfsv replica 2 vm2:/data vm3:/data force

volume create: gfsv: success: please start the volume to access data
root@vm2:~# gluster volume info models
 
Volume Name: gfsv
Type: Replicate
Volume ID: a6d80c21-deb7-44c7-abf4-e2a70060fa64
Status: Created
Snapshot Count: 0
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: vm2:/data
Brick2: vm3:/data
Options Reconfigured:
cluster.granular-entry-heal: on
storage.fips-mode-rchecksum: on
transport.address-family: inet
nfs.disable: on
performance.client-io-threads: off
##启用卷
root@vm2:~#  gluster volume start gfsv
##停止删除卷
root@vm2:~#  gluster volume stop  gfsv
root@vm2:~#  gluster volume delete  gfsv
##查看卷状态
root@vm2:~# gluster volume status
Status of volume: models
Gluster process                             TCP Port  RDMA Port  Online  Pid
------------------------------------------------------------------------------
Brick vm2:/data                             54529     0          Y       6158 
Brick vm3:/data                             52302     0          Y       3377 
Self-heal Daemon on localhost               N/A       N/A        Y       6175 
Self-heal Daemon on vm3                     N/A       N/A        Y       3394 
 
Task Status of Volume models
------------------------------------------------------------------------------
There are no active volume tasks
 

3、kvm挂载目录

root@kvm:/data/kvm# mount.glusterfs vm2:models /kvmdata/

root@kvm:/data/kvm# echo "vm2:models /kvmdata/ glusterfs defaults,_netdev 0 0" >> /etc/fstab 
root@kvm:/data/kvm# mount -a

root@kvm:/data/kvm# df -Th | grep gluster
vm2:models                        fuse.glusterfs   57G   18G   37G  33% /kvmdata

root@kvm:/data/kvm# mkdir /kvmdata/{data,iso}

##创建存储池
root@kvm:/data/kvm# virsh pool-define-as --name iso --type dir --target /kvmdata/iso/Pool iso defined

root@kvm:/data/kvm# virsh pool-define-as --name data --type dir --target /kvmdata/data/
Pool data defined

图形化创建

virt-manager

五、虚拟机迁移

同一宿主机内迁移

##查看虚拟机所有磁盘文件
##适用情况:磁盘满或新加数据盘的情况下从/aaa目录迁移到/bbb目录

root@kvm:/data/kvm# virsh domblklist vm_test
 Target   Source
--------------------------------------
 vda      /data/kvm/qcow/image.qcow2
 sda  
##直接迁移镜像:例如
root@kvm:/data/kvm# mv /data/kvm/qcow/image.qcow2 /kvmdata/data/
##停止虚拟机
root@kvm:/data/kvm# virsh shutdown vm_test 
Domain 'vm_test' is being shutdown
##编辑
root@kvm:/data/kvm# virsh edit vm_test
Domain 'vm_test' XML configuration edited.

root@kvm:/data/kvm# virsh start vm_test
Domain 'vm_test' started

root@kvm:/data/kvm# virsh domblklist vm_test
 Target   Source
-------------------------------------
 vda      /kvmdata/data/image.qcow2
 sda      -

不同宿主机内迁移

virsh migrate方法
virsh migrate只能迁移配置文件,磁盘镜像文件还要我们手工完成。

在kvm2上
virsh undefine vm_test    //只删除了配置文件
rm /data/kvm/qcow/image.qcow2 -i

切换到kvm1,88为kvm2
virsh migrate --domain vm_test --desturi qemu+ssh://root@192.168.220.66/system --offline --persistent

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2130833.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

EasyExcel 动态表头+表头合并

EasyExcel 动态表头表头合并 ​ 最终呈现效果&#xff1a; ​ 以前对EasyExcel的使用都是一个实体类字段对应一列&#xff0c;通过以下来一一对应即可。 ExcelProperty(index 0,value "姓名" ) private String xm;​ 所以此中出现的两个问题&#xff1a; 表头合并…

【LeetCode每日一题】——LCR 168.丑数

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目注意】六【题目示例】七【题目提示】八【解题思路】九【时间频度】十【代码实现】十一【提交结果】 一【题目类别】 优先队列 二【题目难度】 中等 三【题目编号】 LCR 168.丑数 四【题目描述…

多输入多输出 | Matlab实现SO-BP蛇群算法优化BP神经网络多输入多输出预测

多输入多输出 | Matlab实现SO-BP蛇群算法优化BP神经网络多输入多输出预测 目录 多输入多输出 | Matlab实现SO-BP蛇群算法优化BP神经网络多输入多输出预测预测效果基本介绍程序设计往期精彩参考资料 预测效果 基本介绍 多输入多输出 | Matlab实现SO-BP蛇群算法优化BP神经网络多输…

1688竞品分析这样做,超越电商同行,流量想不爆都难!

竞品分析最大的意义就是知己知彼&#xff01;清楚自己所在的位置&#xff0c;取长补短&#xff0c;确定下一阶段打法和方向。那么该怎么做竞品分析&#xff1f; 我们利用店雷达1688工具进行实操讲解&#xff0c;分别从竞品目标、价格机制、流量结构&#xff0c;3个方面教你迅速…

uniapp 做一个查看图片的组件,图片可缩放移动

因为是手机端&#xff0c;所以需要触摸可移动&#xff0c;双指放大缩小。 首先在components里建个组件 查看图片使用 uni-popup 弹窗 要注意 transform的translate和scale属性在同一标签上不会一起生效 移动就根据触摸效果进行偏移图片 缩放就根据双指距离的变大变小进行缩…

前端练习小项目 —— 养一只电子蜘蛛

前言&#xff1a;在学习完JavaScript之后&#xff0c;我们就可以使用JavaScript来实现一下好玩的效果了&#xff0c;本篇文章讲解的是如何纯使用JavaScript来实现一个网页中的电子蜘蛛。 ✨✨✨这里是秋刀鱼不做梦的BLOG ✨✨✨想要了解更多内容可以访问我的主页秋刀鱼不做梦-C…

2.3.1 协程设计原理与汇编实现coroutine

LINUX 精通 7 day23 20240908 晚19&#xff1a;25 - 21:30 课程链接地址 2.3.1 协程设计原理与汇编实现coroutine 目的 协程不是某种语言特有的&#xff0c;lua&#xff0c;go都有 ntyco 是king老师自己写的 原语操作&#xff1a;“原语操作”通常指的是在编程或计算机科学中…

Android 12系统源码_窗口管理(八)WindowConfiguration的作用

前言 在Android系统中WindowConfiguration这个类用于管理与窗口相关的设置&#xff0c;该类存储了当前窗口的显示区域、屏幕的旋转方向、窗口模式等参数&#xff0c;应用程序通过该类提供的信息可以更好的适配不同的屏幕布局和窗口环境&#xff0c;以提高用户体验。 一、类定…

性能测试的复习2-jmeter的搭建、使用、参数化

通过网盘分享的文件&#xff1a;性能测试共享文件 链接: https://pan.baidu.com/s/1A4Nc8C5Xp6qxQ5QFtecK8g?pwds73c 提取码: s73c 1、性能测试工具 2、jmeter环境搭建 3、jmeter的基本使用 4、jmeter的参数化

strncpy函数的使用和模拟实现

目录 1.头文件 2.strncpy函数功能 2.1情况二&#xff1a; 3.strncpy函数&#xff08;模拟实现&#xff09; 方源一把抓住VS2022&#xff0c;催动春秋产的气息&#xff0c;顷刻炼化&#xff01; 1.头文件 strncpy函数的使用需要包括头文件<string.h> #include<string…

Windows系统好用软件推荐

uTools uTools官网&#xff1a;https://u.tools/download/ 功能介绍&#xff1a; 内置许多有用的插件、快速打开应用、复制图片保存等

4457E/4457F/4457G/4457K数字示波器

KEYSIGHT是德 4457E/4457F/4457G/4457K数字示波器 4457系列数字示波器共4个产品型号&#xff0c;产品带宽从1GHz到4GHz&#xff0c;采样率10GSa/s、20GSa/s&#xff0c;垂直分辨率8bit&#xff0c;存储深度2Gpts&#xff0c;最快波形捕获率120万个波形/秒&#xff0c;独创的An…

LIN帧显隐性电平和字节传输顺序理解

&#x1f345; 我是蚂蚁小兵&#xff0c;专注于车载诊断领域&#xff0c;尤其擅长于对CANoe工具的使用&#x1f345; 寻找组织 &#xff0c;答疑解惑&#xff0c;摸鱼聊天&#xff0c;博客源码&#xff0c;点击加入&#x1f449;【相亲相爱一家人】&#x1f345; 玩转CANoe&…

干耳屎硬掏不出来怎么办?质量最好的可视挖耳勺推荐

干耳朵的朋友都会有这样子的困扰&#xff0c;耳朵中的耳屎太硬挖不出来。用铁耳勺去挖会疼&#xff0c;还容易因为操作不当弄伤耳膜。而用棉签掏耳&#xff0c;只有越推越进去。所以当耳屎弄不出来是可以用专业的工具来挖取。市面上的可视挖耳勺通过内窥镜观察耳道中的情况。但…

电脑文件被删如何找回?选它,文件恢复又快又全面!

在我们的日常工作和生活中&#xff0c;文件是无比重要的存在。它可能是您精心撰写的报告&#xff0c;可能是珍贵的照片回忆&#xff0c;也可能是多年积累的工作资料。然而&#xff0c;有时一个不小心&#xff0c;文件可能就被我们删除了&#xff0c;那种焦急和无奈想必您也曾体…

解锁阿尔茨海默病(AD)靶点密码,开启靶向治疗新篇章

前 言&#xff1a; 阿尔茨海默病&#xff08;AD&#xff09;是一种严重的神经退行性疾病&#xff0c;多发于高龄人群&#xff0c;主要表现为记忆、思维、分析判断、视空间辨认、情绪等障碍。从实验室到临床应用的过程充满挑战。阿尔茨海默症新型疗法的开发主要聚焦于靶向Aβ、…

Percona Toolkit 神器全攻略(性能类)

Percona Toolkit 神器全攻略&#xff08;性能类&#xff09; Percona Toolkit 神器全攻略系列共八篇&#xff0c;前文回顾&#xff1a; 前文回顾Percona Toolkit 神器全攻略Percona Toolkit 神器全攻略&#xff08;实用类&#xff09;Percona Toolkit 神器全攻略&#xff08;配…

STM32+FATFS+SD卡+RTC(生成.CSV格式文件)

一、简介 实验目的&#xff1a;在SD卡上挂载文件系统&#xff0c;实时记录压力传感器采集到的数据&#xff1b;且在表格第一排记录采集时间&#xff1b; 因为前面文章包含了除RTC之外的所有的代码&#xff0c;此文章只放RTC代码。 二、工程源码 RTC.c #include "sys.h…

人工智能|集成学习——混合专家模型 (MoE)

随着 Mixtral 8x7B (announcement, model card) 的推出&#xff0c;一种称为混合专家模型 (Mixed Expert Models&#xff0c;简称 MoEs) 的 Transformer 模型在开源人工智能社区引起了广泛关注。在本篇博文中&#xff0c;我们将深入探讨 MoEs 的核心组件、训练方法&#xff0c;…

arcgisPro绘制平行线、垂直线段

1、绘制一条线 2、点击【创建要素】按钮&#xff0c;选择线&#xff0c;点一个点后&#xff0c;将鼠标移至需要对其的线上&#xff0c;并右击&#xff0c;选择【平行】 3、移动一段距离后&#xff0c;完成绘制&#xff0c;可得到一条平行线 4、得到平行线 5、绘制垂直线&#x…