首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Ubunutu 16/18 linux中超过9台运行瓶颈的NVME设备

Ubunutu 16/18 linux中超过9台运行瓶颈的NVME设备
EN

Ask Ubuntu用户
提问于 2019-08-17 13:29:31
回答 1查看 254关注 0票数 0

我们有一个24台自定义NVMe设备连接的服务器(我工作的公司正在开发一个用于硬件视频转码的自定义专用集成电路,使用NVMe作为传输端口)我们正在使用NVMe协议中特定于供应商的命令与我们的NVMe设备交互,使用linux接口与标准收件箱NVMe linux驱动程序进行交互。我们正在用不同的内核在ubuntu16.04和18.04上测试这一点,但是不管我们做什么,最终都会出现相同的问题。我们有24台设备通过NVMe连接在一个千兆字节的存储服务器上。当我们运行完测试时,我们就可以一次用我们的9个设备对FPS范围进行代码转换。我们使用自定义AVCODEC插件的FFMpeg来运行代码转换会话。一旦我们尝试使用第10台NVMe设备,我们就会看到其他设备的性能下降,这表明在进行NVMe传输时存在某种瓶颈。我们的IO与普通的SSD驱动器有很大的不同,因为我们试图为读写操作(不是NVMe读/写,而是通过厂商特定的命令接口进行读/写)尽可能大的传输。

我们已经尝试调优了几乎所有存在的内核参数,包括对nvme使用轮询/混合轮询/中断,更改最大传输大小等,没有任何帮助。

服务器更有能力利用10个甚至24个nvme驱动器,它是为它而构建的,CPU的使用肯定不是一个瓶颈。我们从用户空间到内核空间的所有数据传输都是零拷贝和对齐512字节,这是通过在实例上运行perf来确认的。

如果有人有任何经验调优一个大型NVME存储系统,Ubuntu中有10多个驱动器(ubuntu是我们atm的主要linux发行版),请分享还可以做些什么来使10多个设备以最大传输速率运行。

EN

回答 1

Ask Ubuntu用户

发布于 2019-08-17 13:45:22

这可能是值得检查,看看哪里的瓶颈与perf。

安装时:

代码语言:javascript
运行
复制
sudo apt-get install linux-tools

记录事件,例如以每秒1000个样本记录20秒:

代码语言:javascript
运行
复制
sudo perf record -a -F 1000 sleep 20

..and查看瓶颈发生的位置:

代码语言:javascript
运行
复制
sudo perf report

有关perf的更多详细信息,请参阅https://perf.wiki.kernel.org/index.php/Tutorial。关于使用perf监视内存带宽利用率的一篇非常有用的文章是https://yunmingzhang.wordpress.com/2015/07/22/measure-memory-bandwidth-using-uncore-counters/

或者,这可能是内存/缓存带宽有限的问题,在这种情况下,可以在一些现代处理器上使用pqos工具来监视缓存的利用率:

代码语言:javascript
运行
复制
sudo apt-get install intel-cmt-cat
sudo modprobe msr  
sudo pqos -r
票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1166412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档