[development][dpdk][hugepage] 大页内存的挂载

参考:

[development][dpdk][hugepage] 为不同的结点分配不同大小的大页内存

完成了以上内容之后, 下一步需要做的是挂载, 大页内存只有被挂载了之后,才能被应用程序使用.

挂载方法如下: 参考dpdk文档:  http://dpdk.org/doc/guides/linux_gsg/sys_reqs.html

mkdir /mnt/huge
mount -t hugetlbfs nodev /mnt/huge

如果是有1G的大页, 需要给定默认参数 pagesize=1G, 否则将使用默认的大小.

nodev /mnt/huge_1GB hugetlbfs pagesize=1GB 0 0

参考: https://www.kernel.org/doc/Documentation/vm/hugetlbpage.txt

CentOS 7 里面, 有一个service : dev-hugepages.mount 默认将会对大页内存进行挂载:

[[email protected] crisp]# mount -l |grep huge
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime)

参考: https://www.freedesktop.org/wiki/Software/systemd/APIFileSystems/

引用一段话:

So you are seeing all kinds of weird file systems in the output of mount(8) that are not listed in /etc/fstab, and you wonder what those are, how you can get rid of them, or at least change their mount options.

上文提到, 如过想增加这个参数, 可以在 /etc/fstab 中进行挂载.

同时禁用掉dev-hugepages.mount ???

systemctl mask dev-hugepages.mount

当然还有一招, 文中没提, 但是我莫名的, 天然喜欢后者:

把dev-hugepages.mount 改一下.

/etc/fstab 也是被 systemd管理的, 实际上, /etc/fstab 和 mount.mount 最终是被统一管理的, 以挂载点, 即目录名, 作为唯一识别的标识.

优先顺序由前到后依次为:  /etc下的mount.mount > /etc/fstab > /usr下的mount.mount

摘自:  https://www.freedesktop.org/software/systemd/man/systemd.mount.html#

If a mount point is configured in both /etc/fstab and a unit file that is stored below /usr, the former will take precedence. If the unit file is stored below /etc, it will take precedence. This means: native unit files take precedence over traditional configuration files, but this is superseded by the rule that configuration in /etc will always take precedence over configuration in /usr.

基于以上:

  可以选择在/etc/fstab中增加一个/dev/hugepages 挂载点, 来覆盖 dev-hugepages.mount

[[email protected] ~]# cat /etc/fstab |grep huge
nodev /dev/hugepages hugetlbfs defaults,nofail,pagesize=1G 0 0
[[email protected] ~]# 
[[email protected] ~]# mount -l |grep hugetlbfs
nodev on /dev/hugepages type hugetlbfs (rw,relatime,pagesize=1G)

  或写个增加了选项的 /etc/systemd/system/dev-hugepages.mount 文件, 来覆盖默认参数.

  参数的具体写法: https://www.freedesktop.org/software/systemd/man/systemd.mount.html#Options

[[email protected] ~]# cp /usr/lib/systemd/system/dev-hugepages.mount  /etc/systemd/system/
[[email protected] ~]# diff /usr/lib/systemd/system/dev-hugepages.mount  /etc/systemd/system/dev-hugepages.mount
20a21
> Options=pagesize=1G
[[email protected] ~]# 
[[email protected] ~]# mount -l |grep hugepages
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,pagesize=1G)
[[email protected] ~]# 

这个时候只是做了基本的系统准备工作, 实际上, 还没有配置使用大页内存:

[[email protected] ~]# numastat -m |grep Huge
AnonHugePages               8.00            0.00            8.00
HugePages_Total             0.00             0.00            0.00
HugePages_Free              0.00             0.00            0.00
HugePages_Surp              0.00            0.00            0.00
[[email protected] ~]# 

手工方法:

[[email protected] ~]# echo 4 > /sys/devices/system/node/node1/hugepages/hugepages-1048576kB/nr_hugepages
[[email protected] ~]# numastat -m |grep Huge
AnonHugePages               8.00            0.00            8.00
HugePages_Total             0.00         2048.00         2048.00
HugePages_Free              0.00         2048.00         2048.00
HugePages_Surp              0.00            0.00            0.00
[[email protected] ~]# 

这样, 只在node1上分配好了大页内存, 而node0上没有.

时间: 2024-10-07 17:56:30

[development][dpdk][hugepage] 大页内存的挂载的相关文章

