![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
存储
SweeNeil
这个作者很懒,什么都没留下…
展开
-
持久性内存编程——事务性动态内存分配
pmemobj库包含一个从头开始实现的内存分配器,它在设计时考虑了持久性内存。它有两套独立的API:非事务和事务。本文讲解持久化内存的事务性的动态内存分配,原文来自:http://pmem.io/2015/06/17/tx-alloc.html目录事务分配事务分配看下面一段现在的易失性内存分配:struct rectangle { int a; int b;};...翻译 2019-05-25 15:30:34 · 797 阅读 · 0 评论 -
Ubuntu使用内存DRAM模拟持久化内存Persistent Memory
现在真实的持久化内存对于我们普通人来说还不可用,在进行实验和测试的时候可能需要我们模拟持久化内存来进行使用。现在在一台主机(没有服务器o(╥﹏╥)o)上测试划分一块内存区域来进行持久化内存的模拟。环境:Ubuntu 18.04,一台普通的Dell台式机,运行内存 8 G。从Linux 4.0以来,Linux内核就具备了对持久性内存设备和仿真的支持,但是,为了便于配置,建议使用比4.2更...原创 2019-05-16 16:18:02 · 4967 阅读 · 7 评论 -
持久性内存编程——内存分配使用举例
前面有了两篇讲解内存分配的博文:持久性内存编程——事务性动态内存分配:https://blog.csdn.net/SweeNeil/article/details/90547136持久性内存编程——原子分配动态内存:https://blog.csdn.net/SweeNeil/article/details/90444432其实写得都有点简单,没有一个比较简单具体的案例,下面就把具体的...原创 2019-05-25 19:39:11 · 787 阅读 · 0 评论 -
持久性内存编程——类型
在之前的所有关于持久化内存编程的文章中,代码片段和示例都有持久指针(pmemoid),没有任何类型信息——它们是简单的C结构。在pmem库开发的早期,开发者发现使用类似的东西非常容易出错,而且通常很困难。他们在用类型安全容器封装pmemoids时付出了相当大的努力,最终结果可以与C++11中的SydDypTr等进行比较,之后的所有内容将只使用类型安全特性。目录布局声明类型化持久指针...翻译 2019-05-22 14:36:56 · 776 阅读 · 0 评论 -
持久性内存编程——原子分配动态内存
pmemobj库提供了非事务原子API可以实现更优化的内存管理。防故障原子分配这个API与大多数程序员在处理内存时使用的API不同。首先,函数要么分配给指针,要么释放指针。目标指针的修改是以原子方式完成的,这样它总是有效的——它要么指向一个有效的初始化内存块,要么指向一个OID_NULL。函数/宏还强制开发者在已知状态下创建对象,方法是将它们归零(pobj_znew,pobj_zalloc...翻译 2019-05-22 16:25:34 · 587 阅读 · 0 评论 -
持久化内存编程——启程资料
前面介绍了持久化内存的基本概念,然后在内存中模拟出了持久化内存,接下来就是使用持久化内存了。持久化内存简介:https://blog.csdn.net/SweeNeil/article/details/90257029Ubuntu使用内存DRAM模拟持久化内存Persistent Memory:https://blog.csdn.net/SweeNeil/article/detai...原创 2019-05-17 15:43:56 · 1430 阅读 · 0 评论 -
持久化内存编程——使用pmemobj库访问持久化内存
前面提到了持久化内存编程的启程资料:https://blog.csdn.net/SweeNeil/article/details/90293313在持久化内存开发工具中,提供了各种各样的库,这些在pmem的github介绍以及pmem.io中都有提到,下面就直接把github上面的直接拿出来:上面描述了各个库的说明,在其中,看到libpmemobj提供的功能还算全面,所以就使用li...翻译 2019-05-17 19:32:07 · 3017 阅读 · 0 评论 -
持久性内存编程——事务
在之前一直用的持久化内存,现在感觉有一种说不出的怪怪的感觉,之后都改为持久性内存。前面介绍了访问持久性内存的方式,其中抛出了一些在持久性内存上编程的要点,接下来就翻译pmem.io上的第二个编程指导——事务。原文来自:http://pmem.io/2015/06/15/transactions.html目录生命周期事务操作条件事务块示例通过前一部分的介绍(https...翻译 2019-05-18 15:28:06 · 883 阅读 · 0 评论 -
Linux上安装memkind库
memkind:https://github.com/memkind/memkindjemalloc:https://github.com/jemalloc/jemalloc/releasesmemkind简介memkind库是一个构建在jemalloc之上的用户可扩展堆管理器,它可以控制内存特性和各种内存之间的堆分区。这类内存由已应用于虚拟地址范围的操作系统内存策略定义。me...转载 2019-05-28 20:19:00 · 1043 阅读 · 0 评论 -
Ubuntu下F2FS文件系统的安装与挂载
安装f2fs-toolsapt-get install -y f2fs-tools如果上一步出错,则执行:dpkg --configure -a再重新apt-get install -y f2fs-tools如果直接apt-get不成功,还可以通过下载源码包的方式来安装f2fs-tools:git clone git://git.kernel.org/pub/scm/...转载 2019-06-13 21:24:44 · 5287 阅读 · 0 评论 -
Linux中vdbench的安装与使用
vdbench是一个 I/O 工作负载生成器,用于验证数据完整性和度量直接附加和网络连接的存储的性能。它是一个免费的工具,容易使用,而且常常用于测试和基准测试。可以使用vdbench测试磁盘和文件系统的读写性能。环境:Ubuntu 16.04一、安装Javavdbench的运行需要依赖于java,先查看主机是否装有java:java -version在当前主机中,没有...原创 2019-07-10 16:21:53 · 14548 阅读 · 2 评论 -
持久化内存简介
本文来自持久化内存文档,该文档上一次更新来自两个月前,也就是2019年3月,但是感觉内容应该还是比较老了,可能初版有两三年的历史了~一、持久化内存概述在过去的几十年中,计算机系统已经实现了图1所示的存储器存储层次结构。存储器存储层次结构利用了局部性原理,它使频繁访问的数据保持在最接近CPU的位置。连续几代技术分别从缓存的数量,大小和速度进行了改进,以此来确保CPU在缓存中可以访问到最常...翻译 2019-05-16 10:33:52 · 8300 阅读 · 0 评论 -
NUMA架构下的CPU拓扑结构
黑色部分为转载内容,蓝色部分为本人的一台主机实测,在文中使用分割线进行区别“——————”作者:weijitao来源:CSDN原文:https://blog.csdn.net/weijitao/article/details/52884422目前多核已经越来越普遍的使用,Linux对NUMA架构的支持也越来越完善。对于内存管理、多处理的负载均衡调度等进行了大量的优化工作。NUM...转载 2019-05-07 21:20:47 · 2563 阅读 · 0 评论 -
Ubuntu 18.04安装持久化内存配置工具ndctl
方法一sudo apt-get install libndctl-dev这玩意有点玄学,说实话不太明白到底怎么回事,如果不能用建议使用第二种方式进行安装~方法二如果不行的话,在github上下载源码进行安装:GitHub source在github页面有一个简单的介绍,如下托所示,里面有ndctl的文档介绍,同时也简略给出了安装方法: ...原创 2019-05-08 19:38:56 · 4259 阅读 · 0 评论 -
LSM-tree原理与应用
转自:https://cloud.tencent.com/developer/news/340271LSM-tree 在 NoSQL 系统里非常常见,基本已经成为必选方案了。今天介绍一下 LSM-tree 的主要思想,再举一个 LevelDB 的例子。正文 3056 字,预计阅读时间 8 分钟。LSM-tree起源于 1996 年的一篇论文《The Log-Structured M...转载 2019-01-14 20:07:59 · 2186 阅读 · 0 评论 -
SMR叠瓦式磁记录技术资料整理
收集于2019年1月9日1、来源:cnblogs大佬的关于SMR十二篇文章地址:https://www.cnblogs.com/tao-alex/category/875577.html2、来源:csdn《详解叠瓦式磁记录SMR盘基础知识》地址:https://blog.csdn.net/BtB5e6Nsu1g511Eg5XEg/article/details/804909...原创 2019-01-09 20:41:12 · 3567 阅读 · 0 评论 -
硬盘分区、寻址和系统启动过程
转自:https://blog.csdn.net/lovingprince/article/details/6118117前言笔记:为了屏蔽复杂的硬件细节,现代的磁盘普遍使用一种叫做LBA(Logical Block Address)的方式,即整个磁盘中所有的扇区从0开始编号,一直到最后一个扇区,这个扇区编号叫做逻辑扇区号。逻辑扇区号抛弃了所有复杂的磁道、盘面之类的概念。当我们给出一个逻辑...转载 2018-11-22 18:48:14 · 459 阅读 · 0 评论 -
文件系统中的磁盘块
引言:扇面是磁盘中最小的物理存储单位,而块是操作系统最小的逻辑存储单位。1、 磁盘块的概念 物理层面,一个磁盘按层次分为:磁盘组合 -> 单个磁盘 -> 某一盘面 -> 某一磁道 -> 某一扇区 。回顾之前内容,每个磁盘有多条同心圆似的磁道,磁道被分割成多个部分。每部分的弧长加上到圆心的两个半径,恰好形成一个扇形,所以叫做扇区。扇区是磁盘中最小的物理存储单位。...转载 2019-03-22 15:54:21 · 6929 阅读 · 0 评论 -
Linux缓存回写——基于linux-4.15
这也是刚看,仅供参考~1、Linux内核bdi系统bdi是backing device info的缩写,它用于描述后端存储(如磁盘)设备相关的信息。相对于内存来说,后端存储的I/O比较慢,因此写盘操作需要通过page cache进行缓存延迟写入。与bdi_writeback机制相关的主要数据结构有三个:1)backing_dev_info:该数据结构描述了backing_dev的所...原创 2019-03-26 09:56:25 · 3533 阅读 · 0 评论 -
Filebench的安装及使用
一、下载安装1、下载地址:https://sourceforge.net/projects/filebench/files/1.5-alpha3/filebench-1.5-alpha3.tar.gz/download2、进入文件所在的目录:一般是download路径3、解压到usr/local/路径:sudo tar -zxf filebench-1.5-alpha3.tar.g...转载 2019-03-28 15:07:54 · 1874 阅读 · 0 评论 -
闪存文件系统(Flash File System)
最近调研了一下闪存文件系统,部分结果展示如下,如有错误欢迎评论指正~一、背景闪存(flash memory),是一种电子式可清除程序化存储器的形式,允许在操作中被多次擦或写的存储器。随着现在闪存价格的降低,闪存越来越普及,闪存是一种非易失性存储器,断电数据并不会丢失,同时它的读写速度比机械硬盘(HDD)要快很多。无论是手机还是一些小型的嵌入式设备,闪存都是作为存储器的方式存在,现在手机...原创 2019-04-18 10:24:16 · 3649 阅读 · 0 评论 -
Linux上快速入门英特尔Optane DC Persistent Memory Module的配置与使用
翻译得不好还请见谅,原文见末尾链接~一、简介英特尔的Optane DC Persistent Memory(Optane DC PMM、DCPMM)是一种颠覆性的技术,它在内存和存储器之间创建了一个新的层级。 英特尔Optane DC PMM支持两种模式:①Memory Mode:内存模式,与DRAM类似,同时在该模式下,数据易失②App Direct Mode:应用直接访问模式,...翻译 2019-04-28 18:52:33 · 12012 阅读 · 2 评论 -
Intel Optane DC Persistent Memory Module (PMM)详解
英特尔对外公开提出Optane DC Persistent Memory Module已经快一年的时间了,这个介于SSD和DRAM之间的新层级对于数据中心有很大的好处。持久内存的目标始终是将更多数据移近CPU,提供类似DRAM的延迟,同时也具有类似存储设备的持久性和容量。 经过一年的时间听取硬件和软件合作伙伴谈论持久内存的好处,现在,随着第二代英特尔至强可扩展处理器的发布,Optane DC ...翻译 2019-04-29 15:52:11 · 9916 阅读 · 2 评论 -
NUMA的Linux工具:numactl
作者:qccz123456来源:CSDN原文:https://blog.csdn.net/qccz123456/article/details/81979819一、NUMA简介NUMA(Non-Uniform Memory Access)字面直译为“非一致性内存访问”,对于Linux内核来说最早出现在2.6.7版本上。这种特性对于当下大内存+多CPU为潮流的X86平台来说确实会有不...转载 2019-05-08 14:07:13 · 11523 阅读 · 0 评论 -
Ubuntu 18.04安装英特尔Optane DC Persistent Memory Module配置工具ipmctl
《Intel Optane DC Persistent Memory Module (PMM)详解》地址:https://blog.csdn.net/SweeNeil/article/details/89673992《Linux上快速入门英特尔Optane DC Persistent Memory Module的配置与使用》地址:https://blog.csdn.net/SweeNe...原创 2019-05-08 15:09:43 · 5726 阅读 · 2 评论 -
英特尔Optane DC Persistent Memory操作模式说明
前面介绍了Optane DC Persistent Memory有两种模式:Memory Mode App Direct Mode服务器将使用DRAM和英特尔Optan DC Persistent Memory的组合。 DRAM具有最低的内存延迟。 英特尔Optane DC Persistent Memory具有稍高的延迟,但提供了可承受的容量和数据持久性。一、Memory Mode:...翻译 2019-08-05 14:51:37 · 3250 阅读 · 1 评论