首页 数据库 mysql教程 Linux配置HugePage

Linux配置HugePage

Jun 07, 2016 pm 04:45 PM
o 数据库

对于内存较大的Oracle数据库服务器,配置HugePage是很有必要的,下面是配置Huge的步骤:

对于内存较大的Oracle数据库服务器,配置HugePage是很有必要的,下面是配置Huge的步骤:

我的环境:

OS:CentOS release 6.4 (Final)

Oracle:11.2.0.4 RAC

Oracle 大内存需要配置HugePage

在Oracle 11.2.0.3.0上开启大页(HugePages)的详细解析

Linux HugePages及MySQL 大页配置

Linux HugePage 特性

1.        设置memlock

编辑/etc/security/limits.conf

增加:

* Soft memlock 稍小于RAM值

* hard memlock 稍小于RAM值

Memlock值大于sga没关系的,所以我们可以设置这个值在我们想要的SGA size和物理内存size之间,这个值得单位是kb。

[root@node1 ~]# grep -i memtot /proc/meminfo

MemTotal:      132250576 kB

我们物理内存大小126G,因此我可以设置memlock为100G。

在2个节点设置:

[root@node1 ~]# tail -2 /etc/security/limits.conf

* soft memlock 104857600

* hard memlock 104857600

设置完毕后,以Oracle用户登录验证:

node2-> ulimit -l

104857600

2.        禁用AMM特性:

禁用AMM特性需要将memory_max_target, memory_max_target2个参数重置,而不仅仅是设置为0,最好的办法是创建一个pfile,在pfile中将这2个参数删除,再根据这个pfile创建spfile.

主要内存参数设置为:

node1->

node1-> grep target /tmp/init.ora

*.pga_aggregate_target=1572864000

*.sga_target=64424509440

SQL> create spfile from pfile='/tmp/init.ora';

 

File created.

 

SQL> startup force

ORA-27102: out of memory

Linux-x86_64 Error: 28: No space left on device

Additional information: -134217728

Additional information: 1

SQL>

出现这个报错是因为shmall设置的太小。

Shmall表示共享内存的总大小,单位为pagesize的大小。

根据我的配置,最大能支持8G的SGA:

node1-> getconf PAGE_SIZE

4096

node1->  cat /proc/sys/kernel/shmall

2097152

修改shmall并重新启动数据库,修改的方法很简单,编辑/etc/sysctl.conf:

kernel.shmall= 16252928

即可。

修改完毕kernel.shmall,此时可以重启数据库。

SQL> startup nomount pfile='/tmp/init.ora';           

ORACLE instance started.

 

Total System Global Area 6.4137E+10 bytes

Fixed Size                  2269072 bytes

Variable Size            6979321968 bytes

Database Buffers        5.7043E+10 bytes

Redo Buffers              112762880 bytes

SQL>

SQL>

DB启动后重新创建spfile:

SQL>  create spfile='+OCR/sszgdb/spfilesszgdb.ora' from pfile='/tmp/init.ora';

 

File created.

 

SQL>

3.        根据Oracle的脚本计算hugepage大小(计算时要确保Oracle已经启动),也可自己计算:

 

 

Press Enter to proceed...

 

Recommended setting: vm.nr_hugepages = 30739

node1->

4.        根据脚本的计算值在2个节点编辑/etc/sysctl.conf

加入vm.nr_hugepages = 30739

[root@node2 ~]# grep -i huge /proc/meminfo

AnonHugePages:    602112 kB

HugePages_Total:  30739

HugePages_Free:    30739

HugePages_Rsvd:        0

HugePages_Surp:        0

Hugepagesize:      2048 kB停止数据库实例

5.        重启服务器,一般重启服务器之后DB也自动启动了。服务器和DB重启后可以通过以下命令验证大页的使用情况:

grep -i Hugepages /proc/meminfo

此时查看Oracle的alert日志,也可以发现:

Starting ORACLE instance (normal)

************************ Large Pages Information *******************

Per process system memlock (soft) limit = UNLIMITED

 

Total Shared Global Region in Large Pages = 58 GB (96%)

 

Large Pages used by this instance: 29761 (58 GB)

Large Pages unused system wide = 24 (48 MB)

Large Pages configured system wide = 30739 (60 GB)

Large Page size = 2048 KB

 

