windows和linnux 平臺如何啟用 Large page?
Oracle database在10gR1之後開始支援Large page。我們知道作業系統預設的頁面大小為4k。如果記憶體空間比較大,則需要進行頻繁的頁分配和管理定址動作,管理這些記憶體的消耗就比較大。啟用大頁後,HugePage會使用2M大小的頁面,能減少CPU和記憶體管理方面的開銷,進而提升效能。建議OS記憶體超過16G時,啟用huagepage。
注意:大頁只對SGA元件起作用,對PGA、UGA無效。如果啟用大頁,無需設定pre_page_sga,lock_sga(因為使用hugePage管理的記憶體不能被Swap)。如果使用了HugePage,11g/12c新特性AMM(Automatic Memory Management)就不能使用了,但是ASMM(Automatic Shared Memory Management)可以繼續使用。
如何在Windows上啟用大頁
A.找到下面的選項
10g:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb10g_home1
ORA_LPENABLE=1 對所有例項啟用大頁
Starting ORACLE instance (normal)
Large page enabled : 1
Large page size : 2097152
Large page request size : 33554432
如何在Linux上啟用大頁
1.Edit the memlock setting in the /etc/security/limits.conf file. The memlock setting is specified in KB and set slightly lesser than the installed RAM. For example, if you have 64GB RAM installed, add the following entries to increase the max locked memory limit:
* soft memlock 60397977
* hard memlock 60397977
2.Login as the oracle user again and run the ulimit -l command to verify the new memlock setting:
$ ulimit -l
60397977
3.Run the following command to display the value of Hugepagesize variable:
$ grep Hugepagesize /proc/meminfo
4.Complete the following procedure to create a script that computes recommended values for hugepages configuration for the current shared memory segments:
a.Create a text file named hugepages_settings.sh
b.Add the following content in the file:
#!/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.
# 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'}`
# Start from 1 pages to be on the safe side and guarantee 1 free HugePage
NUM_PG=1
# Cumulative number of pages required to handle the running shared memory segments
for SEG_BYTES in `ipcs -m | awk {'print $5'} | 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
# Finish with results
case $KERN in
'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" ;;
*) echo "Unrecognized kernel version $KERN. Exiting." ;;
esac
# End
c.Run the following command to change the permission of the file:
$ chmod +x hugepages_settings.sh
5.Run the hugepages_settings.sh script to compute the values for hugepages configuration:
$ ./hugepages_settings.sh
6.Set the following kernel parameter:
# sysctl -w vm.nr_hugepages=value_displayed_in_step_5
7.To make the value of the parameter available for every time you restart the computer, edit the /etc/sysctl.conf file and add the following entry:
vm.nr_hugepages=value_displayed_in_step_5
8.Restart the server.
$ grep Huge /proc/meminfo
Reference
注意:大頁只對SGA元件起作用,對PGA、UGA無效。如果啟用大頁,無需設定pre_page_sga,lock_sga(因為使用hugePage管理的記憶體不能被Swap)。如果使用了HugePage,11g/12c新特性AMM(Automatic Memory Management)就不能使用了,但是ASMM(Automatic Shared Memory Management)可以繼續使用。
如何在Windows上啟用大頁
A.找到下面的選項
10g:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb10g_home1
11g:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb11g_home1
ORA_LPENABLE=1 對所有例項啟用大頁
ORA_<ORACLE_SID>_LPENABLE=1 只對特定的例項啟用大頁
Starting ORACLE instance (normal)
Large page enabled : 1
Large page size : 2097152
Large page request size : 33554432
如何在Linux上啟用大頁
1.Edit the memlock setting in the /etc/security/limits.conf file. The memlock setting is specified in KB and set slightly lesser than the installed RAM. For example, if you have 64GB RAM installed, add the following entries to increase the max locked memory limit:
* soft memlock 60397977
* hard memlock 60397977
2.Login as the oracle user again and run the ulimit -l command to verify the new memlock setting:
$ ulimit -l
60397977
3.Run the following command to display the value of Hugepagesize variable:
$ grep Hugepagesize /proc/meminfo
4.Complete the following procedure to create a script that computes recommended values for hugepages configuration for the current shared memory segments:
a.Create a text file named hugepages_settings.sh
b.Add the following content in the file:
#!/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.
# 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'}`
# Start from 1 pages to be on the safe side and guarantee 1 free HugePage
NUM_PG=1
# Cumulative number of pages required to handle the running shared memory segments
for SEG_BYTES in `ipcs -m | awk {'print $5'} | 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
# Finish with results
case $KERN in
'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" ;;
*) echo "Unrecognized kernel version $KERN. Exiting." ;;
esac
# End
c.Run the following command to change the permission of the file:
$ chmod +x hugepages_settings.sh
5.Run the hugepages_settings.sh script to compute the values for hugepages configuration:
$ ./hugepages_settings.sh
6.Set the following kernel parameter:
# sysctl -w vm.nr_hugepages=value_displayed_in_step_5
7.To make the value of the parameter available for every time you restart the computer, edit the /etc/sysctl.conf file and add the following entry:
vm.nr_hugepages=value_displayed_in_step_5
8.Restart the server.
$ grep Huge /proc/meminfo
Reference
摘自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25462274/viewspace-2131684/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle 在 aix上large page特性OracleAI
- Oracle資料庫例項在AIX 平臺下使用大頁記憶體(Large Page Memory)Oracle資料庫AI記憶體
- 如何在 SAP BTP 平臺上啟用 HANA Cloud 服務Cloud
- 【轉】Windows平臺執行Masscan和NmapWindows
- YLazy Web Page Test , 網頁效能測試平臺Web網頁
- Windows平臺,Oracle Database和Client並存方式WindowsOracleDatabaseclient
- windows平臺Oracle 8i DataGuard 建立和管理WindowsOracle
- How to enable Large Page Feature on AIX-Based Systems [ID 372157.1]AI
- Electron構建跨平臺應用Mac/Windows/LinuxMacWindowsLinux
- 通用網頁呼叫本地應用程式方案(windows平臺)網頁Windows
- Windows平臺如何修改監聽的服務名稱?Windows
- Windows平臺下建立asmWindowsASM
- Oracle9i的Windows平臺自動啟動問題OracleWindows
- windows和unix平臺下Oracle冷備份指令碼WindowsOracle指令碼
- kms啟用WindowsWindows
- CVE-2010-3974 Microsoft Windows多個平臺Fax Cover Page Editor記憶體破壞漏洞ROSWindows記憶體
- 在Windows平臺下修改Oracle例項不隨服務啟動WindowsOracle
- 成為騰訊開發者——如何使用QQ開放平臺和微信開放平臺
- golang在windows平臺使用zmqGolangWindowsMQ
- 在Windows 和Mac平臺上破解安裝Flash Builder 4WindowsMacUI
- 盜版升級Windows10如何完美啟用Windows
- windows如何開機自動啟動某些應用?Windows
- 從linux平臺移值資料庫到windows平臺Linux資料庫Windows
- win10如何啟用或關閉windows功能_win10啟用或關閉windows功能的方法Win10Windows
- 在windows平臺上如何做到git多ssh-key相容WindowsGit
- Steam熱門40款VR遊戲和應用中已有15款支援Windows 10 MR平臺VR遊戲Windows
- 啟用windows10Windows
- Windows server 2012 R2 如何啟用快速啟動WindowsServer
- 鴻蒙專案實戰(五):修改專案啟用頁Page鴻蒙
- 微信平臺應用
- Domino從UNIX平臺到windows平臺的遷移及備份Windows
- 微軟Windows Azure雲端計算平臺微軟Windows
- 執行緒同步(windows平臺):事件執行緒Windows事件
- Windows平臺SSH伺服器搭建Windows伺服器
- windows平臺下配置cron服務Windows
- Windows平臺的rop exp編寫Windows
- Windows Live平臺開發資源Windows
- WINDOWS平臺上擴充套件SGAWindows套件