HugePage计算需要SGA等生成,需要先配置好内存#!/bin/bash##hugepages_settings.sh##Linuxbash脚本计算值的#recommendedHugePages/HugeTLBconfiguration#onOracleLinux##Note:Thisscriptdoes计算脚本运行时可用的所有共享内存#段,无论它#是否是OracleRDBMS共享内存段。##该脚本由MyOracleSupport的文档ID401749.1提供#http://support.oracle.com#查看内核版本KERN=`uname-r|awk-F。'{printf("%d.%d\n",$1,$2);}'`#找出HugePagesizeHPG_SZ=`grepHugepagesize/proc/meminfo|awk'{print$2}'`if[-z"$HPG_SZ"];thenecho"执行脚本的系统可能不支持大页面。"exit1fi#初始化计数器NUM_PG=0#`ipcs-m|处理正在运行的共享内存段所需的累积页数forSEG_BYTES|切-c44-300|awk'{print$1}'|grep"[0-9][0-9]*"`doMIN_PG=`echo"$SEG_BYTES/($HPG_SZ*1024)"|bc-q`if[$MIN_PG-gt0];thenNUM_PG=`echo"$NUM_PG+$MIN_PG+1"|bc-q`fidoneRES_BYTES=`echo"$NUM_PG*$HPG_SZ*1024"|bc-q`#小于100MB的SGA没有意义#如果是这种情况则退出if[$RES_BYTES-lt100000000];thenecho"************"echo“**错误**”回声“************”回声“对不起!为HugePages配置分配的共享内存段总数不足。HugePages只能用于可以通过命令列出的共享内存段:#ipcs-mof大小可以匹配Oracle数据库SGA。请确保:*Oracle数据库实例已启动并正在运行*Oracle数据库11g自动内存管理(AMM)未配置"exit1fi#Finishwithresultcase$KERNin'2.4')HUGETLB_POOL=`echo"$NUM_PG*$HPG_SZ/1024"|bc-q`;echo"vm.hugetlb_pool=$HUGETLB_POOL";;'2.6'|'3.8'|'3.10'|'4.1'|'4.14'|'4.18'|'5.4')echo"vm.nr_hugepages=$NUM_PG";;*)echo"内核版本$KERN不受此脚本支持(目前)。正在退出。";;esac#结束
