银河麒麟服务器系统开启,关闭和设置透明大页(transparent_hugepage)

这篇具有很好参考价值的文章主要介绍了银河麒麟服务器系统开启,关闭和设置透明大页(transparent_hugepage)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


​ 前言:大页内存(HugePages),有时也叫“大内存页”、“内存大页”、“标准大页”。操作系统以内存页为单位管理内存,内存页的大小对系统性能有影响。内存页设得太小,内存页会很多,管理内存页的数组会比较大,耗内存,同时TLB(Translation Lookaside Buffer,页表寄存缓冲器,可理解为页表缓冲)大小是固定的,导致TLB MISS增加。在不同的应用场合,内存页的大小的最优值是不同的。所以一般的系统都支持多种内存页的取值。

一 基础环境信息

1.1 系统版本
nkvers
############## Kylin Linux Version #################
Release:
Kylin Linux Advanced Server release V10 (Sword)

Kernel:
4.19.90-24.4.v2101.ky10.x86_64

Build:
Kylin Linux Advanced Server
release V10 (SP2) /(Sword)-x86_64-Build09/20210524
#################################################
1.2 always,madvise,never参数解释
always: 表示透明大页启用(一直处于启用状态并动态分配内存)
madvise:表示透明大页启用(需要时动态分配内存)
never:  表示透明大页禁用

always和madvise参数的区别:
	madvise表示在MADV_HUGEPAGE标志的VMA中使用THP。当应用程序需要大页时,它可以设置MADV_HUGEPAGE标志,然后内核将根据这个标志动态地分配和管理内存。这种分配方式可以提高应用程序的性能,并且可以避免一些内存管理问题。
	always表示透明大页一直处于启用状态,也就是说,内核将一直使用透明大页进行内存分配。这种方式与标准的内存分配方式不同,标准大页管理是预分配的方式,而透明大页管理则是动态分配的方式。
		
	madvise和always的主要区别在于内存分配方式上。madvise是当需要时动态分配内存,而always则是一直处于启用状态并动态分配内存。
1.3 meminfo中涉及透明页的参数解释
AnonHugePages: AnonHugePages的统计值并不包含所有的匿名页,只包含已经分配的透明大页。其他的匿名页统计在AnonPages中。
ShmemHugePages:用于共享内存或tmpfs的透明大页。
ShmemPmdMapped:用户态共享内存映射的透明大页。
FileHugePages: 与AnonHugePages对应,用户态透明大页中的文件页。
FilePmdMapped: 用户态文件页映射的透明大页。

HugePages_Total:系统中总的页数量。
HugePages_Free:当前可用的页数量。
HugePages_Rsvd:当前被保留(但未被使用)的页数量。
HugePages_Surp:系统中超出实际内存需求配置的页数量,通过nr_overcommit_hugepages设置。
Hugepagesize:单个页的大小(以字节为单位)。
1.4 额外说明

(1)配置了透明大页vm.nr_hugepages之后,这一部分内存会直接从系统里面划走。计算方法:Hugepagesize的值乘以HugePages_Total的值。
(2)在多NUMA环境下,vm.nr_hugepages设置的是每个NUMA节点可以使用的最大透明页数量。因此,每个NUMA结点都会分配这个数量的内存页。这些内存页会在处理器的内存中连续存放,形成一个大的内存页帧。
(3)银河麒麟V10-SP2系统中不同架构默认的页大小不一样,在配置的时候大家要注意下:X86架构默认的单个页大小为2MB,ARM默认的单个页大小为512MB,如果需要查询确认的话执行命令:cat /proc/meminfo | grep Hugepagesize

二 关闭透明大页

2.1 查看透明大页设置
cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never

#默认是已启用透明大页 
2.2 修改/etc/default/grub文件

编辑/etc/default/grub文件,GRUB_CMDLINE_LINUX配置参数"transparent_hugepage=never",下面是编辑完之后的文件内容:

