【spdk】spdk compressdev测试
spdk-23.09\go\rpc\README.md go client
启应用
启哪个应用?
./build/bin/iscsi_tgt --wait-for-rpc &
/usr/local/daos-2.4/prereq/release/spdk/share/spdk/scripts/rpc.py bdev_malloc_create -b Malloc0 1024 4096 #1G bs=4k
/usr/local/daos-2.4/prereq/release/spdk/share/spdk/scripts/rpc.py bdev_get_bdevs #查看bdevs
/usr/local/daos-2.4/prereq/release/spdk/share/spdk/scripts/rpc.py bdev_lvol_create_lvstore Malloc0 lvs
/usr/local/daos-2.4/prereq/release/spdk/share/spdk/scripts/rpc.py bdev_lvol_create -t -l lvs lv0 1024
mount /dev/pmem0 /tmp/pmem
/usr/local/daos-2.4/prereq/release/spdk/share/spdk/scripts/rpc.py bdev_compress_create -b lvs/lv0 -p /tmp/pmem
[root@localhost spdk]# ./scripts/rpc.py bdev_compress_create -b lvs/lv0 -p /tmp/pmem
request:
{
“base_bdev_name”: “lvs/lv0”,
“pm_path”: “/tmp/pmem”,
“method”: “bdev_compress_create”,
“req_id”: 1
}
Got JSON-RPC error response
response:
{
“code”: -32601,
“message”: “Method not found”
}
需解决以上问题
解决方法, 编译SPDK时需要加上相关的库
–with-crypto
–with-vbdev-compress --with-dpdk-compressdev
./configure --prefix=output_dir --with-dpdk --disable-unit-tests --with-vhost --with-crypto --without-rbd --without-vtune --without-shared --with-rdma --with-vbdev-compress --with-dpdk-compressdev
配置QAT PMD
如下 按步骤执行
1.启动应用 加–wait-for-rpc
2…/spdk/scripts/rpc.py framework_start_init #启动加速框架
3…/spdk/scripts/rpc.py accel_get_module_info #获取加速模块
[root@localhost test]# …/spdk/scripts/rpc.py framework_start_init
[root@localhost test]# …/spdk/scripts/rpc.py accel_get_module_info
[
{
“module”: “software”,
“supported ops”: [
“copy”,
“fill”,
“dualcast”,
“compare”,
“crc32c”,
“copy_crc32c”,
“compress”,
“decompress”,
“encrypt”,
“decrypt”,
“xor”
]
},
{
“module”: “dpdk_cryptodev”,
“supported ops”: [
“copy”,
“fill”
]
},
{
“module”: “dpdk_compressdev”,
“supported ops”: []
}
]
[root@localhost test]# …/spdk/scripts/rpc.py compressdev_scan_accel_module -h
usage: rpc.py [options] compressdev_scan_accel_module [-h] [-p PMD]
optional arguments:
-h, --help show this help message and exit
-p PMD, --pmd PMD 0 = auto-select, 1= QAT only, 2 = mlx5_pci only
[root@localhost test]# …/spdk/scripts/rpc.py compressdev_scan_accel_module -p 0
[root@localhost test]# …/spdk/scripts/rpc.py compressdev_scan_accel_module -p 1
[root@localhost test]# …/spdk/scripts/rpc.py compressdev_scan_accel_module -p 2
分别对应:(怎么都是dpdk_compressdev)
[2024-01-17 08:05:16.008732] accel.c:2312:spdk_accel_module_list_add: NOTICE: Module dpdk_compressdev already registered
[2024-01-17 08:06:37.788732] accel.c:2312:spdk_accel_module_list_add: NOTICE: Module dpdk_compressdev already registered
[2024-01-17 08:06:46.996707] accel.c:2312:spdk_accel_module_list_add: NOTICE: Module dpdk_compressdev already registered
[root@localhost spdk]# ./scripts/rpc.py --verbose DEBUG compressdev_scan_accel_module -p 0
INFO: Log level set to 10
DEBUG: Trying to connect to UNIX socket: /var/tmp/spdk.sock
DEBUG: call(‘compressdev_scan_accel_module’)
DEBUG: append request:
{“jsonrpc”: “2.0”, “method”: “compressdev_scan_accel_module”, “id”: 1, “params”: {“pmd”: 0}}
DEBUG: Flushing buffer
INFO: Requests:
{
“jsonrpc”: “2.0”,
“method”: “compressdev_scan_accel_module”,
“id”: 1,
“params”: {
“pmd”: 0
}
}
DEBUG: Trying to decode response ‘’
DEBUG: Partial response
DEBUG: Trying to decode response '{“jsonrpc”:“2.0”,“id”:1,“result”:true}
’
INFO: response:
{
“jsonrpc”: “2.0”,
“id”: 1,
“result”: true
}
Installing Intel QAT (IDZ 方式)
- 下载安装driver https://github.com/intel/qatlib
./configure; make install
# Sample programs can be installed by using the “make samples-install”. The sample program “cpa_sample_code runTests=32” can be used to test compression performance.
-
检查安装状态
lsmod | grep qat qat_4xxx 20480 0 intel_qat 270336 1 qat_4xxx crc8 16384 1 intel_qat authenc 16384 1 intel_qat
-
检查 service 状态
# service qat_service start||stop||status||restart||shutdown # For a system with multiple Intel® QAT Endpoints, you can start, stop or restart each individual device by passing the Intel® QAT Endpoint to be restarted or stopped as a parameter qat_dev<N>, for example: service qat_service stop qat_dev0 service qat_service stop qat_dev1 # The shutdown qualifier enables the user to bring down all Intel® QAT Endpoints and unload driver modules from the kernel. This contrasts with the stop qualifier, which brings down one or more Intel® QAT Endpoints, but does not unload kernel modules, so other Intel® QAT Endpoints can still run. # service qat_service statusChecking status of all devices.There is 3 QAT acceleration device(s) in the system:qat_dev0 - type: c6xx, inst_id: 0, node_id: 1, bsf: 0000:cc:00.0, #accel: 5 #engines: 10 state: upqat_dev1 - type: c6xx, inst_id: 1, node_id: 1, bsf: 0000:ce:00.0, #accel: 5 #engines: 10 state: upqat_dev2 - type: c6xx, inst_id: 2, node_id: 1, bsf: 0000:d0:00.0, #accel: 5 #engines: 10 state: up
相关文章:
【spdk】spdk compressdev测试
spdk-23.09\go\rpc\README.md go client 启应用 启哪个应用? ./build/bin/iscsi_tgt --wait-for-rpc & /usr/local/daos-2.4/prereq/release/spdk/share/spdk/scripts/rpc.py bdev_malloc_create -b Malloc0 1024 4096 #1G bs4k /usr/local/daos-2.4/prereq…...

