QEMU/KVM PCI Passthrough(i350) & DPDK 网络性能测试

2023-11-11

QEMU/KVM PCI Passthrough(i350) & DPDK 网络性能测试

硬件要求:

  • CPU必须支持硬件虚拟化(Intel VT-d or AMD-Vi) 和 IOMMU

在这里插入图片描述
原图链接

主机配置

设置iommu

IOMMU kernel 配置, 确保以下配置项已启用:

Device Drivers --->
  [*] IOMMU Hardware Support --->
            Generic IOMMU Pagetable Support ----
      [*]   AMD IOMMU support
      <*>     AMD IOMMU Version 2 driver
      [*]   Support for Intel IOMMU using DMA Remapping Devices
      [*]     Support for Shared Virtual Memory with Intel IOMMU
      [*]     Enable Intel DMA Remapping Devices by default
      [*]   Support for Interrupt Remapping

IOMMU kernel 启动参数配置:

  • 对于 Intel CPU(VT-d),使用 intel_iommu=on
  • 对于 AMD CPU(AMD-Vi),使用 amd_iommu=on
$ sudo uname -a
Linux fc34 5.13.14-200.fc34.x86_64 #1 SMP Fri Sep 3 15:33:01 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
$ sudo grubby --update-kernel=ALL --args="iommu=pt intel_iommu=on default_hugepagesz=1G"

reboot 后确认 IOMMU 已启用:

$  dmesg  |grep -i -e DMAR -e IOMMU
[    0.000000] Command line: BOOT_IMAGE=(hd0,msdos1)/vmlinuz-5.13.14-200.fc34.x86_64 root=/dev/mapper/fedora_fedora-root ro rd.lvm.lv=fedora_fedora/root iommu=pt intel_iommu=on default_hugepagesz=1G intel_idle.max_cstate=0 processor.max_cstate=0 nohz=on rcu_nocb_poll audit=0 nosoftlockup nospectre_v1 nospectre_v2 spectre_v2=off nospec_store_bypass_disable no_stf_barrier nopti ssbd=off l1tf=off tsx=off tsx_async_abort=off mds=off srbds=off
[    0.013021] ACPI: DMAR 0x000000007EF6A000 0000D8 (v01 INSYDE Romley   00000001 ACPI 00000001)
[    0.013053] ACPI: Reserving DMAR table memory at [mem 0x7ef6a000-0x7ef6a0d7]
[    0.257029] Kernel command line: BOOT_IMAGE=(hd0,msdos1)/vmlinuz-5.13.14-200.fc34.x86_64 root=/dev/mapper/fedora_fedora-root ro rd.lvm.lv=fedora_fedora/root iommu=pt intel_iommu=on default_hugepagesz=1G intel_idle.max_cstate=0 processor.max_cstate=0 nohz=on rcu_nocb_poll audit=0 nosoftlockup nospectre_v1 nospectre_v2 spectre_v2=off nospec_store_bypass_disable no_stf_barrier nopti ssbd=off l1tf=off tsx=off tsx_async_abort=off mds=off srbds=off
[    0.257134] DMAR: IOMMU enabled
[    0.469532] DMAR: Host address width 46
[    0.469637] DMAR: DRHD base: 0x000000fbffe000 flags: 0x0
[    0.469750] DMAR: dmar0: reg_base_addr fbffe000 ver 1:0 cap d2078c106f0462 ecap f020fe
[    0.469886] DMAR: DRHD base: 0x000000ebffc000 flags: 0x1
[    0.469997] DMAR: dmar1: reg_base_addr ebffc000 ver 1:0 cap d2078c106f0462 ecap f020fe
[    0.470132] DMAR: RMRR base: 0x0000007ea8c000 end: 0x0000007ea94fff
[    0.470246] DMAR-IR: IOAPIC id 10 under DRHD base  0xfbffe000 IOMMU 0
[    0.470357] DMAR-IR: IOAPIC id 8 under DRHD base  0xebffc000 IOMMU 1
[    0.470481] DMAR-IR: IOAPIC id 9 under DRHD base  0xebffc000 IOMMU 1
[    0.470592] DMAR-IR: HPET id 0 under DRHD base 0xebffc000
[    0.470700] DMAR-IR: Queued invalidation will be enabled to support x2apic and Intr-remapping.
[    0.471512] DMAR-IR: Enabled IRQ remapping in x2apic mode
[    1.374638] iommu: Default domain type: Passthrough (set via kernel command line)
[    1.475745] DMAR: No ATSR found
[    1.475855] DMAR: No SATC found
[    1.475862] DMAR: dmar0: Using Queued invalidation
[    1.476206] DMAR: dmar1: Using Queued invalidation
[    1.476483] pci 0000:00:00.0: Adding to iommu group 0
[    1.476660] pci 0000:00:01.0: Adding to iommu group 1