cat /etc/default/grub 
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="resume=/dev/mapper/klas-swap rd.lvm.lv=klas/root rd.lvm.lv=klas/swap rhgb quiet crashkernel=1024M,high transparent_hugepage=never"
GRUB_DISABLE_RECOVERY="true"
2.3 重新生成grub.cfg

(1)UEFI传统的Legacy BIOS启动 grub引导文件路径不一致,先需要查看系统是UEFI启动还是传统的Legacy BIOS启动

[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS
BIOS
#如果输出是UEFI则表示是UEFI启动
#如果输出是BIOS则表示是传统的Legacy BIOS启动

传统的Legacy BIOS启动文件路径:
/boot/grub2/grub.cfg

UEFI启动文件路径:
/boot/efi/EFI/kylin/grub.cfg

(2)根据查到的实际情况更新grub引导文件

grub2-mkconfig -o /boot/grub2/grub.cfg
2.4 重启服务器使其生效
reboot
2.5 验证
cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
上述输出中,如果中括号的值为never,说明已禁用透明大页

三 开启透明大页

将transparent_hugepage=never改为transparent_hugepage=always,按照2.2-2.5的步骤执行即可。

四 配置透明大页

3.1 临时配置
sysctl -w vm.nr_hugepages=100  #临时改变,重启失效
3.2 永久生效

编辑/etc/sysctl.conf文件,添加vm.nr_hugepages参数

vim /etc/sysctl.conf
添加如下参数:
vm.nr_hugepages=100
#设置页个数为100个,默认单个大小为2M

执行sysctl -p生效
3.3 查看配置情况
[root@localhost ~]# cat /proc/meminfo  | grep Huge
AnonHugePages:     20480 kB
ShmemHugePages:        0 kB
HugePages_Total:     100
HugePages_Free:      100
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
Hugetlb:          204800 kB

可以看到配置已经成功了,页配置了100个,剩余100,单个页大小2MB。

配置了vm.nr_hugepages之后,这一部分内存会直接从系统里面划走。

Hugepagesize的值乘以HugePages_Total的值=2MB*100=200MB 相当于配置了200MB的透明页。文章来源地址https://www.toymoban.com/news/detail-802747.html

(1)没添加之前的内存使用
[root@localhost ~]# free -hg
              total        used        free      shared  buff/cache   available
Mem:          1.9Gi       324Mi       1.3Gi        17Mi       339Mi       1.4Gi
Swap:         2.0Gi          0B       2.0Gi
(2)修改完毕之后的内存使用
[root@localhost ~]# vim /etc/sysctl.conf 
[root@localhost ~]# sysctl -p
kernel.sysrq = 0
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.all.secure_redirects = 0
net.ipv4.conf.default.secure_redirects = 0
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.tcp_syncookies = 1
kernel.dmesg_restrict = 1
net.ipv6.conf.all.accept_redirects = 0
net.ipv6.conf.default.accept_redirects = 0
vm.nr_hugepages = 100
[root@localhost ~]# free -hg
              total        used        free      shared  buff/cache   available
Mem:          1.9Gi       526Mi       1.1Gi        17Mi       343Mi       1.2Gi
Swap:         2.0Gi          0B       2.0Gi

##可以发现剩余内存里面直接少了200MB的内存

到了这里,关于银河麒麟服务器系统开启,关闭和设置透明大页(transparent_hugepage)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用U盘安装银河麒麟服务器操作系统V10SP2出现“设置基础软件仓库时出错”报错导致无法继续安装的解决方法

    操作系统版本:银河麒麟高级服务器操作系统V10SP2-20210524(x86_64) 使用Rufus工具制作U盘启动盘; 修改启动项,选择从U盘启动; 进入系统安装界面,这里可以看到在“软件”-“安装源”选项上报错了,提示“设置基础软件仓库时出错”; 点击“安装源”进到安装源配置页面

    2024年02月02日
    浏览(242)
  • 银河麒麟服务器系统部署VNC服务远程图形化教程

    一、银河麒麟高级服务器V 10 版安装部署V NC 服务 1、yum安装vnc服务: yum install tigervnc-server -y 2、开启并配置vnc服务,如下图所示输入 vncserver ,并按提示输入密码: 如下图所示:检查vnc服务及其端口是否启动: netstat -ntlp ps -aux | grep vnc 3、配置防火墙(选择关闭防火墙或放开

    2024年03月26日
    浏览(95)
  • 银河麒麟服务器系统单用户模式修改密码

    前言:对于有忘记密码,系统启动无法正常加载(1.fstab文件内容写错导致系统启动卡住,2.部署应用使用和系统同名的so库,导致调用异常系统启动卡住,3.某个服务启动有问题导致系统启动卡住)等问题,需要进入到系统的单用户模式进行文件内容修改和排查。 对于系统而

    2024年02月02日
    浏览(49)
  • 《银河麒麟高级服务器操作系统V10》使用

    一言而论:讲了麒麟服务器V10的基本使用,包括终端、VNC 公司接到项目,要求使用信创产品,这不,赶紧学习一下国产系统、数据库啥的熟悉一下。 由于笔者的电脑性能吃紧,只好多拿另一台电脑做测试。架构是这样的:使用1台计算机作为开发机,另外1台作为宿主机,然后

    2024年02月04日
    浏览(56)
  • 银河麒麟服务器操作系统配置bond1

    1、查看当前系统网卡信息:在终端输入:ifconfig,可以看到当前系统存在ens33、ens37两块网卡 2、创建bond虚拟网卡,命令如下: 3、为bond网卡添加成员(真实网卡),命令: 添加完成之后,命令:nmcli connect 查询新添加的附属网卡是否启用,如未启用,需要用命令进行启用 4、

    2024年02月06日
    浏览(88)
  • 银河麒麟v10服务器操作系统安装配置

    镜像下载地址:https://www.kylinos.cn/scheme/server.html 网卡这里给了两张,一张nat模式,一张选择仅主机模式 接下来就可以启动虚拟机进入系统安装步骤,安装过程感觉跟centos7.5基本一模一样 为了方便使用命令行模式,我选了英文 这里软件的话看需要,建议什么都不选,但切记要

    2024年02月11日
    浏览(56)
  • 银河麒麟高级服务器操作系统 V10 安装手册

    银河麒麟高级服务器操作系统 V10 安装手册 本手册适用于 银河麒麟高级服务操作系统V10SP系列版本(包含SP1、SP2、SP3等) 第一章 概述 本手册面向系统管理员及相关技术人员,实现在服务器整机上使用图形化界面快速完成银河麒麟高级服务器操作系统 V10(以下简称“银河麒

    2024年03月15日
    浏览(61)
  • 银河麒麟v10服务器系统配置vnc及自启

    安装vnc安装包: yum install tigervnc-server -y 复制 vnc 启动脚本并更改名称。如,vncserver@:1.service 中的 :1 表示“桌面号” 对应启动的网络端口号就是 5900+桌面号 ,即 5901 。如果再有一个就是 2 ,端口号就是 5902 ,以此类推: 以 root 用户访问 VNC 为例,编辑刚复制的新文件: 设置

    2024年02月13日
    浏览(38)
  • 使用u盘安装银河麒麟高级服务器操作系统

    直接进入主题 第一步:下载银河麒麟高级服务器操作系统 进入麒麟官网,申请试用,然后下载相应的版本即可。 麒麟官网地址 国产操作系统、麒麟操作系统——麒麟软件官方网站 (kylinos.cn) 第二步:制作启动u盘   这是我制作启动u盘的软件,需要的可以自取(里面还有一个

    2024年04月23日
    浏览(122)
  • 银河麒麟服务器操作系统【进入救援模式】操作指南

     银河麒麟服务器操作系统使用光驱或者U盘启动盘引导进入救援模式的操作方法类似,这里不再阐述。 以银河麒麟服务器操作系统V10使用光驱或者U盘启动盘进入救援模式为例,具体操作步骤如下: 1.插入光驱或者U盘启动盘后,重启系统,再根据屏幕下方的提示,按相应键进

    2024年01月21日
    浏览(99)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包