佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 527|回复: 1

配置 HugePages 提高设备性能 (BASH 脚本)

[复制链接]
发表于 17-3-2018 10:15 AM | 显示全部楼层 |阅读模式
本帖最后由 jasonmun 于 17-3-2018 02:55 PM 编辑

https://linux.cn/article-9450-1.html

“大内存页” (HugePages) 有助于 Linux 系统进行虚拟内存管理。
顾名思义,除了标准的 4KB 大小的页面外,它们还能帮助管理内存中的巨大的页面。
使用“大内存页”,你最大可以定义 1GB 的页面大小。

在系统启动期间,你能用“大内存页”为应用程序预留一部分内存。
这部分内存,即被“大内存页”占用的这些存储器永远不会被交换出内存。
它会一直保留其中,除非你修改了配置。
这会极大地提高像 Oracle 数据库这样的需要海量内存的应用程序的性能。

在虚拟内存管理中,内核维护一个将虚拟内存地址映射到物理地址的表,
对于每个页面操作,内核都需要加载相关的映射。如果你的内存页很小,
那么你需要加载的页就会很多,导致内核会加载更多的映射表。而这会降低性能。

使用“大内存页”,意味着所需要的页变少了。
从而大大减少由内核加载的映射表的数量。
这提高了内核级别的性能最终有利于应用程序的性能

简而言之,通过启用“大内存页”,系统具只需要处理较少的页面映射表,
从而减少访问/维护它们的开销!

1) 检查

$ su
$ grep Huge /proc/meminfo

AnonHugePages:         0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB


从上面输出可以看到,每个页的大小为 2MB(Hugepagesize),
并且系统中目前有 0 个“大内存页”(HugePages_Total)。
这里“大内存页”的大小可以从 2MB 增加到 1GB。

2) 运行下面的脚本可以知道系统当前需要多少个巨大页

# 根据你的目前内核, 可能需要修改 hugepages.sh, 不然程序不运行
$ wget https://github.com/yomun/linux-init/raw/master/linux/hugepages.sh
$ sh hugepages.sh
Recommended setting: vm.nr_hugepages = 13

2.1) /etc/sysctl.conf 中,
写入以下这行 (以上知道需要 13 页, 为了效果更好, 加多2页),
然后输入 sysctl -p 让它生效
$ gedit /etc/sysctl.conf
vm.nr_hugepages=15

$ sysctl -p

2.2) /etc/security/limits.conf 中,写入以下2行, 然后重启
$ gedit /etc/security/limits.conf
# 15 x 2 (MB) x 1024 = 30720
soft memlock 30720
hard memlock 30720

3) 检查

# Ubuntu
$ cat /sys/kernel/mm/transparent_hugepage/enabled
always [madvise] never

# Red Hat
$ cat /sys/kernel/mm/redhat_transparent_hugepage/enabled

4) 禁用 “大内存页”

则在 /etc/grub.conf 中的 kernel 行
后面加上 transparent_hugepage=never,
然后重启系统
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 17-3-2018 02:36 PM | 显示全部楼层
经过测试,
利用了 HugePages 的确优化了程序的启动.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 15-12-2024 07:06 AM , Processed in 0.107180 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表