隔离 i350 网卡

确认 kernel 配置中 VFIO 选项都已启用:

Device Drivers --->
  <M> VFIO Non-Privileged userpsace driver framework --->
      [*]   VFIO No-IOMMU support ----
      <M>   VFIO support for PCI devices
      [*]     VFIO PCI support for VGA devices
      < >   Mediated device driver framework

注:
fedora 默认不开启 VFIO No-IOMMU support.

配置 hugepages,安装 dpdk 并绑定 i350 网卡到 vfio-pci 驱动:

$ sudo dnf install dpdk dpdk-tools -y
dpdk-20.11-1.fc34.x86_64
dpdk-tools-20.11-1.fc34.x86_64
$ sudo echo 16 > /proc/sys/vm/nr_hugepages
$ sudo modprobe vfio-pci 
$ sudo dpdk-hugepages.py -s
Node Pages Size Total
0    8     1Gb    8Gb
1    8     1Gb    8Gb

Hugepages mounted on /dev/hugepages
$ sudo dpdk-devbind.py -b vfio-pci 02:00.3
$ sudo dpdk-devbind.py -s

Network devices using DPDK-compatible driver
============================================
0000:02:00.3 'I350 Gigabit Network Connection 1521' drv=vfio-pci unused=igb

Network devices using kernel driver
===================================
0000:02:00.0 'I350 Gigabit Network Connection 1521' if=eno1 drv=igb unused=vfio-pci *Active*
0000:05:00.0 '82599ES 10-Gigabit SFI/SFP+ Network Connection 10fb' if=enp5s0f0 drv=ixgbe unused=vfio-pci 
0000:05:00.1 '82599ES 10-Gigabit SFI/SFP+ Network Connection 10fb' if=enp5s0f1 drv=ixgbe unused=vfio-pci 

调整 CPU 模式为 performance 模式:

$ sudo cpupower frequency-set -g performance

QEMU/KVM

由主机PCI 网卡直接分配(PCI Passthrough):
-device vfio-pci,host=02:00.3
使用主机 hugepages:
-m 8G -object memory-backend-file,id=mem,size=8G,mem-path=/dev/hugepages,share=on \ -mem-prealloc -numa node,memdev=mem

$ sudo qemu-kvm -version
QEMU emulator version 3.0.1 (qemu-3.0.1-4.fc29)
Copyright (c) 2003-2017 Fabrice Bellard and the QEMU Project developers

$ sudo qemu-system-x86_64 -M q35,accel=kvm,kernel-irqchip=split \
	-nographic --enable-kvm \
	-rtc base=localtime,clock=host \
	-m 8G -object memory-backend-file,id=mem,size=8G,mem-path=/dev/hugepages,share=on \
	-mem-prealloc -numa node,memdev=mem -overcommit mem-lock=on \
	-smp 8 -cpu host \
	-device intel-iommu,intremap=on,device-iotlb=on \
	-device ioh3420,id=pcie.1,chassis=1 -no-hpet \
	-netdev tap,id=net0,vhostforce,queues=4 \
	-device virtio-net-pci,bus=pcie.1,netdev=net0,disable-legacy=on,disable-modern=off,iommu_platform=on,ats=on,vectors=10 \
	-device vfio-pci,host=02:00.3 \
	centos8-disk.qcow2