kvm 优化特性:ksm技术,大页内存等

参考: http://tech.it168.com/a2016/1101/3005/000003005933.shtml(ksm) http://www.cnblogs.com/dongzhiquan/p/5043912.html(大页内存优点) <kvm虚拟化技术 实战与原理解析> 简介: cow:copy on write,也就是写时复制.这是一种内存共享技术,在linux中当使用fork 函数创建一个进程时,子进程和父进程共享全部的内存,当这片共享的内存区域被进程试图修改的时候,内核会分

【翻译自mos文章】在使用Linux大页内存的配置中,使用drop_cache时导致的ORA-600 [KGHLKREM1]问题

在使用Linux大页内存的配置中,使用drop_cache时导致的ORA-600 [KGHLKREM1]问题 来源于: ORA-600 [KGHLKREM1] On Linux Using Parameter drop_cache On hugepages Configuration (文档 ID 1070812.1) 适用于: Oracle Database - Enterprise Edition - Version 10.2.0.1 and later Generic Linux ***C

大页内存(HugePages)

原文转载自:http://blog.csdn.net/yutianzuijin/article/details/41912871 今天给大家介绍一种比较新奇的程序性能优化方法—大页内存(HugePages),简单来说就是通过增大操作系统页的大小来减小页表,从而避免快表 缺失.这方面的资料比较贫乏,而且网上绝大多数资料都是介绍它在Oracle数据库中的应用,这会让人产生一种错觉:这种技术只能在Oracle数据库中 应用.但其实,大页内存可以算是一种非常通用的优化技术,应用范围很广,针对不同的应用程

大页内存原理及使用设置

大页内存原理及使用设置 版权声明:本文为博主原创文章,未经博主允许不得转载.

大页内存(HugePages)在通用程序优化中的应用

今天给大家介绍一种比较新奇的程序性能优化方法-大页内存(HugePages),简单来说就是通过增大操作系统页的大小来减小页表,从而避免快表缺失.这方面的资料比较贫乏,而且网上绝大多数资料都是介绍它在Oracle数据库中的应用,这会让人产生一种错觉:这种技术只能在Oracle数据库中应用.但其实,大页内存可以算是一种非常通用的优化技术,应用范围很广,针对不同的应用程序,最多可能会带来50%的性能提升,优化效果还是非常明显的.在本博客中,将通过一个具体的例子来介绍大页内存的使用方法. 在介绍之前需要

Linux大页内存管理等---菜鸟初学

1. 查看linux的内存情况: free -m 2. 查看是否开启大页的方法: cat /proc/meminfo |grep -i HugePage AnonHugePages: 276480 kBHugePages_Total: 0HugePages_Free: 0HugePages_Rsvd: 0HugePages_Surp: 0Hugepagesize: 2048 kB 含义 HugePages_Total: 0 总共大页数目HugePages_Free: 0 空闲数目HugePage

HugePage 大页

HugePage 普通的内存页面大小是 4 KB 1. Hugepage的引入 而系统的内存管理一般是通过虚拟地址到物理地址的映射.虚拟地址一般是在磁盘虚拟出的一块逻辑内存.这部分磁盘空间Windows下称之为虚拟内存,Linux下被称为交换空间(Swap Space). CPU必须将虚拟地址转换成物理地址,才能够真正的访问内存.为了提高转换的效率,CPU会在cache中缓存最近的虚拟地址到物理地址的映射关系,保存在cpu维护的映射表中.为了提高内存的访问速度,需要在映射表中保存尽可能多的映射关

centos里面关闭大页内存机制

root用户下 在vi /etc/rc.local最后添加如下代码 if test -f /sys/kernel/mm/transparent_hugepage/enabled; thenecho never > /sys/kernel/mm/transparent_hugepage/enabledfiif test -f /sys/kernel/mm/transparent_hugepage/defrag; thenecho never > /sys/kernel/mm/transparen

LINUX下为ORACLE数据库设置大页--hugepage

在Linux中配置hugepage可以提高oracle的性能,减少oracle sga的页交换,类似于aix中的lagepage. 为什么 使用大页? LINUX内存的默认块大小是4K如果SGA为:128Gselect 128*1024*1024/4 from dual;33554432个(三千多万),select 128*1024/2 from dual; 65536个每个内存页,有一个页表项(大概10个字节),记录页的状态.位置默认块大小是4K时--页表大小:320M.在大页下2M时,页表只