【前言】 这是一次充满曲折与反转的问题分析,资料很少,代码很多,经验很少,概念很多,当内核态,用户态,DIF,LBA,大页内存,SGL,RDMA,NVME和SSD一起迎面而来的时候,问题是单点的意外,还是群体的无奈? 为了加深记忆,也为了分享出来给人以启示,特记录这次问题分析过程。 【现象】 同事L ...
分类:
其他好文 时间:
2020-06-10 13:19:41
阅读次数:
66
转自 https://blog.csdn.net/weixin_37097605/article/details/101488760 SPDK Thread 模型是SPDK诞生以来十分重要的模块,它的设计确保了spdk应用的无锁化编程模型,本文基于spdk最新的release 19.07版本介绍了整 ...
分类:
编程语言 时间:
2020-05-03 12:48:23
阅读次数:
95
Getting Started Getting the Source Code git clone https://github.com/spdk/spdk cd spdk git submodule update --init 获取源码 git clone https://github.com/s ...
分类:
其他好文 时间:
2020-02-22 14:02:27
阅读次数:
68
What is SPDK The Storage Performance Development Kit (SPDK) provides a set of tools and libraries for writing high performance, scalable, user-mode st ...
分类:
其他好文 时间:
2020-02-22 14:01:18
阅读次数:
91
PolarDB是阿里云基于MySQL推出的云原生数据库(Cloud Native Database)产品,通过将数据库中计算和存储分离,多个计算节点访问同一份存储数据的方式来解决目前MySQL数据库存在的运维和扩展性问题;通过引入RDMA和SPDK等新硬件来改造传统的网络和IO协议栈来极大提升数据库 ...
分类:
数据库 时间:
2018-10-12 17:50:44
阅读次数:
233
UIO(Userspace I/O)是运行在用户空间的I/O技术。在Linux系统中,一般的设备驱动都是运行在内核空间,而在用户空间使用应用程序调用即可。而UIO则是将设备驱动的很少一部分运行在内核空间,而在用户空间实现驱动的绝大多数功能。那么,在内核空间UIO要做的事情就变得很简单,分为两种: 为 ...
分类:
其他好文 时间:
2017-11-01 20:27:53
阅读次数:
1671
Introduction to DPDK: Architecture and PrinciplesDPDK概论:体系结构与实现原理 Linux network stack performance has become increasingly relevant over the past few y ...
分类:
其他好文 时间:
2017-10-30 17:04:14
阅读次数:
623
1. NVMe概述 NVMe是一个针对基于PCIe的固态硬盘的高性能的、可扩展的主机控制器接口。 NVMe的显著特征是提供多个队列来处理I/O命令。单个NVMe设备支持多达64K个I/O 队列,每个I/O队列可以管理多达64K个命令。 当主机发出一个I/O命令的时候,主机系统将命令放置到提交队列(S ...
分类:
其他好文 时间:
2017-10-25 11:35:23
阅读次数:
633
最近在看NVMeDirect和SPDK的源码,觉得有必要梳理一下MMIO和PMIO的区别。关于MMIO和PMIO,维基百科上是这么讲滴, 在计算机中,内存映射I/O(MMIO)和端口映射I/O(PMIO)是两种互为补充的I/O方法,在CPU和外部设备之间。另一种方法是使用专用的I/O处理器,通常为大 ...
分类:
其他好文 时间:
2017-10-19 14:55:50
阅读次数:
553
1,dpdk编译共享库 默认情况下都编译出静态库,如果想编译出动态库,把config/common_base文件中的CONFIG_RTE_BUILD_SHARED_LIB改成y即可。 2,spdk编译共享库 修改mk/spdk.common.mk: # Archive $(OBJS) into $@ ...
分类:
其他好文 时间:
2017-04-24 23:14:26
阅读次数:
2643