Linux中并发程序设计(进程的创建和回收、exec函数使用)
进程的创建和回收 进程概念 概念 程序 存放在磁盘上的指令和数据的有序集合(文件) 静态的 进程 执行一个程序所分配的资源的总称 动态的进程和程序比较 注:进程是存在RAM中,程序是存放在ROM(flash)中的进程内容 BSS段ÿ…...

2023年DevOps国际峰会暨 BizDevOps 企业峰会(DOIS北京站):核心内容与学习收获(附大会核心PPT下载)
随着科技的飞速发展,软件开发的模式和流程也在不断地演变。在众多软件开发方法中,DevOps已成为当下热门的软件开发运维一体化模式。特别是在中国,随着越来越多的企业开始认识到DevOps的价值,这一领域的研究与实践活动日益活跃。本…...
pdf 转html 在线预览和查询
方案一:pdf2htmlex package com.realize.controller;import cn.hutool.http.HttpUtil; import com.alibaba.fastjson2.JSONObject; import com.realize.util.MsgUtil; import com.realize.util.OssUtil; import com.realize.util.PdfConvertUtil; import com.reali…...

docker 体验怀旧游戏(魂斗罗等)
docker run --restart always -p 8081:80 --name fc-games -d registry.cn-hangzhou.aliyuncs.com/bystart/fc-games:latest ip:8081访问 jsnes: js制作了一个网页版的NES模拟,可以在网页上玩fc游戏 (gitee.com)...

JS中判断数据类型总结以及方法封装
判断数据类型封装方法: 1)type返回字符串类型 2)is开头返回Boolean类型 测试实例: JavaScript 判断数据类型的方式共有四种 typeofinstanceofconstructorObject.prototype.toString typeof typeof 操作符返回一个字符串,表示操…...

【Midjourney】绘画风格关键词
1.松散素描(Loose Sketch) "Loose sketch"(松散素描)通常指的是一种艺术或设计中的手绘风格,其特点是线条和形状的表现相对宽松、自由,没有过多的细节和精确度。这样的素描通常用于表达创意、捕捉概念或者作为设计的初步…...

