modprove brd rd_size=62914560
我在 CentOS 7.5 上创建了 60GB 的 RAMdisk 。检查结果,fdisk -l /dev/ram*
显示 16 个 60GB 大小的 ram 块设备(/dev/ram0、/dev/ram1、...、/dev/ram15)。
我想在一个 ram 块设备上运行 16 个随机访问的作业(线程)来检查性能。我使用 FIO 工具运行这样的工作负载。但是,我收到以下错误:
/dev/ram1 的缓存失效失败:设备或资源繁忙
为什么会出现这种情况?访问单个 RAM 块设备的作业(线程)数量是否有限制?当我使用 检查块设备时lsblk
,未显示 ram 块设备。是什么原因?
谢谢
答案1
从lsblk
手册页:
该命令默认以树状格式打印所有块设备(RAM 磁盘除外)。
这不是一个错误,这是一个功能! :-)
如果你想包含 RAM 设备,你可以这样做lsblk -I 1
lsblk -I 1
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
ram0 1:0 0 9,8M 0 disk
ram1 1:1 0 9,8M 0 disk
ram2 1:2 0 9,8M 0 disk
...
答案2
您一次性提出了多个问题,这降低了您获得全部答案的机会:-(
但是,我收到以下错误:
/dev/ram1 的缓存失效失败:设备或资源繁忙
为什么会出现这种情况?访问单个 RAM 块设备的作业(线程)数量是否有限制?
释放 brd 设备使用的页面的功能已在ff26956875c2f05e12ecec9938411a2c7dfc767d: brd: remove support for BLKFLSBUF
。这样做是因为BLKFLSBUF
向子 RAM 分区发出指令会导致父 BRD 设备损坏(我猜想可能还有其他可能共享该页面的同级分区)。
访问单个 RAM 块设备的作业(线程)数量是否有限制?
不,请参阅上文。
当我使用 lsblk 检查块设备时,未显示 ram 块设备。是什么原因?
因为lsblk
设计时默认不显示 RAM 块设备...从手册页的开头lsblk(8)
:
该命令默认以树状格式打印所有块设备(RAM 磁盘除外)。
请参阅lsblk 手册页中的选项了解如何更改lsblk
显示内容。