通过Linux设备映射器使用持久内存设备

简介: 通过Linux设备映射器使用持久内存设备

通过Linux设备映射器使用持久内存设备


IO Alignment Considerations


传统的存储设备例如HDDSSDnvmeSAN LUNS等以blocks为单位提供存储功能。Block以字节为单位的可寻址存储单元。传统的硬盘的block大小是512字节。Newer设备通常是4K或者8K,但也可以选择逻辑/模拟的512字节的block

持久内存设备可以通过虚拟内存系统访问,因此IO可以使用系统页大小进行对齐。位于CPU上的内存管理单元(MMU)决定可能的页面大小。Linux支持两种页大小:

Ø 默认页大小,通常4KBLinux通常将其作为页表条目。

Ø 大页:需要内核支持配置CONFIG_HUBETLB_PAGECONFIG_HUGETLBFS。通常称为页面中间目录(PMD),大页大小通常为2MB

页面大小是内存使用和速度之间的折中:

Ø 大页造成空间浪费。

Ø 大内存容量下小页:需要大量的页表条目,从而需要更大内核内存保持页表

Ø 小页可能需要更多时间进行页表遍历。尤其是TLB未命中计数较高情况下。

DDR和持久内存模块之间的容量差异相当大,由于上述原因,内存为TB级的系统上使用较小页面可能会对性能带来负面影响。

使用getconf命令获取系统默认页大小,下面页面大小是4KB

$ getconf PAGE_SIZE

4096

或:

$ getconf PAGESIZE

4096

通过cat /proc/meminfo|grep -i hugepage验证系统是否支持大页:

.....

HugePages_Total: uuu

HugePages_Free:  vvv

HugePages_Rsvd:  www

HugePages_Surp:  xxx

Hugepagesize:    yyy kB

Hugetlb:         zzz kB

.....

根据处理器不同,x86_64架构下至少有两种大页大小:2M1G。如果CPU支持2M,那么会有PSE cpuinfo flag,而1G的有PDPE1GB flag/proc/cpuinfo显示这两种标签的设置。如果这些命令返回非空字符串,那么支持2M

$ grep pse /proc/cpuinfo | uniq

flags           : [...] pse [...]

如果下面命令返回非空字符串,支持1G

$ grep pdpe1gb /proc/cpuinfo | uniq

flags           : [...] pdpe1gb [...]


Verifying IO Alignment


需满足下面条件,DAX文件系统才能支持2M大页:

Ø mmap()至少映射2M

Ø 文件系统块分配的大小至少2M

Ø 文件系统块分配必须与mmap具有相同的对齐方式


原文


https://pmem.io/2018/05/15/using_persistent_memory_devices_with_the_linux_device_mapper.html

目录
相关文章
|
2月前
|
缓存 监控 Linux
Linux内存问题排查命令详解
Linux服务器卡顿?可能是内存问题。掌握free、vmstat、sar三大命令,快速排查内存使用情况。free查看实时内存,vmstat诊断系统整体性能瓶颈,sar实现长期监控,三者结合,高效定位并解决内存问题。
261 0
Linux内存问题排查命令详解
|
2月前
|
安全 Linux 网络安全
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
97 0
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
|
3月前
|
数据采集 编解码 运维
一文讲完说懂 WowKey -- WowKey 是一款 Linux 类设备的命令行(CLT)运维工具
WowKey 是一款面向 Linux 类设备的命令行运维工具,支持自动登录、批量执行及标准化维护,适用于企业、团队或个人管理多台设备,显著提升运维效率与质量。
|
4月前
|
监控 Linux 开发者
理解Linux操作系统内核中物理设备驱动(phy driver)的功能。
综合来看,物理设备驱动在Linux系统中的作用是至关重要的,它通过与硬件设备的紧密配合,为上层应用提供稳定可靠的通信基础设施。开发一款优秀的物理设备驱动需要开发者具备深厚的硬件知识、熟练的编程技能以及对Linux内核架构的深入理解,以确保驱动程序能在不同的硬件平台和网络条件下都能提供最优的性能。
272 0
|
6月前
|
缓存 Linux 数据安全/隐私保护
Linux环境下如何通过手动调用drop_caches命令释放内存
总的来说,记录住“drop_caches” 命令并理解其含义,可以让你在日常使用Linux的过程中更加娴熟和自如。
1203 23
|
6月前
|
安全 Ubuntu Linux
Nipper 3.8.0 for Windows & Linux - 网络设备漏洞评估
Nipper 3.8.0 for Windows & Linux - 网络设备漏洞评估
216 0
Nipper 3.8.0 for Windows & Linux - 网络设备漏洞评估
|
8月前
|
监控 Linux Python
Linux系统资源管理:多角度查看内存使用情况。
要知道,透过内存管理的窗口,我们可以洞察到Linux系统运行的真实身姿,如同解剖学家透过微观镜,洞察生命的奥秘。记住,不要惧怕那些高深的命令和参数,他们只是你掌握系统"魔法棒"的钥匙,熟练掌握后,你就可以骄傲地说:Linux,我来了!
294 27
|
9月前
|
消息中间件 Linux
Linux中的System V通信标准--共享内存、消息队列以及信号量
希望本文能帮助您更好地理解和应用System V IPC机制,构建高效的Linux应用程序。
382 48
|
7月前
|
运维 安全 Linux
试试Linux设备命令行运维工具——Wowkey
WowKey 是一款专为 Linux 设备设计的命令行运维工具,提供自动化、批量化、标准化、简单化的运维解决方案。它简单易用、高效集成且无依赖,仅需 WIS 指令剧本文件、APT 账号密码文件和 wowkey 命令即可操作。通过分离鉴权内容与执行内容,WowKey 让运维人员专注于决策,摆脱繁琐的交互与执行细节工作,大幅提升运维效率与质量。无论是健康检查、数据采集还是配置更新,WowKey 都能助您轻松应对大规模设备运维挑战。立即从官方资源了解更多信息:https://atsight.top/training。
|
7月前
|
数据采集 运维 安全
Linux设备命令行运维工具WowKey问答
WowKey 是一款用于 Linux 设备运维的工具,可通过命令行手动或自动执行指令剧本,实现批量、标准化操作,如健康检查、数据采集、配置更新等。它简单易用,只需编写 WIS 指令剧本和 APT 帐号密码表文件,学习成本极低。支持不同流派的 Linux 系统,如 RHEL、Debian、SUSE 等,只要使用通用 Shell 命令即可通吃Linux设备。
下一篇
oss云网关配置