Linux系统下快速配置HugePages的完整步骤
作者:AlfredZhao 发布时间:2023-07-24 19:13:12
标签:hugepages,linux,配置
前言
关于Linux系统的HugePages与Oracle数据库优化,可以参考熊爷之前的文章,相关概念介绍的非常清晰:
Linux大内存页Oracle数据库优化
本文旨在Linux系统上快速配置HugePages
测试环境:RHEL6.8 + 512G物理内存;Oracle 11.2.0.4 SGA=400G.
1.设置memlock无限制
在/etc/security/limits.conf配置文件中,设置oracle用户memlock无限制:
vi /etc/security/limits.conf
oracle soft memlock unlimited
oracle hard memlock unlimited
2.设置合理的vm.nr_hugepages
在/etc/sysctl.conf配置文件中,设置合理的vm.nr_hugepages值。
运行MOS 401749.1提供的hugepages_settings.sh脚本,直接可以得到建议值。
hugepages_settings.sh脚本内容:
#!/bin/bash
#
# hugepages_settings.sh
#
# Linux bash script to compute values for the
# recommended HugePages/HugeTLB configuration
# on Oracle Linux
#
# Note: This script does calculation for all shared memory
# segments available when the script is run, no matter it
# is an Oracle RDBMS shared memory segment or not.
#
# This script is provided by Doc ID 401749.1 from My Oracle Support
# http://support.oracle.com
# Welcome text
echo "
This script is provided by Doc ID 401749.1 from My Oracle Support
(http://support.oracle.com) where it is intended to compute values for
the recommended HugePages/HugeTLB configuration for the current shared
memory segments on Oracle Linux. Before proceeding with the execution please note following:
* For ASM instance, it needs to configure ASMM instead of AMM.
* The 'pga_aggregate_target' is outside the SGA and
you should accommodate this while calculating SGA size.
* In case you changes the DB SGA size,
as the new SGA will not fit in the previous HugePages configuration,
it had better disable the whole HugePages,
start the DB with new SGA size and run the script again.
And make sure that:
* Oracle Database instance(s) are up and running
* Oracle Database 11g Automatic Memory Management (AMM) is not setup
(See Doc ID 749851.1)
* The shared memory segments can be listed by command:
# ipcs -m
Press Enter to proceed..."
read
# Check for the kernel version
KERN=`uname -r | awk -F. '{ printf("%d.%d\n",$1,$2); }'`
# Find out the HugePage size
HPG_SZ=`grep Hugepagesize /proc/meminfo | awk '{print $2}'`
if [ -z "$HPG_SZ" ];then
echo "The hugepages may not be supported in the system where the script is being executed."
exit 1
fi
# Initialize the counter
NUM_PG=0
# Cumulative number of pages required to handle the running shared memory segments
for SEG_BYTES in `ipcs -m | cut -c44-300 | awk '{print $1}' | grep "[0-9][0-9]*"`
do
MIN_PG=`echo "$SEG_BYTES/($HPG_SZ*1024)" | bc -q`
if [ $MIN_PG -gt 0 ]; then
NUM_PG=`echo "$NUM_PG+$MIN_PG+1" | bc -q`
fi
done
RES_BYTES=`echo "$NUM_PG * $HPG_SZ * 1024" | bc -q`
# An SGA less than 100MB does not make sense
# Bail out if that is the case
if [ $RES_BYTES -lt 100000000 ]; then
echo "***********"
echo "** ERROR **"
echo "***********"
echo "Sorry! There are not enough total of shared memory segments allocated for
HugePages configuration. HugePages can only be used for shared memory segments
that you can list by command:
# ipcs -m
of a size that can match an Oracle Database SGA. Please make sure that:
* Oracle Database instance is up and running
* Oracle Database 11g Automatic Memory Management (AMM) is not configured"
exit 1
fi
# Finish with results
case $KERN in
'2.2') echo "Kernel version $KERN is not supported. Exiting." ;;
'2.4') HUGETLB_POOL=`echo "$NUM_PG*$HPG_SZ/1024" | bc -q`;
echo "Recommended setting: vm.hugetlb_pool = $HUGETLB_POOL" ;;
'2.6') echo "Recommended setting: vm.nr_hugepages = $NUM_PG" ;;
'3.8') echo "Recommended setting: vm.nr_hugepages = $NUM_PG" ;;
'3.10') echo "Recommended setting: vm.nr_hugepages = $NUM_PG" ;;
'4.1') echo "Recommended setting: vm.nr_hugepages = $NUM_PG" ;;
esac
# End
直接运行脚本即可得到对应的建议:
--当启动的实例设置SGA_MAX_SIZE=12G,给出建议:
Recommended setting: vm.nr_hugepages = 6148
--当启动的实例设置SGA_MAX_SIZE=400G,给出建议:
Recommended setting: vm.nr_hugepages = 204805
--当没有启动实例时,会报错提示:
***********
** ERROR **
***********
Sorry! There are not enough total of shared memory segments allocated for
HugePages configuration. HugePages can only be used for shared memory segments
that you can list by command:
# ipcs -m
of a size that can match an Oracle Database SGA. Please make sure that:
* Oracle Database instance is up and running
* Oracle Database 11g Automatic Memory Management (AMM) is not configured
我这里将建议值vm.nr_hugepages = 204805追加到/etc/sysctl.conf配置文件中,然后执行sysctl -p生效配置。
3.确认HugePages设置成功
查看关于HugePages的信息,注意HugePages_Total值是之前设置的204805:
grep Huge /proc/meminfo
# grep Huge /proc/meminfo
AnonHugePages: 0 kB
HugePages_Total: 204805
HugePages_Free: 168475
HugePages_Rsvd: 168471
HugePages_Surp: 0
Hugepagesize: 2048 kB
数据库在启动时,对应alert日志中会有“Large Pages Information”内容:
Wed Nov 14 14:38:12 2018
Starting ORACLE instance (normal)
************************ Large Pages Information *******************
Per process system memlock (soft) limit = UNLIMITED
Total Shared Global Region in Large Pages = 400 GB (100%)
Large Pages used by this instance: 204801 (400 GB)
Large Pages unused system wide = 4 (8192 KB)
Large Pages configured system wide = 204805 (400 GB)
Large Page size = 2048 KB
********************************************************************
至此可以确认HugePages设置成功。
来源:http://www.cnblogs.com/jyzhao/p/9961336.html
0
投稿
猜你喜欢
- 自己做站几个月了,还是个高中生,也没太多时间,所以属于新手中的菜鸟,什么也不懂,如果说的不对,还希望大家能够指正。谢谢。.第一次做站记得是个
- Windows2003服务器安装及设置教程好久没有更新了,正好最近上了一台服务器,正好把剩下的几篇补全,今天先说的是MSSQL安全篇第二篇—
- V5SHOP CEO 讲述网店的三个核心盈利点v5shop的成新东来和大家一起探讨当前甚至今后10年内都非常热门的话题电子商务。其实对于电子
- 中国人民银行县支行服务器(Windows NT)一般既作为单位内部局域网的域控制器,又担负着网上公文处理、共享资源管理和收发电子邮件等重要任
- 服务器数据存储安全是保障服务器正常运行的重要的环节,同时也是企业网络信息化建设的核心。每一家企业的管理层人员都非常重视存储在服务器的重要数据
- 经常看到有人在论坛里问URL的绝对路径和相对路径问题,在网站中应该使用哪种?对SEO有什么影响?这实际上没有绝对的答案,两者各有优缺点。Go
- 教程二(godaddy域名转出):此文主要介绍获取Godaddy域名转移码,将godaddy域名转出到其他域名注册商.1.还是老样子,找到D
- 在了解了Exchange Server Store的工作方式和特点以后,我们接下来介绍一些邮件存储系统的管理技巧。管理员在掌握了原理以后会对
- 我最近一直在阅读一些关于Google Adsense技巧的论坛和博客,我觉得有必要将这些技巧都集中整理在一个地方,同时我也写了几个我自己的诀
- 各位站长好,以前给百度客服打过N次电话,每每问及近期收录相关事谊都不给允回答。今天又打了一次。接电话的是个男的,听声音好像未成年...(日小
- 2007 年 10 月期间我们在全国6个城市举办了 AdSense 产品介绍会,期间有很多的发布商朋友提出了很多很好的意见和建议。这里我们就
- 网络上曾经有过关于跨站脚本攻击与防御的文章,但是随着攻击技术的进步,以前的关于跨站脚本攻击的看法与理论已经不能满足现在的攻击与防御的需要了,
- 本文说明godaddy主机如何绑定域名到子文件夹,新建一个网站1. 登录godaddy账户,再产品列表中点击Hosting Account
- 题目有点大,网站的价值和价格,用英文就是说,value和price之间的那些事情。最近时常在思考这个问题。一个网站,存在在那里,有几千几万个
- 很多新手的站长感觉建站难了、维护难了、推广更难了,一是由于国内禁止个人注册CN域名导致建站成本迅速上升,二是国家对网络管理异常严格,所有与色
- 百度热门关键词能带来很大的流量,这是大家有目共睹的事情。看看百度指数,如“货架”、“手机”这些词每天的检索量都过千过万。现在SEO教程都是“
- 一、关键词位置、密度、处理1.URL中出现关键词(英文)2.网页标题中出现关键词(1-3个)3.关键词标签中出现关键词(1-3个)4.描述标
- 公司一台服务器,网络环境太高,那台服务器和源服务器连接下载,就跑到400M-500M,为了控制一下,所以研究了一下TC.来做流量控制。给他控
- 图为一位顾客在美国百思买超市查看已经上架待售的Windows 7套装。Win7今日起正式发售,其界面效果华丽无比。图/CFP备受瞩目的微软新
- 包括winform和webform两套系统。其中winform负责收集服务器信息,webform用于远程查看收集的信息(从数据库)。各种状态