RECOMMENDATION:

  Total System Global Area size is 60 GB. For optimal performance,

  prior to the next instance restart:

  1. Increase the number of unused large pages by

 at least 936 (page size 2048 KB, total size 1872 MB) system wide to

  get 100% of the System Global Area allocated with large pages

可以发现sga并没有全部放在大页里,这样可能对性能带来负面影响,,Oracle建议我们再加入936个大页,可见Oracle的大页脚本计算并不准确,我们需要增加大页数量,并设置参数Use_large_pages=only,该参数确保Oracle的共享内存全部使用大页。

更多详情见请继续阅读下一页的精彩内容:

linux

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

iOS 18 新增'已恢复”相册功能 可找回丢失或损坏的照片 iOS 18 新增'已恢复”相册功能 可找回丢失或损坏的照片 Jul 18, 2024 am 05:48 AM

苹果公司最新发布的iOS18、iPadOS18以及macOSSequoia系统为Photos应用增添了一项重要功能,旨在帮助用户轻松恢复因各种原因丢失或损坏的照片和视频。这项新功能在Photos应用的"工具"部分引入了一个名为"已恢复"的相册,当用户设备中存在未纳入其照片库的图片或视频时,该相册将自动显示。"已恢复"相册的出现为因数据库损坏、相机应用未正确保存至照片库或第三方应用管理照片库时照片和视频丢失提供了解决方案。用户只需简单几步

在PHP中使用MySQLi建立数据库连接的详尽教程 在PHP中使用MySQLi建立数据库连接的详尽教程 Jun 04, 2024 pm 01:42 PM

如何在PHP中使用MySQLi建立数据库连接:包含MySQLi扩展(require_once)创建连接函数(functionconnect_to_db)调用连接函数($conn=connect_to_db())执行查询($result=$conn->query())关闭连接($conn->close())

如何在PHP中处理数据库连接错误 如何在PHP中处理数据库连接错误 Jun 05, 2024 pm 02:16 PM

PHP中处理数据库连接报错,可以使用以下步骤:使用mysqli_connect_errno()获取错误代码。使用mysqli_connect_error()获取错误消息。通过捕获并记录这些错误信息,可以轻松识别并解决数据库连接问题,确保应用程序的顺畅运行。

如何在 Golang 中使用数据库回调函数? 如何在 Golang 中使用数据库回调函数? Jun 03, 2024 pm 02:20 PM

在Golang中使用数据库回调函数可以实现:在指定数据库操作完成后执行自定义代码。通过单独的函数添加自定义行为,无需编写额外代码。回调函数可用于插入、更新、删除和查询操作。必须使用sql.Exec、sql.QueryRow或sql.Query函数才能使用回调函数。

如何用 Golang 连接远程数据库? 如何用 Golang 连接远程数据库? Jun 01, 2024 pm 08:31 PM

通过Go标准库database/sql包,可以连接到MySQL、PostgreSQL或SQLite等远程数据库:创建包含数据库连接信息的连接字符串。使用sql.Open()函数打开数据库连接。执行SQL查询和插入操作等数据库操作。使用defer关闭数据库连接以释放资源。

如何使用C++处理数据库连接和操作? 如何使用C++处理数据库连接和操作? Jun 01, 2024 pm 07:24 PM

在C++中使用DataAccessObjects(DAO)库连接和操作数据库,包括建立数据库连接、执行SQL查询、插入新记录和更新现有记录。具体步骤为:1.包含必要的库语句;2.打开数据库文件;3.创建Recordset对象执行SQL查询或操作数据;4.遍历结果或按照具体需求更新记录。

Go WebSocket 如何与数据库集成? Go WebSocket 如何与数据库集成? Jun 05, 2024 pm 03:18 PM

如何将GoWebSocket与数据库集成:设置数据库连接:使用database/sql包连接到数据库。将WebSocket消息存储到数据库:使用INSERT语句将消息插入数据库。从数据库检索WebSocket消息:使用SELECT语句检索数据库中的消息。

btc交易app怎么安装注册? btc交易app怎么安装注册? Feb 21, 2025 pm 07:09 PM

本篇文章将详细介绍如何安装和注册比特币交易应用。比特币交易应用允许用户管理和交易比特币等加密货币。文章逐步指导用户完成安装和注册过程,包括下载应用程序、创建账户、进行身份验证和首次存款。文章的目标是为初学者提供清晰易懂的指南,帮助他们轻松进入比特币交易的世界。

See all articles