配置虚拟机

kernel 启动参数:

$ sudo grubby --update-kernel=ALL --args="default_hugepagesz=1G"

dpdk & hugepages & vfio 配置:

$ sudo echo 2 > /proc/sys/vm/nr_hugepages
$ sudo modprobe vfio enable_unsafe_noiommu_mode=1
$ sudo modprobe vfio-pci
$ sudo dpdk-devbind -b vfio-pci 00:03.0
$ sudo dpdk-hugepages.py -s
Node Pages Size Total
0    2     1Gb    2Gb

Hugepages mounted on /dev/hugepages

$ sudo dpdk-devbind.py  -s

Network devices using DPDK-compatible driver
============================================
0000:00:03.0 'I350 Gigabit Network Connection 1521' drv=vfio-pci unused=igb

Network devices using kernel driver
===================================
0000:01:00.0 'Virtio network device 1041' if=eth0 drv=virtio-pci unused=vfio-pci *Active*

$ sudo cpupower frequency-set -g performance

虚拟机 rxonly 测试

主机 testpmd txonly 发包

$ sudo dpdk-testpmd  -c 0xfc -m 4096 -a 02:00.3 -n 2 \
	-- -i --rxd=1024 --txd=1024 \
	--rxq=4 --txq=4 --nb-cores=4 \
	--forward-mode=txonly \
	--txpkts=64 \
	--mlockall -a 
testpmd> show port stats all

  ######################## NIC statistics for port 0  ########################
  RX-packets: 0          RX-missed: 0          RX-bytes:  0
  RX-errors: 0
  RX-nombuf:  0         
  TX-packets: 25246875   TX-errors: 0          TX-bytes:  1615800204

  Throughput (since last show)
  Rx-pps:            0          Rx-bps:            0
  Tx-pps:      1420592          Tx-bps:    727342616
  ############################################################################
testpmd> quit

虚拟机 testpmd rxonly 收包:

dpdk-testpmd -c 0xfc -m 2048 -a 00:03.0 -- -i -a  \
	--rxq=1 --txq=1 --nb-cores=4 \
	--rxd=2048 --txd=2048 --enable-rx-cksum --mlockall \
	--forward-mode=rxonly 
testpmd> show port stats all

  ######################## NIC statistics for port 0  ########################
  RX-packets: 327892831  RX-missed: 14493499   RX-bytes:  20970135168
  RX-errors: 0
  RX-nombuf:  0         
  TX-packets: 1          TX-errors: 0          TX-bytes:  60

  Throughput (since last show)
  Rx-pps:      1420609          Rx-bps:    727351720
  Tx-pps:            0          Tx-bps:            0
  ############################################################################

虚拟机 txonly 测试

虚拟机 testpmd txonly 发包:

$ sudo dpdk-testpmd -c 0xfc -m 2048 -a 00:03.0 -- -i -a  \
	--rxq=1 --txq=1 --nb-cores=4 \
	--rxd=2048 --txd=2048 --enable-rx-cksum --mlockall \
	--forward-mode=txonly --txpkts=64
testpmd> show port stats  all

  ######################## NIC statistics for port 0  ########################
  RX-packets: 0          RX-missed: 0          RX-bytes:  0
  RX-errors: 0
  RX-nombuf:  0         
  TX-packets: 5665824    TX-errors: 0          TX-bytes:  362613416

  Throughput (since last show)
  Rx-pps:            0          Rx-bps:            0
  Tx-pps:      1420607          Tx-bps:    727350144
  ############################################################################
testpmd> 

主机 testpmd rxonly 收包:

