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

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

IO Alignment Considerations

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

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

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

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

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

Ø 大页造成空间浪费。

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

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

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

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

$ getconf PAGE_SIZE

4096

或:

$ getconf PAGESIZE

4096

通过cat /proc/meminfo|grep -i hugepage验证系

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页
实付 9.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值