news 2026/8/17 15:39:36

SSD开发常用测试命令

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SSD开发常用测试命令
  1. 读盘命令

hexdump /dev/sda -C -s 0x2000 -n 512 ; (byte)

DiskMan /dev/sda rde -L 0x100 -C 1 -v 1 ;

./vdbench print /dev/sda 0x2000 512 (byte)

linux基础命令:

dmesg |tail
watch "dmesg |tail -30"

ps -aux |grep fio 查看当前运行的fio命令
iostat -dx 1 查看使用率

查找命令(以查找svn为例)
which svn
find /usr/local -name "*svn*"

chmod +x DiskMan

scp -r *** root@10.10.28.148:/opt/test_tools ***为当前目录名称

fio --name=test --filename=/dev/nvme0n1 --bs=1k --rw=write --direct=1 --runtime=3600 --time_based --iodepth=128 --randrepeat=0 --norandommap

fio --name=test --filename=/dev/nvme0n1 --rw=read --direct=1 --randrepeat=0 --norandommap --runtime=3600 --time_based --numjobs=1 --iodepth=32 --bs=1k

fio --name=test --filename=/dev/nvme0n1 --bs=1k --rw=randwrite --direct=1 --runtime=3600 --time_based --iodepth=128 --randrepeat=0 --norandommap

fio --name=test --filename=/dev/nvme0n1 --rw=randread --direct=1 --randrepeat=0 --norandommap --runtime=3600 --time_based --numjobs=1 --iodepth=32 --bs=1k

BW/IOPS保存到文件:

fio --filename=/dev/nvme0n1 --bs=128k --rw=write--randrepeat=0 --norandommap --ioengine=libaio --direct=1 --name=1 --time_based--log_avg_msec=1000 --write_iops_log=128k_write_qd1 --write_bw_log=PresetSeqwriteBW --runtime=100 --iodepth=128

dd命令生成文件:

dd if=/dev/urandom of=1.img bs=1G count=1

dd if=/dev/zero of=/dev/nvme0n1 bs=1k count=1

  1. PCIE/NVME

  • pcie基础命令

lspci -vt 查看pci设备slot number

lspci -vvv -s 1:0.0 查看pci设备配置空间信息

setpci -s 0:1d.0 3e.w get配置空间offset 3e的值(.b .w .l)

setpci -s 0:1d.0 3e.w=0x40 set配置空间offset 3e的值为0x40

eg:

通过PC下发hot reset:

setpci -s 0:1d.0 3e.w=0x40

setpci -s 0:1d.0 3e.w=0x10

发disable link:

setpci -s 0:1d.0 50.w=0x40

setpci -s 0:1d.0 50.w=0x40

注意:hot reset和disable link均为向bridge 寄存器写,为上行口slot number,上行口和下行口的配置空间CAP分布可能不一致,需要先通过lspci 查询上行口的CAP偏移信息。

sudo chmod -R 777 /sys/bus/pci/devices/0000:01:00.0/remove

echo "1" > /sys/bus/pci/devices/0000:01:00.0/remove remove设备

sudo chmod -R 777 /sys/bus/pci/rescan

echo "1" > /sys/bus/pci/rescan rescan设备

find /sys/devices -name nvme1n1 最后一个bdf号是上行slot

cd /sys/bus/pci/slots/sid echo 0 >power echo 1 > power

setpci -s 02:00.2 78.w=0xa03f //vf FLR reset

setpci –s 2:0.0 10.l=0xa1b18000 //写vf bar0

setpci -s 1: BASE_ADDRESS_0 //读取bar0空间的地址

getm 0xa1000000 w //getm为读取bar映射空间的value,0xa1000000为bar0的映射地址

getm 0xf7000004 w

设置host超时时间

echo 30 >/sys/module/nvme_core/parameters/admin_timeout

通过memory方式访问配置空间

cat /proc/iomem |grep mmcon -i return : e0000000-efffffff

busybox devmem 0xe0200000 即可访问配置空间(bdf: 1:00.0)

kernal log等级配置:

启用nvme驱动层事件追踪:echo 1 > sys/kernal/debug/tracing/events/nvme/enable

动态启用pcie热插拔模块调试日志:echo -n "module pciehp +p" > /sys/kernal/debug/dynamic_debug/control