$ sudo dpdk-testpmd  -c 0xfc -m 4096 -a 02:00.3 -n 2  \
	-- -i --rxd=2048 --txd=2048 \
	--rxq=4 --txq=4 --nb-cores=4 \
	--forward-mode=rxonly --mlockall -a 
testpmd> show port stats all

  ######################## NIC statistics for port 0  ########################
  RX-packets: 34979352   RX-missed: 0          RX-bytes:  2238678868
  RX-errors: 0
  RX-nombuf:  0         
  TX-packets: 0          TX-errors: 0          TX-bytes:  0

  Throughput (since last show)
  Rx-pps:      1420598          Rx-bps:    727346200
  Tx-pps:            0          Tx-bps:            0
  ############################################################################
testpmd> 

wirespeed

最终测试结果RX/TX都可达到千兆网络 64 字节小包线速.
CPU:

$ sudo lscpu 
[root@centos-guest ~]# lscpu 
Architecture:        x86_64
CPU op-mode(s):      32-bit, 64-bit
Byte Order:          Little Endian
CPU(s):              8
On-line CPU(s) list: 0-7
Thread(s) per core:  1
Core(s) per socket:  1
Socket(s):           8
NUMA node(s):        1
Vendor ID:           GenuineIntel
BIOS Vendor ID:      QEMU
CPU family:          6
Model:               45
Model name:          Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz
BIOS Model name:     pc-q35-6.1
Stepping:            7
CPU MHz:             2599.998
BogoMIPS:            5199.99
Virtualization:      VT-x
Hypervisor vendor:   KVM
Virtualization type: full
L1d cache:           32K
L1i cache:           32K
L2 cache:            4096K
L3 cache:            16384K
NUMA node0 CPU(s):   0-7
Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc archs
[root@centos-guest ~]# 

guest rxonly:

testpmd> show port stats all

  ######################## NIC statistics for port 0  ########################
  RX-packets: 0          RX-missed: 0          RX-bytes:  0
  RX-errors: 0
  RX-nombuf:  0         
  TX-packets: 239624814  TX-errors: 0          TX-bytes:  14377489160

  Throughput (since last show)
  Rx-pps:            0          Rx-bps:            0
  Tx-pps:      1488316          Tx-bps:    714392640
  ############################################################################
testpmd> 

guest txonly:

testpmd> show port stats all

  ######################## NIC statistics for port 0  ########################
  RX-packets: 125837569  RX-missed: 0          RX-bytes:  7550254396
  RX-errors: 1
  RX-nombuf:  0         
  TX-packets: 0          TX-errors: 0          TX-bytes:  0

  Throughput (since last show)
  Rx-pps:      1488207          Rx-bps:    714339808
  Tx-pps:            0          Tx-bps:            0
  ############################################################################
testpmd> 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