教你如何低成本自建「幻兽帕鲁」服务器,快速一键部署
创建幻兽帕鲁服务器1分钟部署教程,阿里云和腾讯云均推出幻兽帕鲁服务器服务器和部署教程,4核16G和4核32G配置可选,阿腾云atengyun.com分享1分钟自建幻兽帕鲁Palworld服务器教程: 幻兽帕鲁服务器创建教程 幻兽帕鲁服务器官方推荐…...

拥抱社交电商浪潮:微信小程序商城崛起引领电商新风向-亿发
在经过多年的发展后,各大传统电商平台的流量增速基本上已经见顶。同时,新兴的带有社交性质的电商平台,如抖音、小红书和微信商城(小程序商城)等,使得传统中心化平台的流量关注度逐渐分散。由于中心化平台需…...

一个使用pyqt的word文档查重工具
一个使用pyqt的word文档查重工具 使用场景代码使用截图打包好的软件下载链接结尾 使用场景 有时我们在借鉴一篇文档之后还不想有太多重复,这个时候可以使用这个工具对两个word文档进行对比 代码 import sys from PyQt5.QtWidgets import QApplication, QMainWind…...

SpringCloud Alibaba Sentinel 与 SpringCloud Gateway 的限流有什么差别?(三种限流算法原理分析)
目录 一、Sentinel 与 Gateway 的限流有什么差别? 1.1、前置知识 - 四种常见的限流算法 1.1.1、Tips 1.1.2、计数器算法 1)固定窗口计数器算法 2)滑动窗口计数器算法 1.1.3、令牌桶算法 1.1.4、漏桶算法 1.2、解决问题 一、Sentinel…...
邦芒忠告:职场新人最需要避开的十大雷坑
职场人最害怕的就是踩雷进坑,很多新入职场的小白都会战战兢兢,生怕哪里不对,冒犯了哪一位,或者触犯了哪一条潜规则。害怕自己踩到雷,没有走好职场第一步。最近,单位进了几个新人,看到他们就想起…...

MySQL-进阶-索引
一、索引概述 1、介绍 2、有误索引搜索效率演示 3、优缺点 二、索引结构 1、B-Tree(多路平衡查找树) 2、BTree 3、Hash 三、索引分类 四、索引语法 1、语法 2、案例 五、SQL性能分析 1、查看执行频次 2、慢查询日志 3、show-profile 4、explain...

GitLab入门指南:上传与下载操作一网打尽
GitLab简介: GitLab是一个基于Git的开源仓库管理系统,提供了一个Web界面的Git存储库管理器,并集成了多种开发工具的功能,如代码审查、问题跟踪、持续集成和持续部署等。GitLab可以在本地服务器上部署,也可以使用其提供…...

GPT应用_PrivateGPT
项目地址:https://github.com/imartinez/privateGPT 1 功能 1.1 整体功能,想解决什么问题 搭建完整的 RAG 系统,与 FastGPT 相比,界面比较简单。但是底层支持比较丰富,可用于知识库的完全本地部署,包含大…...
Qt‘s 撤销框架(Qt‘s Undo Framework)
一、开篇序言 我们常常有这样的业务场景,需要支持撤回的动作(即 undo)。如果让你来设计,聪明的你肯定也能立即想到解决问题的办法,对,将操作的 command { 对象,指令,属性 } 保存到一个容器中。 如果是仅需要单步撤销, 使用栈容器 保存command,动作执行即指令入栈, …...

【C++】stack、queue的使用及模拟实现
目录 一、stack1.1 stack的使用1.2 stack的模拟实现 二、queue2.1 queue的使用2.2 queue的模拟实现 一、stack 1.1 stack的使用 stack是一种容器适配器,它的特点是后进先出,只能在容器的一端进行插入和删除操作。 stack的使用很简单,主要有…...

外包干了2个多月,技术退步明显。。。。。
先说一下自己的情况,本科生,19年通过校招进入广州某软件公司,干了接近3年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…...

html5实现好看的年会邀请函源码模板
文章目录 1.设计来源1.1 邀请函主界面1.2 诚挚邀请界面1.3 关于我们界面1.4 董事长致词界面1.5 公司合作方界面1.6 活动流程界面1.7 加盟支持界面1.8 加盟流程界面1.9 加盟申请界面1.10 活动信息界面 2.效果和源码2.1 动态效果2.2 源码目录结构 源码下载 作者:xcLei…...

【C++】反向迭代器模拟实现
👀樊梓慕:个人主页 🎥个人专栏:《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》《算法》 🌝每一个不曾起舞的日子,都是对生命的辜负 目录 前言 1.利用适配器的思想…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...

手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路
进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...
将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?
Otsu 是一种自动阈值化方法,用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理,能够自动确定一个阈值,将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...