大页(huge pages) 三大系列 ---计算大页配置参数

使用以下shell 脚本来计算大页配置参数,确保使用脚本实例之前的数据已经开始,

如果数据库的版本号11g,确认是否使用自己主动的内存管理(AMM)

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

#!/bin/bash

#

# hugepages_settings.sh

#

# Linux bash script to compute values for the

# recommended HugePages/HugeTLB configuration

#

# 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. 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 HugePagesconfiguration,

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 notsetup

(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 wherethe script is being executed."

exit 1

fi

# Initialize the counter

NUM_PG=0

# Cumulative number of pages required to handle the running shared memorysegments

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 sharedmemory segments allocated for

HugePages configuration. HugePages can only be used for shared memorysegments

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 notconfigured"

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" ;;

esac

# End

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

版权声明:本文博客原创文章,博客,未经同意,不得转载。

时间: 07-01

大页(huge pages) 三大系列 ---计算大页配置参数的相关文章

Java JUC之Atomic系列12大类实例讲解和原理分解

Java JUC之Atomic系列12大类实例讲解和原理分解 2013-02-21      0个评论       作者:xieyuooo 收藏    我要投稿 在java6以后我们不但接触到了Lock相关的锁,也接触到了很多更加乐观的原子修改操作,也就是在修改时我们只需要保证它的那个瞬间是安全的即可,经过相应的包装后可以再处理对象的并发修改,以及并发中的ABA问题,本文讲述Atomic系列的类的实现以及使用方法,其中包含: 基本类:AtomicInteger.AtomicLong.Atomic

F - 小晴天老师系列——苹果大丰收

F - 小晴天老师系列——苹果大丰收 Time Limit: 2000/1000MS (Java/Others)    Memory Limit: 128000/64000KB (Java/Others) Submit Status Problem Description 小晴天的后花园有好多好多的苹果树,某天,苹果大丰收~小晴天总共摘了M个苹果,我们假设苹果之间是不可分辨的. 为了保存苹果,小晴天买了N个一模一样的箱子,想要把苹果放进去,允许有的箱子是空的,请问小晴天有多少种不同的放法呢? 例

Python系列教程大汇总

Python初级教程 Python快速教程 (手册) Python基础01 Hello World! Python基础02 基本数据类型 Python基础03 序列 Python基础04 运算 Python基础05 缩进和选择 Python基础06 循环 Python基础07 函数 Python基础08 面向对象的基本概念 Python基础09 面向对象的进一步拓展 Python基础10 反过头来看看 Python补充01 序列的方法 Python中级教程 Python进阶01 词典 Pytho

Android 软件开发与游戏开发1 至 32系列博文大合集

Android 软件开发与游戏开发1 至 32系列博文大合集Android 软件开发与游戏开发1 至 32系列博文大合集 http://www.qdmm.com/BookReader/17958,65822595.aspxhttp://www.qdmm.com/BookReader/17958,65822597.aspxhttp://www.qdmm.com/BookReader/17958,65822598.aspxhttp://www.qdmm.com/BookReader/17958,65

大屏设计系列之五——大屏设计语言分析

如果您想订阅本博客内容,每天自动发到您的邮箱中,请点这里 作者:蓝蓝 蓝蓝设计经常会接到大屏设计的项目,比如中国移动互联网监控大屏可视化设计及开发.太极集团承接的中央台应急指挥中心大屏可视化设计.交大思源承接的北京地铁轨道批挥中心大屏可视化设计.数码视讯展厅大屏可视化设计,在积累了一定经验的同时,也在不断的学习和丰富关于大屏设计的特点及数据可视化的表达方式. 数据可视化过滤了非常多的冗余信息,浓缩了最重要的信息,它的魅力就在于将枯燥的数据组织在一起,把最需要的那些编辑成一个故事.目前大数据那么流

大数据学习总结(8)大数据场景

大数据场景一.各种标签查询 查询要素:人.事.物.单位 查询范围:A范围.B范围.... 查询结果:pic.name.data from 1.痛点:对所有文本皆有实时查询需求2.难点:传统SQL使用WHERE子句匹配LIKE关键词,在庞大的数据字段中搜索某些想要的字,需遍历所有数据页或者索引页,查询效率底,当出现千万级以上数据时,耗时较高,无法满足实时要求3.方案:使用全文检索方案,分布式架构,即使PB级量级也可做到毫秒级查询 大数据场景二.客户事件查询 查询条件:城市.区域.时间跨度(2017

从大数据的应用谈如何成为大数据大师的历程

以下数据显示,中国大数据IT应用投资规模,应用以五大行业最高,其中以互联网行业占比最高,占大数据IT应用投资规模的28.9%,其次是电信领域(19.9%),第三为金融领域(17.5%),政府和医疗分别为第四和第五,请看如下图: 根据国际知名咨询公司麦肯锡的报告显示:在大数据应用综合价值潜力方面,信息技术.金融保险.政府及批发贸易四大行业潜力最高,具体到行业内每家公司的数据量来看,信息.金融保险.计算机及电子设备.公用事业四类的数据量最大,因此:无论是投资规模和应用潜力来看,信息行业(互联网和电信

由多个电容组成的去耦旁路电路,电容怎么布局摆放,先大后小还是先小后大?

由多个电容组成的去耦旁路电路,电容怎么布局摆放,先大后小还是先小后大? PCB设计规范与指南, 电磁兼容 EMC, 高频高速PCB设计 by xfire 去耦旁路电磁兼容高速电路设计 对于噪声敏感的IC电路,为了达到更好的滤波效果,通常会选择使用多个不同容值的电容并联方式,以实现更宽的滤波频率,如在IC电源输入端用1μF.100nF和10nF并联可以实现更好的滤波效果.那现在问题来了,这几个不同规格的电容在PCB布局时该怎么摆,电源路径是先经大电容然后到小电容再进入IC,还是先经过小电容再经过大

大数据高性能数据库Redis在Windows上的配置

Redis学习笔记----Redis在windows上的安装和配置 Redis简介 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set --有序集合)和hash(哈希类型).这些数据类型都支持push/pop.add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的.在此基础上,redis支持各种不同方式的排序.与memcach