QEMU/KVM PCI Passthrough(i350) & DPDK 网络性能测试 的相关文章

  • 一次DPDK-L3FWD-ACL的问题排查

    其实说起来不是什么大问题 xff0c 所有的配置按照下面这个来的 包括写入arp和配置默认路由 xff0c 不过我用的单文件那个l3fwd acl https blog csdn net sinat 20184565 article det
  • DPDK pdump抓包说明

    一 xff0e 环境与编译 pdump库是在16 07版本引入的 xff0c 提供了一个抓包调试功能 在 RTE SDK app目录下就有一个dpdk pdump的工具 配置这个这个工具可以用于抓取指定接口 队列的数据包 1 1 库及依赖
  • testpmd csum engine 测试 checksum hw offload

    dpdk版本 xff1a 网卡 xff1a intel E810 测试拓扑如下 xff1a root 64 usr share jmnd sy admin2 0 bin testpmd l 3 5 n 4 a ec 01 1 a ec 09
  • OVS+DPDK

    DPDK简介 DPDK是X86平台报文快速处理的库和驱动的集合 xff0c 不是网络协议栈 xff0c 不提供二层 xff0c 三层转发功能 xff0c 不具备防火墙ACL功能 xff0c 但通过DPDK可以轻松的开发出上述功能 DPDK的
  • ubuntu20 编译dpdk错误 -Werror=address-of-packed-member

    0x0 在ubuntu20上编译dpdk 18 11报错 xff0c gcc 版本为9 3 0 xff0c 报错如下 xff1a error converting a packed const struct ether addr point
  • 虚拟机支持本地nvme ssd

    提起存储都是血泪史 不知道丢了多少数据 脑子首先想到的就是 你说啥 洗脑神曲 我就像那个大妈一样 千万个问号 hdd是啥 ssd又是啥 mbr是啥 gpt又是啥 primary partion是啥 logical partion又是啥 sa
  • 网络性能测试工具:iperf3

    一 iperf3简介 iperf3是一个网络性能测试工具 iperf3下载地址 iperf可以测试TCP和UDP带宽质量 iperf可以测量最大TCP带宽 具有多种参数和UDP特性 iperf可以报告带宽 延迟抖动和数据包丢失 iperf3
  • docker存储管理及实例

    一 Docker存储概念 1 容器本地存储与Docke存储驱动 容器本地存储 每个容器都被自动分配了内部存储 即容器本地存储 采用的是联合文件系统 通过存储驱动进行管理 存储驱动 控制镜像和容器在 docker 主机上的存储和管理方式 容器
  • openssl生成椭圆曲线的私钥是如何做到每次不同的?

    目录 例子 排查 随机算法 小结 例子 生成一个私钥只需要3步 1 获得指定曲线的group 如比特币的secp256k1 2 group和key绑定 3 用key来生成私钥 先上一段代码例子 key1 EC KEY new if key1
  • pktgen网络测试工具介绍

    pktgen是一款网络测试工具 可以用于压力测试 性能测试 负载均衡测试等方面 它使用Lua脚本来生成和发送数据包 并且支持多线程处理 pktgen可以在Linux系统上运行 支持多种协议和数据包类型 如TCP UDP ICMP ARP等
  • 网络性能评估

    在Linux中常见的网络性能指标如下 l 带宽 表示链路的最大传输速率 单位是b s 比特 秒 在位服务器选网卡时 带宽就是最核心的参考指标 常用的带宽有1000M 10G 40G 100G等 网络带宽测试 测试的不是带宽 而是网络吞吐量
  • TCP参数参数调优

    前言 TCP 性能的提升不仅考察 TCP 的理论知识 还考察了对于操心系统提供的内核参数的理解与应用 TCP 协议是由操作系统实现 所以操作系统提供了不少调节 TCP 的参数 如何正确有效的使用这些参数 来提高 TCP 性能是一个不那么简单
  • TCP/IP 网络设备与基础概念

    本文目的在于按照自己的理解 解释清楚网络中的一些基本概念 以及支撑概念落地的网络设备的工作原理 从而解决网络联通性问题 以及为定量分析网络性能问题打基础 如有错漏 欢迎指正 什么是 WAN vs LAN 什么是子网 网关 LAN vs 子网
  • DPDK+Pktgen 高速发包测试

    Pktgen概述 Pktgen Packet Gen erator 是一个基于DPDK的软件框架 发包速率可达线速 提供运行时管理 端口实时测量 可以控制 UDP TCP ARP ICMP GRE MPLS and Queue in Que
  • DPDK-流分类与多队列

    1 前言 多队列与流分类技术基本被应用到所有DPDK网关类项目中 比如开源的DPVS 美团的四层网关等等 利用多队列及分流技术可以使得网卡更好地与多核处理器 多任务系统配合 从而达到更高效IO处理的目的 这章节以英特尔的网卡为例 介绍多队列
  • DPDK — 安装部署

    1 基础环境 1 1 硬件配置 1 2 操作系统要求 2 测试环境编译测试过程 2 1 升级GCC版本至GCC 7 3 0 步骤1 升级GCC依赖包设置 编译安装gmp cd home tar xvf home gmp 6 1 2 tar
  • LVS的原理

    一 LVS的介绍 linux virtual server简称LVS Internet的快速增长使多媒体网络服务器面对的访问数量快速增加 服务器需要具备提供大量并发访问服务的能力 因此对于大负载的服务器来讲 CPU I O处理能力很快会成为
  • DPDK pdump 无法热插拔添加设备

    我正在尝试使用 dpdk pdump 从 dpdk 控制下的 NIC 捕获 tx 数据包 Setup DPDK 18 11 4 In config common base CONFIG RTE LIBRTE PMD PCAP y and C
  • 您可以以非 root 用户身份在非特权容器中运行 DPDK 吗?

    我正在尝试在非特权 Docker 容器中运行 DPDK 虽然我可以限制容器的权限并将容器指定为非特权容器 但我仍然需要以 root 身份运行 dpdk 应用程序 例如 testpmd 我还可以以非 root 身份运行容器并使用 sudo 启
  • ubuntu 18.04 中 dpdk 和 ovs 上的 testpmd 出现问题

    我有一个 X520 SR2 10G 网卡 我将用它来创建 2 个使用 dpdk 编译的 OpenvSwitch 虚拟接口 从 ubuntu 18 04 的存储库安装 并使用 testpmd 测试这个虚拟接口 我做了以下工作 创建桥梁 ovs

