日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

oracle hugepage设置,Linux系统下快速配置HugePages的完整步骤

發(fā)布時間:2023/12/20 linux 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle hugepage设置,Linux系统下快速配置HugePages的完整步骤 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Linux系統(tǒng)上快速配置HugePages,測試環(huán)境:RHEL6.8 + 512G物理內(nèi)存;Oracle 11.2.0.4 SGA=400G.

1.設(shè)置memlock無限制

在/etc/security/limits.conf配置文件中,設(shè)置oracle用戶memlock無限制:

vi /etc/security/limits.conf

oracle soft memlock unlimited

oracle hard memlock unlimited

2.設(shè)置合理的vm.nr_hugepages

在/etc/sysctl.conf配置文件中,設(shè)置合理的vm.nr_hugepages值。

運(yùn)行MOS 401749.1提供的hugepages_settings.sh腳本,直接可以得到建議值。

hugepages_settings.sh腳本內(nèi)容:

#!/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

直接運(yùn)行腳本即可得到對應(yīng)的建議:

--當(dāng)啟動的實(shí)例設(shè)置SGA_MAX_SIZE=12G,給出建議:

Recommended setting: vm.nr_hugepages = 6148

--當(dāng)啟動的實(shí)例設(shè)置SGA_MAX_SIZE=400G,給出建議:

Recommended setting: vm.nr_hugepages = 204805

--當(dāng)沒有啟動實(shí)例時,會報錯提示:

***********

** 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配置文件中,然后執(zhí)行sysctl -p生效配置。

3.確認(rèn)HugePages設(shè)置成功

查看關(guān)于HugePages的信息,注意HugePages_Total值是之前設(shè)置的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

數(shù)據(jù)庫在啟動時,對應(yīng)alert日志中會有“Large Pages Information”內(nèi)容:

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

********************************************************************

至此可以確認(rèn)HugePages設(shè)置成功。

總結(jié)

以上是生活随笔為你收集整理的oracle hugepage设置,Linux系统下快速配置HugePages的完整步骤的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。