提高host日志级别: echo 8 > proc/sys/kernal/printk

  • 创建虚拟设备

echo 2 > /sys/class/nvme/nvme0/device/sriov_numvfs 创建2个vf

echo 1 > /sys/class/nvme/nvme0/device/sriov_numvfs

echo 0 > /sys/class/nvme/nvme0/device/sriov_numvfs

cat /sys/class/ nvme/nvme0/device/mlx5_num_vfs(忘了这个命令做什么,后续确认下)

nvme创建ns

nvme create-ns /dev/nvme0 -s 0x1000000 -c 0x1000000 -f 0 -d 0 -m 0 //8G

nvme attach-ns /dev/nvme0 -n 2 -c 0x41(-c为当前physical controller的id,这里要确认好,不一定是1)

nvme admin-passthru /dev/nvme0 -o 0x06 -n 0x0 -4 0x02 -l 512 -r

查看命令超时时间 cd /sys/module/nvme_core/parameters admin_timeout io_timeout

  1. 常用gdb调试命令

hb + func 打断点

i r //info registor

i r pc //pc value

s

n //next,不进函数

disassemble + func //汇编指令

x/x //读寄存器值u32

x/x {int} 0x40000000=0x11223344 //向地址0x40000000写0x11223344

x/8x // 读8个u32

p/x $t0 读寄存器的值

set $PC=0x1 //修改PC值

p + 变量名 查询变量值

set variable <var_name> =

info symbol sp

  1. linux PC端文件拷贝命令 scp -r *** root@10.10.28.148:/opt/test_tools ***为当前目录名称

  1. 安装vdbench 需要安装java sudo apt install openjdk-8-jdk

pciutils工具源码 The PCI Utilities

fio 1. fio - Flexible I/O tester rev. 3.36 — fio 3.36 documentation

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/17 15:32:37

Spring Boot项目从本地到云服务器全流程部署实战指南

1. 项目概述&#xff1a;从本地到云端的关键一跃 “项目部署到服务器”这件事&#xff0c;听起来像是开发流程的最后一步&#xff0c;但在我看来&#xff0c;它恰恰是项目从“玩具”走向“服务”的成人礼。很多开发者&#xff0c;尤其是刚入行的朋友&#xff0c;常常在本地开发…

作者头像 李华
网站建设 2026/8/17 15:32:10

UNIAPP监听安卓原生广播:原理、实现与性能优化指南

1. 项目概述&#xff1a;为什么要在UNIAPP中监听安卓原生广播&#xff1f; 如果你正在用UNIAPP开发一个需要与手机系统深度交互的App&#xff0c;比如监听网络状态变化、接收短信验证码、响应耳机插拔事件&#xff0c;或者处理自定义的系统级通知&#xff0c;那么你迟早会遇到一…

作者头像 李华
网站建设 2026/8/17 15:27:32

基于Three.js的Globe.GL:快速构建交互式3D地球数据可视化

1. 项目概述&#xff1a;为什么你需要关注Globe.GL&#xff1f; 如果你正在寻找一个能让你在网页上快速构建出交互式3D地球数据可视化的工具&#xff0c;那么Globe.GL很可能就是你一直在找的答案。它不是一个独立的3D引擎&#xff0c;而是一个构建在Three.js之上的JavaScript库…

作者头像 李华
网站建设 2026/8/17 15:19:54

Aida64与USB LCD屏打造硬件监控仪表盘:从原理到实践

1. 项目概述&#xff1a;让硬件监控信息“动”起来 作为一名折腾过无数台电脑的硬件爱好者&#xff0c;我一直在寻找一种更优雅、更直观的方式来实时监控系统状态。无论是超频时盯着电压和温度&#xff0c;还是排查故障时需要观察负载和频率&#xff0c;传统的软件窗口要么太占…

作者头像 李华
网站建设 2026/8/17 15:19:26

ncm转mp3原来只需3步:ncmdumpGUI免费批量转换实操指南

ncm转mp3原来只需3步&#xff1a;ncmdumpGUI免费批量转换实操指南 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换&#xff0c;Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 下载完的ncm文件&#xff0c;主流播放器几乎…

作者头像 李华