随机推荐

  • QT从入门到实战x篇_01_如何在qtcreator中创建一个程序?(MSVC编译器)

    1 按照如下顺序选择 我这里没有选择console的是因为我只是自己创建界面 不需要控制台的出现 2 命名及选择地址 选择下一步 3 选择基类 是否需要系统自动生成ui文件 基类中有三种选项分别为QWideget QMainWindow Q
  • Linux三级 学习笔记(二)计算机体系结构与操作系统-操作系统

    1 4 操作系统的基本概念 1 4 1 操作系统的定义和作用 操作系统的作用可以从用户和系统俩个不同角度来看 用户视角 系统视角 1 用户视角 操作系统为用户提供的服务有 程序开发 程序运行 I O设备访问 文件访问 系统资源访问 错误检测
  • App 抓包提示网络异常怎么破?

    背景 当你测试 App 的时候 想要通过 Fiddler Charles 等工具抓包看下 https 请求的数据情况 发现大部分的 App 都提示网络异常 无数据等等信息 以 贝壳找房 为例 Fiddler 中看到的请求是这样的 你可能开始
  • 已安装 MySQL,但执行 mysql 命令提示命令找不到!

    因个人需要 在阿里购买了一个轻量应用服务器 服务器配好 LAMP 环境 但奇怪是的我想登录 MySql 却提示命令找不到 查看 MySQL 运行状态 却是 Active running 提交了阿里工单 可是感觉客服是答非所问 我也是很无奈
  • Windows Terminal 和 WSL 安装及配置

    一 打开开发者选项和传递优化 二 在Microsoft Store安装Windows Terminal和Ubuntu子系统 三 配置 Windows Terminal配置 打开settings json配置文件 修改如下 此项用来配置打开W
  • 重磅!瞄准 Web 3.0,谷歌云推出专为区块链服务的 Blockchain Node Engine!

    本文由 Cloud Ace 整理发布 更多内容请访问 Cloud Ace 官网 区块链技术正在为世界各地的消费者和企业带来巨大的创新和价值创造 随着技术变得越来越主流 公司需要可扩展 安全和可持续的基础设施来发展业务并支持他们的网络 谷歌云
  • LeetCode-1124. 表现良好的最长时间段【哈希表,前缀和,单调栈】

    LeetCode 1124 表现良好的最长时间段 哈希表 前缀和 单调栈 题目描述 解题思路一 查字典 cur是当前的前缀和 劳累与不劳累天数之差 向前遍历 有两种情况 情况一 若cur大于0则是 0 i 的劳累与不劳累天数之差一定最大 记
  • Angular知识整合一:Angular中的组件和一些基本概念

    什么是Angular Angular是一个基于TypeScript构建的开发平台 它包括一下三个部分 一个基于组件的库 一组涵盖路由 表单管理 客户端服务端通信等各种功能继承的库 一套开发 构建 测试 更新代码的工具 Angular中的知识
  • matlab练习程序(渲染三原色)

    这里我用的空间是x向右为正 y向下为正 z向屏幕里面为正 相当于标准右手系绕x轴旋转了180度 将三个点光源放在 r 0 3 0 0 5 g 0 3 0 5 cos pi 6 0 5 sin pi 6 b 0 3 0 5 cos pi 6
  • 练习-Java继承和多态之接口

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 题目 任务 编写一个学校接待方面的程序 招待不同身份的人的食宿问题 编程要求 仔细阅读右侧编辑区内给出的代码框架及注释 在 Begin End 中编写一个学校接待方面的程序
  • 什么是电力系统的功率平衡?为什么在任何时候要保持电力系统的功率平衡?

    什么是电力系统的功率平衡 为什么在任何时候要保持电力系统的功率平衡 答 电力系统的功率平衡是指电力有功功率和无功功率的平衡 这种功率平衡也就是电力供需平衡 要求电力系统发送的功率与系统的负荷需要随时保持平衡 电能的一个最重要特点就是不能储存
  • 关于Vue.js中数据模型的绑定以及方法事件的绑定与调用

    在vue js中 我们可以将事件方法写在methods属性中 数据模型在data中定义 Vue的基本结构如下 只写最常用的 将数据与vue实例绑定通过v bind标签 这里绑定的是sourceId这个值 基于vue的双向绑定 如果要取vue
  • 蓝桥杯:整除序列

    整除序列 15分 题目描述 有一个序列 序列的第一个数是 n 后面的每个数是前一个数整除 2 请输出这个序列中值为正数的项 输入格式 输入一行包含一个整数 n 输出格式 输出一行 包含多个整数 相邻的整数之间用一个空格分隔 表示答案 评测用
  • 虚拟环境安装和操作

    文章目录 安装相应库和配置 查看已安装虚拟环境 创建虚拟环境 切换 进入虚拟环境 退出虚拟环境 虚拟环境 linux创建Python虚拟环境及配置 Django Flask项目中如何创建Python虚拟环境呢 汇总 环境迁移 安装相应库和配
  • 攻防世界MISC刷题1-50

    目录 1 ext3 2 base64stego 3 功夫再高也怕菜刀 4 easycap 5 reverseMe 6 Hear with your Eyes 7 What is this 8 normal png 9 something i
  • idea 添加 VUE 的语法支持和开发

    一 VUE的开发分两种 一种是直接在HTML文件中使用 一种是VUE文件的形式开发 1 首先我们先让 HTML 文件支持 VUE 的语法指令提示 2 File gt Setting gt Edit gt Inspections gt htm
  • 父类A a = new 子类B

    父类名 a new 子类名 子类名 b new 子类名 比较上面两种创建实例的区别 a只能调用父类的函数 和子类重写父类的方法 不能调用父类中不存在的子类的函数 因为它没有继承 a是父类的引用 指向了一个子类对象 好处如果一旦发现该B对象无
  • Jetson Orin NX install Fastdeploy

    FastDeploy jetson md at develop PaddlePaddle FastDeploy GitHub sudo apt get install gcc sudo apt get install cmake git c
  • postman-token的作用

    Postman生成的代码中的postman token是什么 What is the postman token in generated code from Postman 这主要用于绕过Chrome 等其他浏览器 中的错误 如果XMLH
  • QEMU/KVM PCI Passthrough(i350) & DPDK 网络性能测试

    QEMU KVM PCI Passthrough i350 DPDK 网络性能测试 硬件要求 CPU必须支持硬件虚拟化 Intel VT d or AMD Vi 和 IOMMU 原图链接 主机配置 设置iommu IOMMU kernel